b Lệnh lặp với số lần cho trước, điều kiện là giá trị của một biến đếm có giá trị nguyên đã đạt được giá trị lớn nhất hay chưa, còn trong câu lệnh lặp với số lần lặp chưa biết trước, điề[r]
(1)Tuần: 27 Tiết: 53 Ngày soạn:28/2/2010 Ngày dạy:08/03/2010 Bài thực hành số SỬ DỤNG LỆNH LẶP WHILE DO I Mục tiêu: Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước Kĩ năng: - Rèn luyện kĩ đọc chương trình, tìm hiểu tác dụng các câu lệnh Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực số công việc II Chuẩn bị: GV:Nội dung bài thực hành, máy tính điện tử Hs: xem bài trước nhà III Tiến trình thực hành: Hoạt động thầy Hoạt động trò Nội dung Hoạt động 1: 18’ -Ổn định lớp: -Làm bài tập Viết chương trình sử dụng lệnh lặp While … để tính n số thực x1,x2,x3…xn Các số n và x1,x2,x3…, xn nhập từ bàn phím - Ý tưởng? Viết chương trình sử dụng lệnh lặp While … để tính n số thực x1,x2,x3…xn Các số n và x1,x2,x3…, xn nhập từ bàn phím + Sử dụng biến đếm và lệnh lặp While…do để nhập và cộng dần các số vào biến kiểu số thực nhập đủ n số + Chú ý lắng nghe => ghi nhớ kiến thức - Mô tả thuật toán chương trình, các biến dự định sử dụng và kiểu chúng Hoạt động 2: 20’ -Thực hành - Gõ chương trình sau đây: Program tinh_trung_binh; Var n, dem: integer; X, tb: real; Program tinh_trung_binh; Var n, dem: integer; X, tb: real; + Học sinh độc lập gõ Begin Dem:=0; tb:=0; chương trình vào máy Lop8.net (2) Begin Dem:=0; tb:=0; Writeln(‘nhap cac so can tinh n =’); Readln(n); While dem < n Begin Dem:= dem + 1; Writeln(‘nha so thu’, dem,’=’); Readln(x); Tb:= tb + x; End; Tb:=tb/n; Witeln(‘Trung binh của’, n,’so là =’, tb:10:3); Readln; End - Lưu chương trình với tên tinh_tb Writeln(‘nhap cac so can tinh n =’); Readln(n); While dem < n Begin Dem:= dem + 1; Writeln(‘nha so thu’, dem,’=’); Readln(x); Tb:= tb + x; End; Tb:=tb/n; + Học sinh lưu chương Witeln(‘Trung binh của’, n,’so là trình theo yêu cầu giáo =’, tb:10:3); Readln; viên End + Học sinh thực theo yêu cầu giáo viên - Đọc hiểu và tìm hiểu ý nghĩa câu lệnh Dịch chương trình và sửa lỗi, có Chạy chương trình với các liệu gõ từ bàn phím và kiểm tra kết nhận Hoạt động 3: 5’ -Củng cố: -Gọi vài hs bào cáo kết và cho điểm -Giáo viên nhận xét và đánh giá tiết thực hành Hoạt động 4: 2’ -Dặn dò: -Xem lại nội dung đã thực hành - Tiết sau thực hành: “ Bài thực hành số (tt) Lop8.net (3) Tuần: 27 Tiết: 54 Ngày soạn:28/2/2010 Ngày dạy:08/03/2010 Bài thực hành số SỬ DỤNG LỆNH LẶP WHILE DO I Mục tiêu: Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần chưa biết trước Kĩ năng: - Rèn luyện kĩ đọc chương trình, tìm hiểu tác dụng các câu lệnh Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực số công việc II Chuẩn bị: GV:Nội dung bài thực hành, máy tính điện tử Hs: xem bài trước nhà III Tiến trình thực hành: Hoạt động thầy Hoạt động trò Nội dung Hoạt động 1: 18’ -Ổn định lớp: Làm bài tập SGK - Gọi học sinh đọc đề bài Bài Tìm hiểu chương sách giáo khoa - Ý tưởng? trình nhận biết số tự nhiên N nhập vào từ bàn phím có phải là số nguyên tố hay không - Giáo viên đưa ý tưởng để học sinh tìm hiều Ý tưởng: Kiểm tra N có chia hết cho các số tự - Học sinh tìm hiểu ý Bài Tìm hiểu chương trình nhiên ≤ i ≤ N hay không tưởng theo hướng dẫn nhận biết số tự nhiên N nhập vào từ bàn phím có Kiểm tra tính chia hết giáo viên phải là số nguyên tố hay không phép chia lấy phần dư (mod) ? Đọc và tìm hiểu ý nghĩa câu lệnh Uses Crt; chương trình sau đây: + Học sinh đọc chương Var n,i:integer; Uses Crt; trình và tìm hiểu ý nghĩa Begin Var n,i:integer; câu lệnh theo Clrscr; Begin write('Nhap vao mot so nguyen: hướng dẫn giáo viên Clrscr; ');readln(n); If n<=1 then writeln('N khong la write('Nhap vao mot so nguyen: ');readln(n); Lop8.net (4) If n<=1 then writeln('N khong la so nguyen to') else begin i:=2; while (n mod i<>0) i:=i+1; if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end; readln end so nguyen to') else begin i:=2; while (n mod i<>0) i:=i+1; if i=n then writeln(n,' la so nguyen to!') else writeln(n,' khong phai la so nguyen to!'); end; readln end Hoạt động 2: 20’ Thực hành: Gõ chương trình vào máy, + Học sinh độc lập gõ chạy chương trình và kiểm chương trình vào máy tra kết + Nhấn Ctrl + F9 để chạy và kiểm tra chương trình Hoạt động 3: 5’ -Củng cố: -Gọi vài hs bào cáo kết và cho điểm -Giáo viên nhận xét và đánh giá tiết thực hành Hoạt động 4: 2’ Dặn dò: -Xem lại các nội dung đã thực hành - Tiết sau thực hành: “ Bài thực hành số (tt) Lop8.net (5) Tuần: 28 Tiết: 55 Ngày soạn:10/3/2010 Ngày dạy:15/03/2010 BÀI TẬP I Mục tiêu: Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước Kĩ năng: - Rèn luyện khả đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học II Chuẩn bị: GV:Sách giáo khoa, máy tính điện tử HS: xem bài trước nhà III Tiến trình bài dạy: Hoạt động thầy Hoạt động trò Hoạt động 1: 10’ -Ổn định lớp: -Ôn tập câu lệnh lặp xác định For ? Nêu cú pháp vòng lặp + Cú pháp: For <biến đếm>:= xác định <giá trị đầu> to <giá trị cuối> <câu lệnh>; ? Nêu hoạt động vòng lặp + Hoạt động vòng lặp: - B1: biến đếm nhận giá trị đầu - B2: Chương trình kiểm tra biểu thức điều kiện, biểu thức điều kiện đúng thì thực câu lệnh - B3: Biến đếm tự động tăng lên đơn vị và quay lại B2 - B4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát khỏi vòng lặp Nội dung + Cú pháp: For <biến đếm>:= <giá trị đầu> to <giá trị cuối> <câu lệnh>; + Hoạt động vòng lặp: - B1: biến đếm nhận giá trị đầu - B2: Chương trình kiểm tra biểu thức điều kiện, biểu thức điều kiện đúng thì thực câu lệnh - B3: Biến đếm tự động tăng lên đơn vị và quay lại B2 - B4: Nếu biểu thức điều kiện nhận giá trị sai thì thoát khỏi vòng lặp Bài tập Hoạt động 2: 33’ Các câu lệnh Pascal sau Bài tập có hợp lệ không, vì sao? Các câu lệnh Pascal sau có + Trừ câu d), tất các câu a/ for i:=100 to hợp lệ không, vì sao? writeln('A'); lệnh không hợp lệ: a) for i:=100 to b/ for i:=1.5 to 10.5 Lop8.net (6) writeln('A'); b) for i:=1.5 to 10.5 writeln('A'); c) for i=1 to 10 writeln('A'); d) for i:=1 to 10 do; writeln('A'); e) var x: real; begin for x:=1 to 10 writeln('A'); end writeln('A'); c/ for i=1 to 10 writeln('A'); b) Các giá trị đầu và giá trị cuối d/ for i:=1 to 10 do; writeln('A'); phải là số nguyên; c) Thiếu dấu hai chấm gán e/ var x: real; begin for x:=1 to 10 writeln('A'); end a) Giá trị đầu phải nhỏ giá trị cuối; giá trị đầu; d) Thừa dấu chấm phẩy thứ nhất, ta muốn lặp lại câu lệnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã khai báo là biến có liệu kiểu số thực và vì không thể dùng để xác định giá trị đầu và giá trị cuối câu lệnh lặp Hãy mô tả thuật toán để tính * Thuật toán tính tổng: tổng sau đây: A= 1 i A = 1 1 1.3 2.4 3.5 n( n 1) 1.3 2.4 3.5 n( n 1) Bước Gán A 0, i 1 Bước A i (i 2) Bước i i + Bước Nếu i n, quay lại bước Bước Ghi kết A và kết thúc thuật toán Hoạt động 3: 2’ Dặn dò: - Về nhà học bài kết hợp sách giáo khoa, tiết sau học bài làm bài tập (tt) Lop8.net (7) Tuần: 28 Tiết: 56 Ngày soạn:10/3/2010 Ngày dạy:15/03/2010 BÀI TẬP I Mục tiêu: Kiến thức: - Viết chương trình Pascal sử dụng câu lệnh lặp với số lần biết trước Kĩ năng: - Rèn luyện khả đọc chương trình, tìm hiểu tác dụng và kết hợp các câu lệnh Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học II Chuẩn bị: GV:Sách giáo khoa, máy tính điện tử HS: xem bài trước nhà III Tiến trình bài dạy: Hoạt động thầy Hoạt động trò Hoạt động 1:13’ -Ổn định lớp: -Kiểm tra bài cũ: Nêu khác biệt câu lệnh xác định và câu lệnh Sự khác biệt: không xác định a) Câu lệnh lặp với số lần lặp cho trước thị cho máy tính thực lệnh nhóm lệnh với số lần đã xác định từ trước, còn với câu lệnh lặp với số lần lặp chưa biết trước thì số lần lặp chưa xác định trước b) Lệnh lặp với số lần cho trước, điều kiện là giá trị biến đếm có giá trị nguyên đã đạt giá trị lớn hay chưa, còn câu lệnh lặp với số lần lặp chưa biết trước, điều kiện tổng quát nhiều, có thể là kiểm tra giá trị số thực c) Lệnh lặp với số lần cho trước, câu lệnh thực ít lần, sau đó kiểm tra điều kiện Lệnh lặp với số lần chưa xác định Lop8.net Nội dung (8) Hoạt động 2: 30’ Bài tập ? Hãy tìm hiểu các thuật toán sau đây và cho biết thực thuật toán, máy tính thực bao nhiêu vòng lặp? Khi kết thúc, giá trị S bao nhiêu? Viết chương trình Pascal thể các thuật toán đó a) Thuật toán Bước S 10, x 0.5 Bước Nếu S 5.2, chuyển tới bước Bước S S x và quay lại bước Bước Thông báo S và kết thúc thuật toán b) Thuật toán Bước S 10, n Bước Nếu S ≥ 10, chuyển tới bước Bước n n + 3, S S n quay lại bước Bước Thông báo S và kết thúc thuật toán Hoạt động 3: 2’ -Dặn dò -Xem lại các bài tập đã giải -Về nhà học bài tiết sau kiểm tra tiết (LT) trước, trước hết điều kiện kiểm tra Nếu điều kiện thoả mãn, câu lệnh thực Bài tập a) Thuật toán 1: 10 vòng lặp thực Khi kết thúc thuật toán S = 5.0 Đoạn chương trình a) Thuật toán 1: 10 vòng lặp Pascal tương ứng: thực Khi kết thúc thuật toán S:=10; x:=0.5; S = 5.0 Đoạn chương trình Pascal while S>5.2 S:=S-x; writeln(S); tương ứng: S:=10; x:=0.5; while S>5.2 S:=Sx; writeln(S); b) Thuật toán 2: Không vòng lặp nào thực vì từ đầu điều kiện đã không thỏa mãn nên các bước và b) Thuật toán 2: Không vòng lặp bị bỏ qua S = 10 kết nào thực vì từ đầu thúc thuật toán Đoạn điều kiện đã không thỏa mãn chương trình Pascal nên các bước và bị bỏ qua S = tương ứng: 10 kết thúc thuật toán Đoạn S:=10; n:=0; chương trình Pascal tương ứng: while S<10 S:=10; n:=0; begin n:=n+3; S:=S-n while S<10 end; begin n:=n+3; writeln(S); S:=S-n end; writeln(S); Lop8.net (9) Tuần: 29 Tiết: 57 Ngày soạn:15/3/2010 Ngày kt:22/03/2010 KIỂM TRA TIẾT I Mục tiêu: - Hệ thống lại số kiến thức đã học - Biết sử dụng vòng lặp xác định và vòng lặp không xác định để viết chương trình II Đề bài: A.TRẮC NGHIỆM KHÁCH QUAN (4đ) I.Hãy khoanh tròn chữ cái đầu câu em cho là đúng (mỗi câu 0,25đ) Câu 1: Cú pháp câu lệnh For … là: a for<biến đếm>:=<Giá trị đầu> to<giá trị cuối> do<câu lệnh>; b for<biến đếm>:=<Giá trị cuối> to<giá trị đầu> do<câu lệnh>; c for<biến đếm>=<Giá trị đầu> to<giá trị cuối> do<câu lệnh>; d for<biến đếm>=<Giá trị đầu> to;<giá trị cuối> do<câu lệnh>; Câu 2: Cho đoạn chương trình: S:=0; For i:=1 to S:=S+i; Sau thực đoạn chương trình trên S có kết là : a 20 b 15 c 10 d Câu 3: Câu lệnh viết đúng cú pháp ngôn ngữ lập trình Pascal là: a While <điều kiện> to <câu lệnh>; b While <điều kiện> <câu lệnh>; c While <điều kiện> to <câu lệnh1> <câu lệnh 2>; d While <điều kiện>; <câu lệnh>; Câu 4: Cho đoạn chương trình: i:=4; K:=7 While i <6 i:=i+1; k:=k+i; Writeln (i, ,k ); Sau thực đoạn chương trình trên i, K có kết là a ,13 b 6,12 c 6,7 d 6, Câu 5: Cho đoạn chương trình: i:=1; j:=2;k:=3; While i <6 i:=i+1; j:=j+1; k:=k+j; Writeln (i, j,k ); Sau thực đoạn chương trình trên i, j, K có kết là a ,3,6 b 6,6,12 c 6,7,12 d 6, 7,28 Lop8.net (10) Câu 6: Cho đoạn chương trình: i:=1; j:=2;k:=3; While i <6 begin i:=i+1; j:=j+1; k:=k+j; end; Writeln (i, j,k ); Sau thực đoạn chương trình trên i, j, K có kết là a ,3,6 b 6,6,12 c 6,7,12 d 6, 7,28 Câu 7: Cho đoạn chương trình: p:=1; For i:=1 to p:=p*i; Sau thực đoạn chương trình trên S có kết là : a 120 b 15 c 24 d 240 Câu 8:Cho đoạn chương trình: so:=1; while so < 10 so:=so+1; writeln(so); Sau thực đoạn chương trình trên có kết là : a In các số từ đến b In các số từ đến 10 c In vô hạn các số 1, số trên dòng d Không phương án nào đúng II.Đánh chữ X vào cột Đúng em cho là đúng vào cột Sai em cho là sai (mỗi câu 0,25đ) Câu lệnh Đ S Câu 9: While i := t:= 10; Câu 10: While a<b ; write (‘a nho hon b’); Câu 11: For i = to n write(i); Câu 12: For i:= 10 to x:=x+1; III.Hãy nối ý Cột A với ý Cột B vào cột Kết Quả cho có nghĩa đúng (mỗi câu 0,25đ) Cho x:=5; Câu lệnh Giá trị x Kết Quả Câu 13: if x mod = then x:= x +1; a 10 Câu 13 +…… Câu 14: if (x mod =0) or (x>=5) then x:= 2*x; b Câu 14 +…… Câu 15: if (x mod =1 ) and (x>10 ) then x:=0 ; c 15 Câu 15 +…… Câu 16: if x mod = then begin x:=x*x ; x:=x -10; end; d Câu 16 +…… B.TỰ LUẬN (6đ) Bài 1: (2 điểm) a) Cấu trúc rẽ nhánh có hai dạng: b) Câu lệnh lặp với số lần cho trước Pascal là: c) Câu lệnh lặp với số lần chưa biết trước Pascal là: Lop8.net (11) Bài 2: Viết chương trình tìm số lớn số a,b,c nhập từ bàn phím.(1 điểm) Bài 3: a/ Viết chương trình tính tổng N số tự nhiên nhập từ bàn phím.(2 điểm) b/ Chạy thử chương trình với N=8.(1 điểm) III Đáp án: A.TRẮC NGHIỆM KHÁCH QUAN (4đ) I.Hãy khoanh tròn chữ cái đầu câu em cho là đúng (mỗi câu 0,25đ) a b b a a d a d II.Đánh chữ X vào cột Đúng em cho là đúng vào cột Sai em cho là sai (mỗi câu 0,25đ) Câu lệnh Đ S Câu 9: While i := t:= 10; x Câu 10: While a<b ; write (‘a nho hon b’); x Câu 11: For i = to n write(i); x Câu 12: For i:= 10 to x:=x+1; x III.Hãy nối ý Cột A với ý Cột B vào cột Kết Quả cho có nghĩa đúng (mỗi câu 0,25đ) Cho x:=5; Câu lệnh Giá trị x Kết Quả Câu 13: if x mod = then x:= x +1; a 10 Câu 13 +…b… Câu 14: if (x mod =0) or (x>=5) then x:= 2*x; b Câu 14 +…a… Câu 15: if (x mod =1 ) and (x>10 ) then x:=0 ; c 15 Câu 15 +…d… Câu 16: if x mod = then begin x:=x*x ; x:=x -10; end; d Câu 16 +…c… B.TỰ LUẬN (6đ) Bài 1: a/ IF < ĐIỀU KIỆN> THEN < CÂU LỆNH>; Dạng đủ: IF < ĐIỀU KIỆN> THEN < CÂU LỆNH1> ELSE < CÂU LỆNH 2>; b/ For <biến đếm>:= <giá trị đầu> to <giá trị cuối> <câu lệnh>; c/ While <điều kiện> <câu lênh>; Bài 2: Var a,b,c,max: integer; Begin Writeln(‘ nhap a,b,c’); readln(a,b,c); Max:=a; If max <b then max:=b; If max <c then max:=c; Writeln(max); Readln End Bài a/ Program tinh_tong; Var i, S,n: Integer; Begin Lop8.net (12) Writeln(‘ nhap n’); readln(n); S:=0; For i:= to n S:= S + i; Wirteln(‘Tong la’,S); Readln; End b/ Chạy thử chương trình với N=8 i=1→ s=0+1=1 i=2→ s=1+2=3 i=3→ s=3+3=6 i=4→ s=6+4=10 i=5→ s=10+5=15 i=6→ s=15+6=21 i=7→ s=21+7=28 i=8→ s=28+8=36 Lop8.net (13) Tuần: 29 Tiết: 58 Ngày soạn:15/3/2010 Ngày dạy:22/03/2010 LÀM VIỆC VỚI DÃY SỐ I Mục tiêu: Kiến thức: - Làm quen với việc khai báo và sử dụng các biến mảng - Tìm hiểu số ví dụ biến mảng Kĩ năng: - Việc gán giá trị, nhập giá trị và tính toán với các giá trị phần tử biến mảng thực thông qua số tương ứng phần tử đó Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học II Chuẩn bị: Gv:Sách giáo khoa, máy tính điện tử Hs: xem bài trước nhà III Tiến trình bài dạy: Hoạt động thầy Hoạt động trò Nội dung Hoạt động 1: 15’ Dãy số và biến mảng: -Ổn định lớp: Tìm hiểu dãy số và biến + Ví dụ Giả sử chúng ta Dữ liệu kiểu mảng là tập hợp mảng cần viết chương trình nhập hữu hạn các phần tử có thứ tự, - Yêu cầu HS đọc ví dụ điểm kiểm tra các học phần tử có cùng kiểu sinh lớp và sau đó liệu, gọi là kiểu phần tử in màn hình điểm số cao Vì biến có thể lưu giá trị nhất, để có thể nhập điểm và so sánh chúng, ta cần sử dụng nhiều biến, biến cho học - Ví dụ Pascal sinh ta cần nhiều câu lệnh khai báo và nhập liệu dạng sau đây, câu lệnh tương ứng với điểm học sinh ? Dữ liệu mảng là gì Dữ liệu kiểu mảng là tập hợp hữu hạn các phần tử có thứ tự, phần tử có cùng kiểu liệu, gọi là kiểu phần tử Việc thứ tự thực cách gán cho phần tử số: Lop8.net (14) Hoạt động 2: 23’ Ví dụ biến mảng - Để làm việc với các dãy số nguyên hay số thực, chúng ta phải khai báo biến mảng có kiểu tương ứng phần khai báo chương trình - Yêu cầu học sinh nghiên cứu SGK => Nêu cách khai báo biến mảng Giá trị biến mảng là mảng, tức dãy số (số nguyên, số thực) có thứ tự, số là giá trị biến thành phần tương ứng + Học sinh chú ý lắng nghe => ghi nhớ kiến thức Ví dụ biến mảng: Cách khai báo mảng Pascal sau: + Cách khai báo mảng Tên mảng : array[<chỉ số đầu> Pascal sau: <chỉ số cuối>] of <kiểu liệu> Tên mảng : array[<chỉ số đầu> <chỉ số cuối>] of <kiểu liệu> - Trong đó số đầu và số cuối là hai số nguyên biểu thức nguyên thoả mãn số đầu ≤ số cuối và kiểu liệu có thể là - Cách khai báo đơn giản integer real biến mảng ngôn ngữ Pascal sau: Var Chieucao: array[1 50] of real; var Tuoi: array[21 80] of integer; Hoạt động 3: 5’ Củng cố Tên mảng : array[<chỉ số -Hãy nêu cách khai báo đầu> <chỉ số cuối>] of biến mảng? Chi ví dụ? <kiểu liệu> Ví dụ: Var Diem:array[1 100] of integer; Hoạt động 4: 2’ Dặn dò: - Về nhà học bài, kết hợp SGK Lop8.net (15) Tuần: 30 Tiết: 59 Ngày soạn:17/3/2010 Ngày dạy:29/03/2010 LÀM VIỆC VỚI DÃY SỐ(tt) I Mục tiêu: Kiến thức: - Làm quen với việc khai báo và sử dụng các biến mảng - Biết cách tìm giá trị lớn và giá trị nhỏ dãy số Kĩ năng: -Rèn luyện kĩ tìm giá trị lớn và giá trị nhỏ dãy số Thái độ: - Thái độ học tập nghiêm túc, yêu thích môn học II Chuẩn bị: Gv:Sách giáo khoa, máy tính điện tử Hs: xem bài trước nhà III Tiến trình bài dạy: Hoạt động thầy Hoạt động trò Nội dung Hoạt động 1: 8’ -Ổn định lớp: -Kiểm tra bài cũ: Tên mảng : array[<chỉ số -Hãy nêu cách khai báo biến đầu> <chỉ số cuối>] of <kiểu liệu> mảng? Chi ví dụ? Ví dụ: Var DANHSACH:array[1 100] of integer; Tìm giá trị lớn và giá Hoạt động 2: 30’ trị nhỏ dãy số Tìm hiểu cách tìm giá trị lớn và giá trị nhỏ dãy số + Học sinh đọc và tìm hiểu program MaxMin; Ví dụ Viết chương trình nhập yêu cầu bài toán uses crt; N số nguyên từ bàn phím và in Var màn hình số nhỏ và số i, n, Max, Min: integer; lớn N nhập từ A: array[1 100] of integer; bàn phím Phần thân chương trình - Giáo viên đưa ý tưởng để tương tự đây: viết chương trình Begin Trước hết ta khai báo biến N để - Học sinh chú ý lắng nghe clrscr; nhập số các số nguyên => ghi nhớ kiến thức write('Hay nhap dai cua day nhập vào Sau đó khai báo N so, = '); readln(n); biến lưu các số nhập vào writeln('Nhap cac phan tu là các phần tử biến cua day so:'); mảng A Ngoài ra, cần khai báo Lop8.net (16) biến i làm biến đếm cho các lệnh lặp và biến Max để lưu số lớn nhất, Min để lưu số nhỏ - Yêu cầu học sinh tìm hiểu ý + Học sinh thực theo nghĩa câu lệnh yêu cầu giáo viên program MaxMin; chương trình uses crt; Var i, n, Max, Min: integer; A: array[1 100] of integer; Phần thân chương trình tương tự đây: Begin clrscr; write('Hay nhap dai cua day so, = '); readln(n); writeln('Nhap cac phan tu cua day so:'); For i:=1 to n Begin write('a[',i,']='); readln(a[i]); End; Max:=a[1]; Min:=a[1]; for i:=2 to n begin if Max<a[i] then Max:=a[i]; if Min>a[i] then Min:=a[i] end; write('So lon nhat la Max = ',Max); write('; So nho nhat la Min = ',Min); readln; End + Học sinh chú ý lắng nghe - Trong chương trình này, chúng ta hãy lưu ý số điểm sau: Số tối đa các phần tử mảng phải khai báo số cụ thể (Ở đây là 100) Hoạt động 3: 5’ Lop8.net For i:=1 to n Begin write('a[',i,']='); readln(a[i]); End; Max:=a[1]; Min:=a[1]; for i:=2 to n begin if Max<a[i] then Max:=a[i]; if Min>a[i] then Min:=a[i] end; write('So lon nhat la Max = ',Max); write('; So nho nhat la Min = ',Min); readln; End (17) Củng cố “Có thể xem biến mảng là biến tạo từ nhiều biến có cùng kiểu tên nhất” Phát biểu đó đúng hay sai Hoạt động 4: 2’ Dặn dò - Về nhà học bài, kết hợp SGK, tiết sau thực hành -Làm các bài tập2,4,5 sgk Lop8.net (18) Tuần: 30 Tiết: 60 Ngày soạn:17/3/2010 Ngày dạy:29/03/2010 BÀI TẬP I Mục tiêu: Kiến thức: - Làm quen với việc khai báo và sử dụng biến mảng - Ôn luyện cách sử dụng câu lệnh lặp for Kĩ năng: - Củng cố các kĩ đọc hiểu và chỉnh sửa chương trình Thái độ: - Thái độ học tập nghiêm túc, yêu thích viết chương trình để thực số công việc II Chuẩn bị: GV:Nội dung bài thực hành, máy tính điện tử HS: xem bài trước nhà III Tiến trình thực hành: Hoạt động thầy Hoạt động trò Nội dung Hoạt động 1: 8’ -Ổn định lớp: -Kiểm tra bài cũ: -Hãy nêu cách khai báo biến mảng? Chi ví dụ? -Bài tập sgk a/ var x: array[1,13] of a/ Sai b/ Sai integer; b/ var x:array[5 10.5] of real; Hoạt động 2:30’ Thực hành Chương trình tìm giá trị Bài 1: Chương trình tìm giá trị nhỏ nhỏ dãy số Program P_Min; nguyên P_Min ? dãy số nguyên P_Min ? Var i, n, Min : integer; Bài 1: A: array[1 100] of integer; Program P_Min; Begin HS chia nhóm làm thực Var write('Hay nhap dai cua day so, hành i, n, Min : integer; N='); readln(n); writeln('Nhap cac phan tu cua day A: array[1 100] of integer; Begin so:'); write('Hay nhap dai cua For i:=1 to n day so, N='); readln(n); Begin writeln('Nhap cac phan tu write('a[',i,']='); cua day so:'); readln(a[i]); Lop8.net (19) End; Min:=a[1]; for i:=2 to n if Min>a[i] then Min:=a[i]; write('So nho nhat la Min = ',Min); readln; End Viết chương trình nhập điểm các bạn lớp Sau đó in màn hình Bài 2: số bạn đạt kết học tập Program Phan_loai; loại giỏi, khá, TB và kém uses crt; Tiêu chuẩn: Var - Loại giỏi: 8.0 trở lên i, n, G, Kh, TB, K: integer; - Loại khá: 6.5 đến 7.9 A: array[1 100] of real; - Loại TB: 5.0 đến 6.4 Begin - Loại kém: 5.0 clrscr; write('nhap so HS lop, n= '); readln(n); writeln('Nhap diem :'); For i:=1 to n Begin write(i,' '); readln(a[i]); GV gợi ý: End; - Dùng câu lệnh G:=0; Kh:= 0; TB:= 0; K:= 0; if…then… for i:=1 to n Begin if a[i] >= 8.0 then G:= G + 1; if a[i] <5.0 then K:= K + 1; if (a[i] <8.0 ) and (a[i] >=6.5) then Kh:= Kh + 1; if (a[i] >= ) and (a[i] < 6.5) Lop8.net For i:=1 to n Begin write('a[',i,']='); readln(a[i]); End; Min:=a[1]; for i:=2 to n if Min>a[i] then Min:=a[i]; write('So nho nhat la Min = ',Min); readln; End Bài 2: Viết chương trình nhập điểm các bạn lớp Sau đó in màn hình số bạn đạt kết học tập loại giỏi, khá, TB và kém Tiêu chuẩn: - Loại giỏi: 8.0 trở lên - Loại khá: 6.5 đến 7.9 - Loại TB: 5.0 đến 6.4 - Loại kém: 5.0 Program Phan_loai; uses crt; Var i, n, G, Kh, TB, K: integer; A: array[1 100] of real; Begin clrscr; write('nhap so HS lop, n= '); readln(n); writeln('Nhap diem :'); For i:=1 to n Begin write(i,' '); readln(a[i]); End; G:=0; Kh:= 0; TB:= 0; K:= 0; (20) then TB:= TB + 1; end; writeln(' Ket qua hoc tap: '); writeln(G, ' ban hoc gioi '); writeln(Kh, ' ban hoc kha '); writeln(TB, ' ban hoc trung binh'); writeln(K, ' ban hoc kem '); readln; End Hoạt động 3:5’ Củng cố -Cho điểm vài nhóm làm tốt -Giáo viên nhận xét và đánh giá tiết thực hành Hoạt động 4:2’ Dặn dò: -Xem lại các nội dung đã thực hành - Tiết sau thực hành: “ Bài thực hành số (tt) Lop8.net for i:=1 to n Begin if a[i] >= 8.0 then G:= G + 1; if a[i] <5.0 then K:= K + 1; if (a[i] <8.0 ) and (a[i] >=6.5) then Kh:= Kh + 1; if (a[i] >= ) and (a[i] < 6.5) then TB:= TB + 1; end; writeln(' Ket qua hoc tap: '); writeln(G, ' ban hoc gioi '); writeln(Kh, ' ban hoc kha '); writeln(TB, ' ban hoc trung binh'); writeln(K, ' ban hoc kem '); readln; End (21)