Giáo án Tin học 11 - Bài 10: Cấu trúc lặp (tiết 2)

11 88 0
Giáo án Tin học 11 - Bài 10: Cấu trúc lặp (tiết 2)

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

* Câu hỏi và bài tập về nhà: - Viết lại chương trình tính tổng 2 với ĐK: phải kiểm tra giá trị a nhập vào phải khác 0 - Xem thêm một câu lệnh lặp khác nữa là câu lệnh Repeat – Until ở tr[r]

(1)Bài 10 CẤU TRÚC LẶP ( TIẾT 2) Ngày soạn : Ngày dạy : Người soạn : Phạm Thị Hường GV hướng dẫn : Nguyễn Văn Trường I.Mục đích, yêu cầu Kiến thức: - Biết ý nghĩa cấu trúc lặp có số lần chưa xác định - Biết cấu trúc chung lệnh lặp While – ngôn ngữ lập trình Pascal - Biết thực máy gặp lệnh While - Kỹ năng: - Phân biệt giống và khác cấu trúc lặp For và While - Sử dụng lệnh lặp While 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 số bài toán đơn giản II.Nội dung  Thời gian dự kiến : Nội dung Thời gian (phút) ổn định tổ chức lớp Kiểm tra bài cũ Bài (mục 3) Lặp với số lần chưa biết trước và câu lệnh While-do 37 Đặt vấn đề: Bài toán gợi nhu cầu cần có câu lệnh a) Cấu trúc câu lệnh: b) Hoạt động câu lệnh c) ý nghĩa câu lệnh 25 d) áp dụng câu lệnh vào các ví dụ Củng cố dặn dò Lop11.com (2) ổn định tổ chức lớp Lớp: Sĩ số: Vắng: Có phép: Không phép: Kiểm tra bài cũ GV: Câu Viết cấu trúc câu lệnh For-do hai dạng, giải thích các thành phần câu lệnh đó Câu Sử dụng câu lệnh For-do để viết đoạn chương trình in các số chẵn đoạn từ đến 100 HS: Lên bảng trả lời câu hỏi giáo viên GV: - Nhận xét câu trả lời HS và khẳng định câu trả lời đúng - Cho điểm HS Đáp án và biểu điểm: Câu 1: (7 điểm) * Cấu trúc câu lệnh For-do hai dạng (4đ): - Dạng lặp tiến: for <biến đếm>:=<giá trị đầu> to <giá trị cuối> <câu lệnh>; - Dạng lặp lùi: for <biến đếm>:=<giá trị cuối> downto <giá trị đầu> <câu lệnh>; * Các thành phần câu lệnh (3đ): - For, to, downto, do: là các từ khoá - Biến đếm là biến đơn giản và thường có kiểu nguỵên - Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm và giá trị đầu phải nhỏ giá trị cuối - Câu lệnh là câu lệnh đơn hay câu lệnh ghép Câu 2: (3 điểm) Đoạn câu lệnh sau: For i:=1 to 100 If (i mod 2= ) then write( i:4); Lop11.com (3) Bài * Đặt vấn đề: Ở tiết trước cô đã đề cập rằng: Cấu trúc lặp dùng để mô tả thao tác lặp và phân thành hai loại: lặp với số lần biết trước (xác định số lần lặp) và lặp với số lần chưa biết trước biết trước (chưa xác định số lần lặp) Để mô tả cấu trúc lặp với số lần biết trước Pascal cung cấp cho chúng ta câu lệnh For-do (đã học tiết trước) Để mô tả cấu trúc lặp với số lần chưa biết trước, Pascal cung cấp cho chúng ta câu lệnh có tên là While-do Vậy câu lệnh While-do có cấu trúc và hoạt động nào chúng ta cùng tìm hiểu tiếp bài học hôm Hoạt động thầy Hoạt động trò Lặp với số lần chưa biết trước và câu lệnh While-do Hỏi: Em hiểu nào là lặp với số lần - Lặp với số lần chưa biết trước là chưa biết trước? thực lặp lại công việc nào đó mà không biết phải qua bao - Đưa bài toán: Tính tổng (ở tiết nhiêu lần đã giới thiệu) - Chú ý lắng nghe, suy nghĩ để trả S = 1/a + 1/ (a+1) +1/(a+2)+ + 1/(a+N) lời + 1/(a+N) <0,0001 Hỏi: Bài toán này khác với bài toán tính tổng ntn? - Bài trước: biết trước N - Bài này: chưa biết N, cho đk giới hạn để tính S Hỏi: Có thể lặp lại không? lặp bao nhiêu lần ? - Có lặp lại chưa xác định số lần lặp Hỏi: Lặp đến nào thì thôi? Hỏi: Xuất phát S gán giá trị 1/a, trước cộng thêm vào S số hạng ta phải làm gì? - Khi thoả mãn 1/(a+N) < 0.0001 - Phải kiểm tra 1/(a+N), thoả ĐK thì dừng, chưa thì cộng tiếp vào S số hạng Hỏi: Sau lần tăng N lên thì làm - Biến N làm thay đổi giá trị biểu Lop11.com (4) thay đổi cái gì? thức 1/(a+N) và giá trị S Kết luận: Như việc tính tổng S cần - Lắng nghe và ghi nhận phải tiến hành lặp lại việc kiểm tra ĐK, tăng giá trị cho biến N và cộng thêm số hạng vào mà không biết trước số lần lặp là bao nhiêu.Việc lặp kết thúc ĐK cho trước thoả mãn Để giải bài toán có dạng trên cách thuận tiện thì cần thiết phải có câu lệnh Ỵ câu - Ghi bài lệnh While-do  Câu lệnh While-do a) Cấu trúc câu lệnh: While <điều kiện> <câu lệnh> Trong đó: - While, do: là các từ khoá - Điều kiện: là biểu tức logic biểt thức quan hệ - Câu lệnh (lệnh cần lặp): là câu lệnh đơn ghép Hỏi : Dựa vào cấu trúc câu lệnh em hãy cho biết máy thực tính ĐK trước hay thực lệnh cần lặp trước? b) Hoạt động câu lệnh: - Đầu tiên biểu thức ĐK tính giá trị, sau đó ĐK này kiểm tra : + Nếu từ đầu biểu thức ĐK đã nhận giá trị False thì câu lệnh không thực lần nào + Nếu ĐK nhận giá trị True thì thực công việc (một lần) Mỗi lần thực công việc có thể làm thay đổi giá trị đk, đến lúc nào đó đk lặp không còn đúng - Máy tính ĐK trước thực câu lệnh sau 10 Lop11.com (5) thì cấu trúc lặp kết thúc Hỏi: Em nào có thể lên bảng vẽ sơ đồ khối thể hoạt động câu lệnh While-do - HS vẽ sơ đồ khối: Điều kiện Sai Đúng Câu lệnh Ví dụ: Cho đoạn chương trình sau: a:=5; b:=2; While (a<>b) Do begin a:=a+1; b:=b+2; end; GV giải thích cho HS hoạt động - Quan sát, theo dõi giải thích GV và ghi bài câu lệnh VD sau: ĐK True True True False a X b X Sau thực xong vòng lặp trên thì giá trị a = và b = c) ý nghĩa câu lệnh: - Câu lệnh viết sau từ khoá Do còn thực biểu thức ĐK còn nhận giá trị True Hỏi : Nếu ta thay đổi câu lệnh trên thành a:=a+1; b:=b+1 thì nào? ?? Như gặp phải trường hợp này ta phải xử lý nào ? - Biểu thức ĐK luôn nhận giá trị True vì ban đầu a<>b mà a tăng lên * Chú ý: thì b tăng lên Câu lệnh sau từ - Trong trường hợp thực khoá Do luôn thực công việc mà giá trị đk luôn cho ta giá trị True thì cấu trúc lặp kéo dài - Suy nghĩ mãi (ta gọi là vòng lặp vô hạn) - Khi chạy chương trình trên máy tính 11 Lop11.com (6) , để thoát khỏi vòng lặp vô hạn ta có thể - Ghi bài ấn tổ hợp phím Ctrl+Break Ctrl+Alt+Del Sau đó sửa lại chương trình cách đưa thêm câu lệnh rẽ nhánh : If <ĐK2> then Exit ; hoặc: If <ĐK2> then Break ; để thoát khỏi vòng lặp.( Sau này vào bài tập và thực hành cô nói thêm) Hỏi: So sánh câu lệnh For-do và câu lệnh While-do? - Giống nhau: Đều là câu thể cấu trúc lặp - Khác nhau: Câu lệnh For-do là câu lệnh thực cấu trúc lặp XĐ trước số lần lặp, còn câu lệnh While-do là câu lệnh thực cấu trúc lặp chưa XĐ trước số lần lặp d) Áp dụng câu lệnh vào các ví dụ VD1: Quay trở lại bài toán tính tổng Hỏi: Em nào có thể trình bày Input và Output bài toán trên? - HS trình bày: Input: Số nguyên a>2 Output: Đưa tổng S 1/(a+N) Hỏi: Em nào có thể liệt kê các bước để giải bài toán trên < 0,0001 - HS trình bày: B1: S ß 1/a; N ß 0; B2: Nếu 1/(a+N) < 0,0001 thì chuyển đến bước 5; B3: N ß N + 1; B4: S ß S + 1/(a+N) quay lại B2 Hỏi: Em nào có thể lên bảng vẽ sơ đồ B5: Đưa tổng S kết thúc khối thể các bước để giải bài toán - HS vẽ sơ đồ khối trên 10 Lop11.com (7) Nhập a S ß1/a; N ß0; NßN+1; SßS+1/(1+N); S 1/(a+N) < 0.0001? Đ - Gọi HS nhận xét - Nhận xét bài làm HS và sửa chữa, bổ sung cần * Gợi ý để HS viết chương trình thể Đưa S kết thúc - HS nhận xét - Quan sát và đối chiếu kết thuật toán: Hỏi: Quan sát sơ đồ khối ta thấy có lặp lại công việc gì? - Lặp lại việc kiểm tra điều kiện và Hỏi: Phải sử dụng câu lệnh nào để thể việc thực bước và bước việc lặp lại đó? - Phải sử dụng câu lệnh While-do Hỏi: Biểu thức điều kiện sử dụng câu lệnh While-do đây là gì? ð Nếu thì có nghĩa là - BTĐK: 1/(a+N) < 0.0001 1/(a+N) < 0.0001 thì thực B3 và B4? Điều này mâu thuẫn với thuật - HS sửa lại: Not (1/(a+N)) < 0.0001 toán trên Phải sửa lại nào cho đúng? Hỏi: Cần nhập vào từ bàn phím giá trị nào? - Cần nhập vào giá trị a Hỏi: Chương trình có bao nhiêu biến thay đổi giá trị, kiểu liệu các biến - Có biến thay đổi giá trị quá trình tính tổng là: S (có kiểu thực) và sao? Hỏi: Như câu lệnh sau từ khoá N (có kiểu nguyên) 10 Lop11.com (8) ỎdoÕ phải là câu lênh đơn hay câu lệnh ghép? - Câu lệnh ghép Hỏi : Em nào có thể viết đoạn chương trình thể câu lệnh While-do? - Thể hiện: While Not (1/(a+N) < 0.0001) - Yêu cầu các HS còn lại tự viết begin N:=N+1; chương trình vào S:=S+1/(a+N); GV: Từ tổng hợp các ý trên cô end; có chương trình thể bài toán trên - HS quan sát lắng nghe GV giải thích sau: chương trình và đối chiếu với chương trình mình Program Tong2; Var S :real; N: Interger; Begin Write(‘Nhap a>2’); readln(a); S := 1/a; N:= 0; While Not ((1/(a+N) < 0.0001) begin N:=N+1; S:=S+1/(a+N); end; Writeln(‘Tong S cần tìm là’, S :8:2); readln End VD2: Đưa bài toán tìm UCLN hai số nguyên dương M, N Hỏi: Một em nhắc lại thuật toán tìm - Lắng nghe, ghi đề bài UCLN PP liệt kê đã học 10 Lop11.com (9) lớp 10? - Nhắc lại thuật toán: - Vẽ sơ đồ khối lên bảng, yêu cầu B1: Nhập M,N; HS lên hoàn thiện sơ đồ B2: Nếu M = N thì lấy UCLN là M ( N) chuyển đến B5; B3: Nếu M>N thì MßM-N Ngược lại thì NßN-M; B4: Quay lại B2 B5: Đưa UCLN kết thúc - Nhận xét trình bày HS, chỉnh sửa bổ sung cần thiết - Gợi ý cho HS viết chương trình: - Điền vào sơ đồ khối theo đúng SGK Đưa VD cụ thể tìm ƯCLN số 12 và 15 m n m>n? n>m? m=n? UCLN=m 12 15 true 12 true true true 3 - Tập trung theo dõi để thấy true, công việc cần thực UCLN=3 Hỏi: Quan sát sơ đồ khối ta thấy có lặp lại công việc gì? Hỏi: Cần lặp lại bao nhiêu lần? 10 Lop11.com (10) Hỏi: Như phải sử dụng câu lệnh nào để thể điêù này? - Yêu cầu HS viết chương trình hoàn thiện bài toán nhà - Lặp lại việc kiểm tra ĐK là M <> N và việc tính M := M - N N:=NM tương ứng tuỳ theo M>N hay N>M - Chưa biết phải lặp bao nhiêu lần - Câu lệnh WhileỴdo 4) Củng cố, dặn dò * Những nội dung đã học: - ý nghĩa cấu trúc lặp với số lần chưa XĐ - Cấu trúc chung câu lệnh While-do ngôn ngữ l;ập trình Pascal - Sơ đồ thực lệnh lăp While - Sự hoạt động (thực hiện) máy tính gặp lệnh While-do * Câu hỏi và bài tập nhà: - Viết lại chương trình tính tổng với ĐK: phải kiểm tra giá trị a nhập vào (phải khác 0) - Xem thêm câu lệnh lặp khác là câu lệnh Repeat – Until trang 132, so sánh với câu lệnh While-do - Xem nội dung bài tập và thực hành số 2, SGK tr 49 - Viết chương trình thể bài toán sau: Một người có số tiền là 500 000đ ,ông ta gửi tiết kiệm ngân hàng với lãi xuất tháng là 1,5% Hỏi sau bao nhiêu tháng ông ta có số tiền lớn gấp đôi số tiền ban đầu 5) Rút kinh nghiệm 10 Lop11.com (11) 10 Lop11.com (12)

Ngày đăng: 01/04/2021, 22:14

Tài liệu cùng người dùng

Tài liệu liên quan