*Lưu ý: Câu lệnh có sử dụng câu lệnh ghép thì phải đặt trong hai từ khóa begin … end; - HS lắng 4/ Tính tổng & tích bằng câu lệnh nghe & trả lặp lời Vd 1: chương trình tính tổng N số tự [r]
(1)Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Tuần : 19 Tiết : 37+38 Ngày soạn: 06/01/2011 Ngày dạy : 07/01/2011 Bài 7: CÂU LỆNH LẶP I Mục tiêu Kiến thức - Biết nhu cầu cần có cấu trúc lặp ngôn ngữ lập trình - Biết ngôn ngữ lập trình dùng cấu trúc lập để dẫn máy tính thực lặp lặp lại công việc nào đó số lần - Hiểu lệnh ghép Pascal Kỹ Năng - Rèn luyện kỹ phân biệt các hoạt động phụ thuộc vào điều kiện sống Thái độ - Tự giác, tích cực, chủ động tiết học II Chuẩn bị - GV: Soạn giáo án , SGK… - HS: Vở ghi, SGK, đọc trước nội dung bài học III Phương pháp - Vấn đáp, thuyết trình, trực quan - Đặt vấn đề, giải vấn đề IV Hoạt động dạy và học Ổn định lớp tổ chức lớp - kiểm tra sĩ số lớp - Ổn định trật tự Kiểm tra bài cũ - Em hãy mô tả thuật toán tím giá trị lớn hai số? Bước : Max:= a (hoặc Max:=b); Bước : Nếu a < b thì gán Max = b và viết giá trị lớn hai số là Max Bài - Trong các tiết học vừa qua em đã làm quen với số câu lệnh ngôn ngữ lập trình TuborPascal lệnh điều kiện, bài học hôm giúp chúng ta tìm hiệu thêm câu lệnh TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (2) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - HĐ CỦA GV HĐ CỦA HS HĐ1: Trong - HS: Lắng sống ngày, nghe, tự ghi nhiều hoạt động bài thực lặp lặp lại nhiều lần ví dụ: Các ngày tuần các em lặp lặp lại hoạt động buổi sáng đến trường và buổi trưa trở nhà NỘI DUNG 1/ Các công việc phải thực nhiều lần - Nhiều hoạt động thực lặp lại nhiều lần - Có hoạt đồng thường lặp lặp lại với số lần định và biết trước - Chúng ta còn lặp lại công việc với số lần không thể xác định trước HS cho thêm ví Ví dụ: Các dụ thực tế đời em học bài sống ngày lặp thì phải đọc đọc lại lặp lại ? nhiều lần GV: Khi viết CT máy tính vậy, thuộc bài nhiều trường hợp ta phải viết lặp lại nhiều câu lệnh để thực phép tính định HĐ2: Câu lệnh lặp – - HS: lên 2/ Câu lệnh lặp – lệnh thay cho lệnh thay cho bảng vẽ, nhiều lệnh lớp theo dõi nhiều lệnh VD1: Thuật toán mô tả các bước để vẽ GV: Mời HS lên hình vuông bảng vẽ hình Bước 1: k ← (k là số đoạn thẳng đó vuông cạnh đơn vị vẽ được) độ dài (20cm) và yêu cầu lớp theo dõi Bước 2: k ← k+1 Vẽ đoạn thẳng bạn thực các đơn vị độ dài và quay thước 900 sang thao tác vẽ phải Yêu cầu HS mô tả các bước bạn vẽ trên Bước 3: Nếu k<4 thì quay lại bước 2; bảng ngược lại kết thc Vậy bạn vẽ hình vuông k là biến đếm TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (3) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - thực bao nhiêu - thao tác, VD2: Thuật toán tính thổng thao tác? (HS trả lời Các thao tác S= 1+2+3+ … + 100 thao tác vẽ đoạn giống Bước 1: S ← 0; i ← thẳng) Bước 2: i← i + GV: Gợi ý thêm thao Bước 3: i ≤ 100, thì S ← S + i v tác quay thước quay lại bước 2; ngược lại kết thúc Các thao tác đó i là biến đếm nào? Mô tả thuật toán trên gọi l cấu trúc lặp Mọi NNLT có cách thị cho GV: Như vẽ máy tính thực cấu trúc lặp với hình vuông có câu lệnh Đó là câu lệnh lặp thao tác lặp lặp lại Thuật toán sau mô tả các bước để vẽ hình vuông GV: Mô tả thuật toán trên bảng GV: Mô tả thuật toán tính tổng các số tự nhiên từ 1→ 100 Cấu trúc mô tả thuật toán trên gọi là cấu trúc lặp HĐ3: Ví dụ câu - HS: chú ý lắng nghe lệnh lặp bài GV: minh họa bẳng NN Pascal cú pháp câu lệnh <for … to … do> 3/ Ví dụ câu lệnh lặp Lưu ý cho hs: Vd 1: Chươngng trình in màn hình thứ tự lần lặp var i:integer; begin for i:= to 20 writeln(‘Day la lan lap thu’,i); readln; end Biến đếm là biến đơn có kiểu nguyên - Giá trị đầu và giá trị cuối là các biểu thức có cùng kiểu với biến đếm và giá trị cuối phải lớn giá trị đầu - Cú Pháp câu lệnh lặp với số lần biết trước Pascal for<biến đếm>:= <giá trị đầu> to <giá trị cuối> <câu lệnh> đó: for, to, là các từ khóa TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (4) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - - HS nhận xét và so sánh khác câu lệnh lặp ví dụ trên GV: Giải thích cho HS vd2 câu lệnh lặp cú begin … end ; HĐ4: Tính tổng & tích câu lệnh lặp GV: trình bày đoạn chương trình tính tổng N số tự nhiên, với N là số tự nhiên nhập từ bàn phím Theo CT tính tổng ta cần khai bao nhiêu biến? kiểu biến? Trong biến thì biến nào có giá trị nhập từ bàn phím? Trong trường hợp liệu có kiểu nguyên lớn ta dùng longint - HS trả lời Vd2: chương trình ghi nhận vị trí 10 chữ O rơi từ trên xuống - HS nhận ues crt; var i:integer; xét begin clrscr; for i:= to 20 begin writeln(‘O’); delay(200); end; readln; end *Lưu ý: Câu lệnh có sử dụng câu lệnh ghép thì phải đặt hai từ khóa begin … end; - HS lắng 4/ Tính tổng & tích câu lệnh nghe & trả lặp lời Vd 1: chương trình tính tổng N số tự nhiên đầu tiên, với N là số tự nhiên - HS trả lời nhập từ bàn phím S = 1+2+3+ … + N biến - N program Tinh_tong; nhập từ bàn var N,i:integer; phím S:longint; begin write(‘Nhap so N = ‘); - HS trả lời readln(N); S:= 0; for i:= to N S:= S+i; writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S); readln; end *Kiểu longint có phạm vi từ -231 đến 231 – Vd 2: chương trình tính tích N số tự nhin, với N l số tự nhin nhập từ bàn phím N! = 1.2.3….N TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (5) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - program Tinh_Giai_Thua; var N,i:integer; P:longint; begin write(‘Nhap so N = ‘); readln(N); P:= 1; for i:= to N P:= P*i; writeln( N, ‘! = ‘, P); readln; end HĐ5: Củng cố 1/ Cấu trúc lặp HS: Lấy ví chương trình dng để dụ làm gì? 2/ Trong NNLT Pascal cấu trc lặp với số lần lặp cho trước HS: thể với câu nghe lệnh nào? Lắng HƯỚNG DẪN VỀ NHÀ - Nêu ví dụ sống em có liên quan đến điều kiện và em thực điều kiện đó nào? - Hướng dẫn nhà - Học bài xem lại các ví dụ, chuẩn bị thực hành V Rút kinh nghiệm - HS phải biệt phân tích câu điều kiện thực tế - Xác định câu điều kiện - Chỉ phần điều kiện, phần kết TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (6) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Tuần : 20 Tiết : 39+40 Ngày soạn: 09/01/2011 Ngày dạy : 10/01/2011 Bài TH 5: SỬ DỤNG LỆNH LẶP FOR DO I Mục tiêu Kiến thức - Hiểu hoạt động câu lệnh lặp với số lần biết trước for…do Pascal - Hiểu lệnh ghép Pascal Kỹ Năng - Viết chương trình có sử dụng vòng lặp for…do - Sử dụng câu lệnh ghép - Rèn luyện đọc hiểu chương trình có sử dụng vòng lặp for…do Thái độ - Có ý thức, kỹ luật, nghiêm túc, trình bày vấn đề chặt chẽ, rõ ràng II Chuẩn bị - GV: Soạn giáo án , SGK, máy chiếu, phòng máy… - HS: Vở ghi, SGK, đọc trước nội dung bài học, tìm hiểu số bài toán và thuật toán III Phương pháp - Vấn đáp, thuyết trình, trực quan - Đặt vấn đề, giải vấn đề IV Hoạt động dạy và học Ổn định lớp tổ chức lớp - kiểm tra sĩ số lớp - Ổn định trật tự Kiểm tra bài cũ - Nêu cấu trúc câu lệnh lặp đơn, câu lệnh lặp ghép, có biết ý nghĩa câu lệnh lặp - Trả lời: Bài - Trong bài học trước em đã học câu lệnh lặp, bài học hôm giúp chúng ta tìm hiệu thêm câu lệnh lặp sử dụng các chương trình nào TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (7) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Hoạt động GV Bài : Viết CT in màn hình bảng nhân số từ tới 10, số nhập từ bàn phím và dừng màn hình để có thể quan sát kết ? Nêu cách giải? - Cần nhân số với các số từ đền 10 Gọi số đó là số N ta sử dụng vòng lặp xác định từ giá trị đầu đến giá trị cuối là bao nhiêu? ? yêu cầu mở rộng: in tất bảng cửu chương từ đến 10? ? giá trị N lúc này có phải nhập không? ?Giá trị N chạy từ bao nhiêu đến bao nhiêu? Vậy ta cần vòng lặp N từ đến 10 GV: yêu cầu HS làm thành hai bài khác ? quan sát kết nhận được? Kết có dễ dàng quan sát không? Hoạt động HS HS : đọc đề HS : nêu phương án Nội dung Bài 1( SGK/62) a/ Khởi động Turbo Pascal và gõ chương trình Program bangcuuchuong; uses crt; var N,i:integer; HS : từ đến 10 begin clrscr; write('Nhap so N='); readln(N); writeln; HS : nêu phương án writeln('Bang nhan ',N); writeln; for i:=1 to 10 HS : không writeln(N,' x ',i:2,' = ',N*i:3); HS : từ đến 10 readln end HS : lập trình và chạy - In toàn bảng cửu chương trình chương: uses crt; HS : sửa theo hướng dẫn var N,i:integer; begin SGK và GV HS : dịch và chạy chương clrscr; writeln('Bang nhan ',N); trình writeln; for N:=1 to 10 for i:=1 to 10 writeln(N,' x ',i:2,' = ',N*i:3); readln end b/ Ý nghĩa các câu lệnh chương trình: Sau khai báo cho thư viện Các biến chương trình thực lệnh xóa màn hình Đến lệnh nhập N (1 → 9) TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (8) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Bài : Chỉnh sửa chương trình để làm đẹp kết trên màn hình Kết CT nhận bài có nhược điểm sau đây : - Các hàng kết sát nên khó đọc - Các hàng kết không cân hàng tiêu đề Nên sửa CT cách chèn thêm hàng trống các hàng kết và đẩy các HS : đọc đề hàng sang phải khoảng HS : nêu phương án cách nào đó ? để kết trông dễ nhìn ta sử dụng Câu lệnh GotoXY(a, b) có tác dụng đưa trỏ cột a, hàng b WhereX cho biết số thứ tự cột và WhereY cho biết số thứ tự hàng có trỏ Ví dụ GotoXY(5,WhereY) đưa trỏ vị trí cột hàng GV: Giúp HS sửa số lỗi Bài 3: Cũng câu lệnh If, có thể dùng câu lệnh For lồng câu lệnh For khác thực lặp Dùng lệnh Writeln; để cách dòng Lệnh in thông báo Bang nhan số nhập vào Thực lệnh lặp với điều kiện trước, biến I chạy từ 1→10 In kết bảng nhân Kết thúc chương trình C/ Chạy CT (Ctrl+F9) ta nhập các giá trị 1, 2,…, 10 Bài 2: (SGK/63) a/ CT đã chỉnh sửa câu lệnh lặp: Uses crt; Var N, i:integer; Begin Clrscr; Write (‘Nhap so N=’); Readln (N); Writeln; Writeln (‘Bảng nhan ‘,N); Writeln; For i:=1 to 10 Begin GotoXY (5,whereY); Writeln (N,’x’, i:2,’=’, N*i:3); Writeln End; Readln End b/ Dịch và chạy CT với giá trị gõ vào từ bàn phím Quan sát kết nhận trên màn hình Bài 3: (SGK/64) a/ Yêu cầu học sinh tự đọc chương trình, tìm hiểu ý nghĩa các câu TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (9) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Sử dụng các câu lệnh HS : Trật tự, tập trung For…do lồng để in quan sát GV hướng dẫn màn hình các số từ đến 99 theo dạng bảng hình (Hình 38/ 64/SGK) Bài 4: Tính tổng S= 1+1/2+1/3+…+1/n Với n nhập từ bàn phím ? Bài này tương tự bài nào? HS : Trả lời ? Công thức tính tổng S HS : s:= s+1/(2*n+1) tính nào? ? Ban đầu giá trị S gán HS : bao nhiêu? ? Ta dùng biến nào là biến HS : n đếm? Giá trị dầu, giá trị cuối bao nhiêu? lệnh qua phần gợi ý cặp dấu ngoặc nhọn {} b/ Chạy CT: Sử dụng thêm các câu lệnh GotoXY(a,b) để điều chỉnh bảng kết màn hình CT đã chỉnh sữa sau: Program Tao_bang; Uses crt; Var i: byte; j, X, Y: byte; Begin Clrscr; X:=18; Y:=7; For i:= to Begin GotoXY (X,Y); For j:= to Write (10*i+j:4); Y:=Y+1; Writeln; End; Readln End Bài 4: (BT làm thêm) Program Tinh_tong; Uses crt; Var i,n: integer; s: real; Begin Clrscr; Write(' nhap n='); Readln(n); s:=0; For i:= to n Begin s:= s+1/(2*n+1); End; Writeln(' tong la',s:3:2); Readln; End TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (10) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Bài 5: In màn hình các số có chữ số mà tổng chữ số hành trăm và hàng nghìn tổng các chữ số hàng chục và hàng đơn vị ? Nêu phương án giải ? HS : Nêu cách giải ? Bài toán yêu cầu HS : Trả lời gì ? ? Trước tiên cần phải tách HS : Nêu các bước tách số các số, sau đó kiểm tra điều kiện ? nêu cách giải tách các số Bài 5: Giải bài toán cổ ‘ vừa gà vừa chó’ ? Tổng số gà và chó là bao nhiêu con? ? Tổng số chân là bao nhiêu? ? Số gà cvà số chó có thể khoảng từ bao nhiêu đến bao nhiêu con? Ta cho số chó chạy từ đến 24 tương ứng với số chó là số gà = 36 – chó và kiểm rta điều kiện gà *2 + chó*4 = 100 thì kết tìm ?Hãy lập trình theo gợi ý ? Bài 5: (BT làm thêm) Program In_so_bon_CS; Uses Crt; Var a,b,c,d,i: Integer; Begin Clrscr; Write('cac so thoa man la = '); Writeln; For i:= 1000 to 9999 Begin a:= i div 1000; b:= (i mod 1000) div 100; c:= (i mod 100) div 10; d:= i mod 10; If ((b + a) = (d+ c)) then Write( i,' ' ); End; Readln; End Bài 5: (BT làm thêm) Program BT_Ga_Cho; Var ga, cho:byte; Begin HS : gà + chó = 36 For cho:= to 24 Begin HS : gà *2 + chó*4 = 100 ga:= 36 - cho; if( 2*ga + 4*cho = HS : từ đến 24 vì có thể có ít 100 : = 100) then writeln('Ga: ', ga, ', 25 Cho: ',cho); End; HS : lập trình, chạy Readln; End chương trình GV : Tìm kết bao nhiêu ? TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (11) Trường THCS LÊ QUÝ ĐÔN Giáo án tin - Cũng Cố : GV : Gọi HS đọc phần tổng kết GV : Yêu cầu HS đọc phần đọc thêm ? Nêu cấu trúc câu lệnh lặp đơn, câu lệnh lặp ghép, cho biết ý nghĩa câu lệnh lặp ? Biến đếm phải có điều kiện gì khai báo biến ? Hướng đẫn nhà : Tập lập trình số BTVN tiết trước, buổi sau HS : trả lời chữa bài và chạy chương trình , lập trình bài đọc thêm để kiểm tra kết số Pi Ôn tập kĩ vòng lặp xác định, chuẩn bị bài sau học vòng lặp không xác định TRẦN THỊ THẢO Năm 2010 - 2011 Lop8.net (12)