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:
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: