Giáo án Tin học lớp 11 - Tiết 23, 24: Bài tập thực hành 3

Giáo án Tin học lớp 11 - Tiết 23, 24: Bài tập thực hành 3

I. MỤC TIÊU:

1. Kiến thức: Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.

2. Kỹ năng: Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm kiếm, chạy thử các chương trình có sẵn.

II. CHUẨN BỊ:

1. Giáo viên:

Giáo án giảng dạy, máy chiếu đa năng

2. Học sinh:

Sỏch giỏo khoa, sỏch bài tập Tin học 10, vở ghi

III. HOẠT ĐỘNG DẠY VÀ HỌC

Hoạt động 1: Tổ chức lớp:

 

doc 3 trang Người đăng quocviet Lượt xem 4187Lượt tải 2 Download
Bạn đang xem tài liệu "Giáo án Tin học lớp 11 - Tiết 23, 24: Bài tập thực hành 3", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Bài tập thực hành 3
(Tiết PPCT: 23, 24)
	Ngày soạn: .
	Ngày ĐK giáo án: .........................
Người duyệt giáo án (TTCM duyệt, BGH duyệt):
.....................................................................................................................................
.....................................................................................................................................
I. Mục tiêu:
1. Kiến thức: Biết giải một số bài toán tính toán, tìm kiếm đơn giản trên máy tính.
2. Kỹ năng: Nâng cao kĩ năng sử dụng một số câu lệnh và một số kiểu dữ liệu thông qua việc tìm kiếm, chạy thử các chương trình có sẵn.
II. Chuẩn bị:
1. Giáo viên:
Giáo án giảng dạy, máy chiếu đa năng
2. Học sinh:
Sỏch giỏo khoa, sỏch bài tập Tin học 10, vở ghi
III. hoạt động dạy và học
Hoạt động 1: Tổ chức lớp: 
- Kiểm tra sĩ số.
- Chia lớp thành 2 nhóm nếu không đủ máy, 2HS/1máy.
Hoạt động 2: Nội dung bài thực hành:
Hoạt động của GV
Hoạt động của HS
Đưa ra nội dung bài thực hành:
Hoạt động 2.1: 
Bài 1: Tạo mảng A gồm n (n<=100) số nguyên, mỗi số có trị tuyệt đối không vượt quá 300. Tính tổng các phần tử của mảng là bội số của một số nguyên dương k cho trước.
a. Hãy tìm hiểu và chạy thử chương tình sau đây:
Program sum1;
uses crt;
const nmax=100;
type myarray= array[1..max] of integer;
Var a:myarray;
 S, n, i, k: integer;
Begin 
 Clrscr; randomize;
 writeln(‘nhập n=:’); readln(n);
 for i:=1 to n do a[i]:=random(300)- 
 random(300);
 for i:=1 to n do write(a[i]:5);
 writeln;
 write(‘nhập k=’);readln(k);
 s:=0;
 For i:=1 to n do 
 if a[i] mod k =0 then s:=s+a[i];
 Writeln(‘tổng cần tính là:’, s);
 Readln
 End.
b. Hãy đưa các câu lệnh sau đây vào vị trí cần thiết nhằm sửa chương trình trong câu a) để có được chương trình đưa ra các số dương và số các số âm trong mảng.
posi, neg: integer
posi:= 0; neg:=0;
if a[i] >0 then posi:=posi+1
 else if a[i]<0 then neg:=neg+1;
writeln(posi:4, neg:4);
Yêu cầu một HS trả lời yêu cầu của bài toán.
- Nhận xét và yêu cầu HS thực hành sửa chương trình ở câu a)và chạy chương trình vừa sửa..
Hoạt động 2.2
Bài 2: Viết chương trình tìm phần tử lớn nhất của mảng và đưa ra màn hình chỉ số và giá trị của phần tử tìm được. Nếu có nhiều phần tư có cùng giá trị lớn nhất thì đưa ra phần tử có chỉ số nhỏ nhất.
a. Hãy tìm hiểu chương trình sau đây:
program maxelment;
const nmax=100;
type myarray=array[1..nmax] of integer;
var a:myarray;
 n, i, j: integer;
begin 
 writeln(‘nhập số lượng phần tử của dãy 
 số, n=’); readln(n);
 for i:=1 to n do 
 begin
 write(‘phần tử thứ’,i,’=’);
 readln(a[i]);
 end;
 j:=1;
 for i:=2 to n do 
 if a[i]>a[j] then j:=i;
 write(‘chi so:’,j,’gia trị:’, a[j]:4);
 readln;
 end.
b. Chỉnh sửa chương trình để đưa ra chỉ số lớn nhất của các phần tử có cùng giá trị lớn nhất.
2. Hướng dẫn HS thực hành và làm bài tập.
Bài 2: câu b:?Chương trình có cần giữ lại đoạn tìm phần tử có giá trị lớn nhất không? ? Để đưa ra tất cả các chỉ số của các phần tử đạt giá trị lớn nhất đó có cần duyệt lại tất cả các phần tử trong mảng không?
1. Chú ý theo dõi nội dung bài thực hành.
- Suy nghĩ và trả lời.
Program sum1;
uses crt;
const nmax=100;
type myarray= array[1..max] of integer;
Var a:myarray;
 S, n, i, k, posi, neg: integer;
Begin 
 Clrscr; randomize;
 writeln(‘nhập n=:’); readln(n);
 for i:=1 to n do a[i]:=random(300)- 
 random(300);
 for i:=1 to n do write(a[i]:5);
 writeln;
 write(‘nhập k=’);readln(k);
 posi:= 0; neg:=0;
 if a[i] >0 then posi:=posi+1
 else if a[i]<0 then neg:=neg+1;
 writeln(posi:4, neg:4);
 Readln
 End.
b. Ta sửa nhu sau:
for i:=2 to n do 
 if a[i]>=a[j] then j:=i;
Cần giữ lại;
Cần duyệt lại tất cả các phần tử của mảng để làm được việc đó.
IV. Củng cố:
Cho HS dừng thực hành để kiểm tra trong 5phút. Đánh giá những kết quả làm được và chưa làm được của HS.
BTVN: Viết chương trình để đưa ra chỉ số của các phần tử có cùng giá trị lớn nhất.

Tài liệu đính kèm:

  • docBai tap TH 3 (23.24).doc