Giáo án Tin8 Trờng THCS Lê Hồng Phong Ngày soạn: 22/ 11/08 Ngày giảng: 8A: 8B: 8C: Tiết 25-26: B i 7: Câu lệnh lặp I. Mục tiêu bài học: 1. Kiến thức: - Biết nhu cầu cần có cấu trúc lặp trong lập trình - Bit ngụn ng lp trỡnh dựng cu trỳc lp ch dn mỏy tớnh thc hin lp i lp li cụng vic no ú mt s ln. - Biết Ngôn ngữ Pascal thể hiện cấu trúc lặp với số lần lặp cho trớc bằng câu lệnh : for.do - Bit lnh ghộp trong Pascal. 2. K nng: - Vit ỳng c lnh for do trong mt s tỡnh hung n gin. - Bit Khi no thỡ s dng n cõu lnh lp. - Đọc hiu c cõu lnh lp vi s ln bit trc fordo trong Pascal. 3. Thỏi : - Nghiờm tỳc trong hc tp cn tp trung n bi hc, chỳ ý n ý ngha ca cõu lnh lp. II. Chuẩn bị: 1. Giỏo viờn: Giỏo ỏn, SGK, tài liệu, bảng ph. 2. Hc sinh: SGK, v ghi, chun b b i nh , đồ dùng học tập III. Tiến trình lên lớp: 1. ổn định tổ chức 2. Kiểm tra: ? Em hãy viết câu lệnh điều kiện dạng thiếu và câu lệnh điều kiện dạng đủ. Trả lời: if <điều kiện> then <câu lệnh 1> if <điều kiện> then <câu lệnh 1> else <câu lệnh 2> ? Câu lệnh điều kiện nào sau đây đúng? A . If a>b then max : = a ; else max : = b ; B . If a>b then max = a else max = b ; C . If a>b then max : = a else max : = b ; D . If a>b then max : = a esle max : = b ; Đáp án: Câu C 3. Nội dung bài mới: Hoạt động của GV HS Nội dung 1 Giáo án Tin8 Trờng THCS Lê Hồng Phong Hoạt động 1: Giới thiệu các công việc phải lặp lại nhiều lần - GV: yêu cầu đọc mục 1 thu thập thông tin SGK - HS: Đọc thu thập thông tin ? Nêu các công việc lặp đi lặp lại hàng ngày, hàng tuần -HS: Buổi sáng em đi học, tiếng gà gáy sáng - GV: Thông báo: Trong ngôn ngữ lập trình cũng vậy, ngời ta sử dụng câu lệnh lặp để thay thế cho nhiều câu lệnh. 1. Các công việc phải lặp lại nhiều lần. - - Lặp với số lần nhất định và biết tr Lặp với số lần nhất định và biết tr ớc: ớc: Chào cờ mỗi tuần 1 lần, ngày ăn cơm 3 Chào cờ mỗi tuần 1 lần, ngày ăn cơm 3 lần lần - lặp với số lần không thể xác định tr - lặp với số lần không thể xác định tr ớc: ớc: Học bài cho đến khi thuộc, nhặt rau cho đến khi xong. Hoạt động 2: Giới thiệu câu lệnh lặp - cấu trúc lặp - Xét Ví dụ 1: Vẽ 3 hình vuông bằng nhau: - GV: Ta phải vẽ 3 lần nhng với lệnh lặp ta chỉ cần vẽ 1 lần rồi lặp lại cho 2 hình vuông kia. Ta có thuật toàn ntn? - HS: B1: Vẽ hình vuông đầu tiên B2: Nếu số hình vuông đã vẽ nhỏ hơn 3 thì di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bớc 1; ngợc lại, kết thúc thuật toán. - HS: Các HS khác nhận xét bổ sung. - GV: Nhận xét và giải thích các bớc lặp của thuật toán. VD2: - GV: Gọi 1HS nêu thuật toán - HS: B1: Sum ò0 B2: i òi+1 2. Câu lệnh lặp một lệnh thay cho nhiều lệnh VD1: Vẽ 3 HV có cạnh là 1 đơn vị: * Thuật toán: B1: Vẽ hình vuông đầu tiên B2: Nếu số hình vuông đã vẽ nhỏ hơn 3 thì di chuyển bút vẽ về bên phải 2 đơn vị và trở lại bớc 1; ngợc lại, kết thúc thuật toán. VD2: Tính tổng của 100 số tự nhiên đầu tiên 1+2+3++100 * Thuật toán: B1: Sum ò0 B2: i òi+1 B3: Nu i<=100 thì sum òsum+i v 2 Giáo án Tin8 Trờng THCS Lê Hồng Phong B3: Nu i<=100 thì sum òsum+i v quay v bc 2 B4: Thông báo v kết thuc thuật toán. - GV: Qua các VD trên ta thấy cách mô tả các hoạt động trong thuật toán đợc gọi là cấu trúc lặp ? Vậy cấu trúc lặp có vai trò gì? VD3: In ra màn hình số lần lặp từ 1 đến 5 quay v bc 2 B4: Thông báo v kết thúc thuật toán. * Cấu trúc lặp đợc sử dụng để chỉ thị cho máy tính tyhực hiện lặp đi lặp lại một hoạt động nào đó cho đến khi một hoạt động nào đó đợc thoả mãn. - Câu lệnh lặp là cách để chỉ thị máy tính thực hiện cấu trúc lặp Hoạt động 3: Cấu trúc câu lệnh lặp - GV: Giới thiệu cấu trúc lặp trong Pascal: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> Trong đó: For, to, do là các từ khoá, Biến đếm là biến kiểu nguyên, giá trị đầu và giá trị cuối là các giá trị nguyên - GV: Khi thực hiện ban đầu biến đếm sẽ nhận giá trị là giá trị đầu, sau mỗi vòng lặp, biến đếm đợc tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối. ? Em hãy viết cấu trúc của câu lệnh lặp của thứ tự lần lặp. - HS: HĐN thực hiện - GV: Nhận xét đánh giá. ? Em hãy dựa vào thuật toán và cấu trúc lặp thử viết bằng chơng trình Pascal -HS: Thực hiện cá nhân: - GV: Nhận xét và sửa sai 3. Ví dụ về câu lệnh lặp Cấu trúc: For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh> Trong đó: + Biến đếm là biến thờng có kiểu nguyên + Giá trị đầu, giá trị cuối là các biểu thức có cùng kiểu với biến đếm. Giá trị cuối phải lớn hơn hoặc bằng giá trị đầu. - Số vòng lặp là biết trớc và bằng : Giá trị đầu giá trị cuối + 1 VD3: In ra màn hình thứ tự lặp: B1: i ò 1 B2: Viết ra lần lặp thứ i, i ò 1 B3: Nếu i<= n thì quay lại bớc 2 B4: Kết thúc thuật toán. Program Lap; Var i: Integer; Begin For i:= 1 to n do 3 Giáo án Tin8 Trờng THCS Lê Hồng Phong - GV: yêu cầu đọc và nghiên cứu nội dung và hớng dẫn của VD4. - HS: Cá nhân đọc VD - GV: Nếu muốn viết chơng trình ghi nhận các vị trí của một quả trứng rơi từ trên cao xuống ta có thể lặp lại lệnh Writeln(O); nhiều lần - HS: Thực hành nghiên cứu và viết lại VD 4. - GV: Lu ý học sinh: Các câu lệnh đơn giản writeln(O) và delay(100) đợc đặt trong hai từ khoá begin và end để tạo thành câu lệnh ghép trong Pascal Writeln( Day la lan lap thu, i); Readln End. Ví dụ 4: Program trung_roi; Use crt; Var i: interger; Begin Clrscr; For i:= 1 to 20 do Begin Writeln(O); Delay(100); End; readln End. Hoạt động 4: Một số VD về câu lệnh lặp - GV: Yêu cầu đọc hiểu VD 5 SGK và dựa vào thuật toán phần VD 2 viết chơng trình bằng Pascal . - HS: Thựchiện và báo cáo - GV: Nhận xét và sửa sai(chủ yếu uốn nắn HS viết đúng câu lệnh for to do) - GV: yêu cầu HS thực hiện giải bằng 4. Tổng và tích bằng câu lệnh lặp Ví dụ 5: Tính tổng của N số tự nhiên đầu tiên, N nhập vào từ bàn phím. Program Program Tinh_tong; Tinh_tong; Var Var N, i : integer; N, i : integer; S: real; S: real; Begin Begin Write(Nhap so N = ); Write(Nhap so N = ); readln(N); readln(N); S:= 0; S:= 0; For For i := 1 to N i := 1 to N do do S:= S+i; S:= S+i; Writeln(Tong cua,N, so tu Writeln(Tong cua,N, so tu nhien dau tien S=, S); nhien dau tien S=, S); End End . . Ví dụ 6: Tính tích của N số tự nhiên đầu tiên: 4 Giáo án Tin8 Trờng THCS Lê Hồng Phong Pascal tơng tự nh ví dụ 5 - HS: Thực hiện tơng tự VD 5: thay các phép toán cộng bằng phép nhân N! = 1.2.3N Program Program Tinh_giai_thua; Tinh_giai_thua; Var Var N, i : integer; N, i : integer; P: real; P: real; Begin Begin Write(Nhap so N = ); readln(N); Write(Nhap so N = ); readln(N); P:= 1; P:= 1; For For i := 1 to N i := 1 to N do do P:= P*i; P:= P*i; Writeln(N, ! = ,P ); Writeln(N, ! = ,P ); End End . . * Chỳ ý: N! l s rt ln nờn cn khai * Chỳ ý: N! l s rt ln nờn cn khai bỏo bin cha giỏ tr ca nú ln bỏo bin cha giỏ tr ca nú ln 4. Dặn dò: - Làm các bài tập ở SGK - Làm các bài tập phần thực hành để giờ sau thực hành. - Giờ sau thực hành về sử dụng lệnh lặp. 5 . Giáo án Tin 8 Trờng THCS Lê Hồng Phong Ngày soạn: 22/ 11/ 08 Ngày giảng: 8A: 8B: 8C: Tiết 25-26: B i 7: Câu lệnh lặp I Tính tổng của N số tự nhiên đầu tiên, N nhập vào từ bàn phím. Program Program Tinh_tong; Tinh_tong; Var Var N, i : integer; N, i : integer; S: real; S: