Ngày soạn: 22 Ngày giảng: 24 Tiết theo PPCT: 15 §10. CẤU TRÚC LẶP (Tiết 3) I - Mục tiêu bài học 1. Kiến thức - Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa xác định. - Biết được cấu trúc chung của lệnh lặp While trong ngôn ngữ Pascal. - Biết được sự thực hiện của máy khi gặp lệnh lặp While. 2. Kĩ năng - Phân biệt được sự giống và khác nhau giữa cấu trúc lặp For và While. - Sử dụng đúng lệnh lặp While trong lập trình. - Bước đầu biết lựa chọn đúng dạng lệnh lặp để lập trình giải quyết được một số bài toán đơn giản. II – Phương pháp, phương tiện dạy học - Phương pháp: Thuyết trình, giảng giải, đàm thoại - Phương tiện: sgk, máy chiếu III - Tiến trình bài học 1. Ổn định tổ chức lớp - Lớp: - Sĩ số: - Lí do vắng: 2. Kiểm tra bài cũ 3. Nội dung bài mới Hoạt động của giáo viên và học sinh Nội dung ? Sự khác nhau của bài toán này với bài toán đã viết ở tiết trước? ? Lặp bao nhiêu lần? ? Bài toán dừng lặp khi nào? 3. Lặp với số lần chưa biết trước và câu lệnh While – do Viết chương trình tính tổng: S= a 1 + 1 1 +a + 2 1 +a + + Na + 1 + cho đến khi Na + 1 <0,0001 thì dừng Thuật toán Tong_2: 1 ? Trong thuật toán trên có những bước nào lặp đi lặp lại nhiều lần? - Bước 2 đến bước 4 Như vậy, việc lặp lại số lần chưa biết trước sẽ được kết thúc khi điều kiện cho trước được thoả mãn Câu lệnh sau từ khoá Do sẽ được thực hiện khi biểu thức điều kiện còn nhận giá trị True. Biểu thức điều kiện được tính trước khi thực hiện câu lệnh, nhưng nếu ngay từ đầu biểu thức điều kiện đã nhận giá trị False thì câu lệnh không được thực hiện. ? Ý nghĩa của câu lệnh While – do? ? Vậy trường hợp btđk luôn nhận giá trị True thì câu lệnh được thực hiện mãi gọi là gi? - Lặp vô hạn ? bài toán sử dụng những biến nào? Kiểu dữ liệu? B 1 : S:= a 1 ; N:=0; B 2 :Nếu Na + 1 <0,0001 thì chuyển đến B 5 ; B 3 :N:=N+1; B 4 :S:=S+ Na + 1 ; B 5 :Đưa S ra màn hình rồi kết thúc Để mô tả cấu trúc lặp như vậy,Pascal dùng câu lệnh while-do có dạng: While <điều kiện> do <câu lệnh>; Trong đó:- Điều kiện là biểu thức logic; - Câu lệnh là 1 câu lệnh đơn hoặc lệnh ghép * Ý nghĩa của câu lệnh While – do: Câu lệnh sau từ khoá Do còn được thực hiện khi btđk còn đúng, sau đó quay lại kiểm tra điều kiện. Ví dụ 1: Chương trình tính Tong_2: Program Bai_toan; 2 ? Xác định Input? Output của bài toán? - Input: 2 số nguyên M, N - Output: ƯCLN ? Bài toán dừng lặp khi nào? - Khi M = N ? Điều kiện để tiếp tục lặp là gì? - Điều kiện: m<>n ? Các lệnh cần lặp lại là gì? - Lệnh cần lặp:M:=M - N; hoặc N:= N-M; ? Những biến được sử dụng trong bài toán? Kiểu dữ liệu? Uses Crt; Var a,N:Integer; S:Real; BEGIN Clrscr; Write(‘Nhap gia tri cua a = ‘); Readln(a); S:=1/a;N:=1; WHILE 1/(a+N)>=0.0001 DO BEGIN N:=N+1; S:=S+1/(a+N); END; Writeln(‘Gia tri cua tong S = ‘, S:8:3); Readln; END. Ví dụ 2: Nhập vào 2 số nguyên dương M, N. Tìm ƯCLN của 2 số đó. Thuật toán: B1: Nhập M,N; B2 : Nếu M = N thì lấy giá trị chung này làm UCLN, chuyển B B3: Nếu M>N thì M:=M-N, ngược lại thì N:=N-M; B4: Quay lại B2 B5: Đưa ra ƯCLN rồi kết thúc Chương trình thể hiện thuật toán Tìm ƯCLN Program UCLN; Uses Crt; 3 Var M,N:Integer; BEGIN Clrscr; Write(‘Nhap gia tri cua M = ‘); Readln(M); Write(‘Nhap gia tri cua N = ‘); Readln(N); WHILE M<>N DO IF M> N THEN M:=M – N ELSE N:= N – M; Writeln(‘UCLN =’, M); Readln; END. Chú ý: SGK – Tr.48 IV - Củng cố - Cấu trúc và hoạt động của câu lệnh While – Do - Câu hỏi củng cố: Có thể dùng câu lệnh While – do thay thế cho câu lệnh for – do được không? Nếu được hãy thực hiện điều đó với chương trình Tong_1a. Trả lời: Có thể thay thế đoạn chương trình chứa câu lệnh for – do (dạng tiến) bằng đoạn chương trình chứa câu lệnh While – do như sau: i:= <giá trị đầu>; While (i<=giá trị cuối) do Begin <Câu lệnh>; <tăng i lên 1 đơn vị>; end; Program UCLN; Uses Crt; Var a,N:Integer; S:Real; BEGIN Clrscr; Write(‘Nhap gia tri cua a = ‘); Readln(a); S:=1/a;N:=1; 4 WHILE N < 100 DO BEGIN N:=N+1; S:=S+1/(a+N); END; Writeln(‘Gia tri cua tong S = ‘, S:8:3); Readln; END. 5 . 24 Tiết theo PPCT: 15 §10. CẤU TRÚC LẶP (Tiết 3) I - Mục tiêu bài học 1. Kiến thức - Biết được ý nghĩa của cấu trúc lặp có số lần lặp chưa xác định. - Biết được cấu trúc chung của lệnh lặp While. của bài toán? - Input: 2 số nguyên M, N - Output: ƯCLN ? Bài toán dừng lặp khi nào? - Khi M = N ? Điều kiện để tiếp tục lặp là gì? - Điều kiện: m<>n ? Các lệnh cần lặp lại là gì? - Lệnh. số bài toán đơn giản. II – Phương pháp, phương tiện dạy học - Phương pháp: Thuyết trình, giảng giải, đàm thoại - Phương tiện: sgk, máy chiếu III - Tiến trình bài học 1. Ổn định tổ chức lớp -