BÀI 7: CÂU LỆNH LẶP
A. Mục tiêu :
• Biết nhu cầu cần có cấu trúc lặp trong ngôn ngữ lập trình.
• Biết ngôn ngữ lập trình dùng cấu trúc lặp để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc nào đó một số lần.
• Hiểu hoạt động của câu lệnh với số lần biết trước for.do trong Pascal.
• Viết đúng được lệnh for.do trong một số tình huống đơn giản.
• Hiểu lệnh ghép trong Pascal
Thái độ nghiêm túc cẩn thận.
B. Chuẩn bị :
1. Giáo viên : - SGK, SGV, tài liệu, Giáo án
- Đồ dùng dạy học.
2. Học sinh : - Đọc trước bài
- SGK, Đồ dùng học tập.
am gi¸c. Hoạt động 2: Bài tập 6. GV: 01 em đọc bài 6 ? nêu các bước dựng hình vuông HS: trả lời GV: Nhận xét kết luận Vẽ đoạn thẳng AB Vẽ đoạn thẳng BC vuông góc với AB. Vẽ đường thẳng qua A // BC, đường thẳng qua C //AB. Tạo giao điểm 2 đường thẳng đó. HS: chú ý ghi bài. Tổ chức HS thực hành trên máy bài tập 6 HS:Thực hành GV:Quan sát, hướng dẫn. Nhận xét các nhóm làm, cho điểm Bài tập 6 - VÏ h×nh vuông. Hoạt động 3: Bài tập 7. GV: 01 em đọc bài 7 ? nêu các bước dựng hình thoi HS: trả lời GV: Nhận xét kết luận Vẽ đoạn thẳng AB Vẽ đường thẳng qua C //AB Nối A với C Vẽ đường thẳng qua B //AC Tạo giao điểm là D HS: chú ý ghi bài. Tổ chức HS thực hành trên máy bài tập 7 HS:Thực hành GV:Quan sát, hướng dẫn. Nhận xét các nhóm làm, cho điểm Bài tập 7 - VÏ h×nh thoi. 4) Củng cố: GV: Nhận xét buổi thực hành, rút kinh nghiệm. HS: Rút kinh nghiệm 5) Hướng dẫn về nhà: - Về nhà học sinh học học bài cũ Tuần: 25 Ngày soạn: 01/02/2015 Tiết: 50 Ngày dạy: 02 - 07/02/2015 HỌC VẼ HÌNH VỚI PHẦN MỀM GEOGEBRA (T6) A/ MỤC TIÊU: 1) Kiến thức: - RÌn luyÖn c¸c kü n¨ng sö dông c¸c c«ng cô lµm viÖc chÝnh ®Ó vÏ h×nh 2) Kĩ năng: - Sö dông c¸c c«ng vÏ ®îc h×nh thang c©n, ®êng trßn ngo¹i (néi) tiÕp tam gi¸c, h×nh thoi, ... 3) Thái độ: - Hs ý thức trong việc ứng dụng phần mềm trong học tập của mình. B/ CHUẨN BỊ: -Giáo viên: giáo án, phòng máy, phần mềm Geogebra -Học sinh: Vë ghi. C/ TIẾN TRÌNH LÊN LỚP. 1)Ổn định tổ chức: - Kiểm tra sĩ số 2)Kiểm tra bái cũ: - KÕt hîp trong giê. 3)Bài mới: Hoạt động của giáo viên và học sinh Nội dung Hoạt động 1: Híng dÉn ban ®Çu GV: ®ãng ®iÖn HS : æn ®Þnh vÞ trÝ trªn c¸c m¸y. HS : KiÓm tra t×nh tr¹ng m¸y tÝnh cña m×nh => B¸o c¸o t×nh h×nh cho GV Hoạt động 2: Híng dÉn thêng xuyªn GV: ®a ra thêi gian cô thÓ ®Ó vÏ c¸c h×nh trong bµi tËp GV: gäi ®¹i diÖn c¸c nhãm nªu c¸ch vÏ c¸c h×nh trong bµi tËp HS: th¶o luËn nhãm vµ ®a ra c¸ch vÏ c¸c h×nh theo c©u hái cña GV GV: theo dâi hdÉn vµ ®a ra c¸c c©u hái vÒ c¸ch vÏ c¸c h×nh trong To¸n häc gióp HS t×m ra c¸ch vÏ h×nh trong phÇn mÒm HS: thùc hµnh vµ tr¶ lêi c¸c c©u hái cña gi¸o viªn GV: cã thÓ lµm mÉu nÕu nhãm nµo cha vÏ ®îc. Bµi tËp thùc hµnh: VÏ tam gi¸c ®Òu . VÏ mét h×nh lµ ®èi xøng cña mét ®èi tîng cho tríc trªn mµn h×nh . VÏ mét h×nh lµ ®èi xøng qua t©m cña mét ®èi tîng cho tríc trªn mµn h×nh 4) Củng cố: GV nghiÖm thu bµi thùc hµnh cña häc sinh. Cho ®iÓm HS. 5) Hướng dẫn về nhà: - Ap dông phÇn mÒm ®Ó vÏ mét sè h×nh trong m«n h×nh häc líp Tuần: 26 Ngày soạn : 08/02/2015 Tiết: 51 Ngày dạy: 09 - 14/02/2015 Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC A.Mục tiêu: 1.Kiến thức - Biết nhu cầu cần có cấu trúc lặp với số lần chưa biết trước trong ngôn ngữ lập trình; - Biết ngôn ngữ lập trình dùng cấu trúc lặp với số lần chưa biết trước để chỉ dẫn máy tính thực hiện lặp đi lặp lại công việc đến khi một điều kiện nào đó được thoả mãn; 2. Kĩ năng - Nhận biết được đâu là hoạt động lặp với số lần chưa biêt trước. 3. Thái độ - Nghiêm túc trong quá trình nghiên cứu và thực hành. B. Chuẩn bị GV: SGK, máy chiếu, phim trong các ví dụ về chương trình HS: Xem trước bài ở nhà C. Tiến trình bài giảng I. Ổn định lớp II. Kiểm tra bài củ Viết thuật toán tính tổng 100 số tự nhiên đầu tiên 1,2,3,,99,100 Trả lời Bước 1. SUM ¬ 0; i ¬ 0. Bước 2. i ¬ i + 1. Bước 3. Nếu i ≤ 100, thì SUM ¬ SUM + i và quay lại bước 2. Bước 4. Thông báo kết quả và kết thúc thuật toán. III. Bài mới HOẠT ĐỘNG GV - HS NỘI DUNG + G : y/c hs đọc ví dụ 1sgk/67 + Hs : 2-3 hs đọc ví dụ sgk + G : Phân tích ví dụ + Hs : Chú ý lắng nghe + G : y/c hs đọc ví dụ 1sgk/67 + Hs : 2-3 hs đọc ví dụ sgk + G : Phân tích ví dụ + Hs : chú ý lắng nghe + G : Hướng dẫn hs xây dựng thuật toán + Hs : Nghe giáo viên hướng dẫn, sau đó tự xây dựng thuật toán + G : Chạy tay cho học sinh xem ( Chỉ nên chạy tay thử từ 1 đến 10 ) + Hs : Chú ý nghe . Hs ghi vở ví dụ 2 + G : Giới thiệu sơ đồ khối + G : Nêu nhận xét + G : Có thể sử dụng lệnh lặp với số lần lặp chưa biết trước trong các chương trình lập trình . Sau đây ta xét câu lệnh và ví dụ trong TP + G : Giới thiệu cú pháp lệnh while do .; + hs : chú ý nghe và ghi chép + G : Xét ví dụ 3 Chúng ta biết rằng, nếu n càng lớn thì càng nhỏ, nhưng luôn luôn lớn hơn 0. Với giá trị nào của n thì < 0.005 hoặc < 0.003 ? ( Gv đưa phim trong ví dụ 3 ) + Hs : Đọc ví dụ 3 ( Phim trong) + G : giới thiệu chương trình mẫu sgk ( Giáo viên in chương trình mẫu trên phim trong ) + Hs : quan sát + G : Chạy tay cho học sinh xem + Hs : chú ý nghe và tự chạy tay lại + G : Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 3 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy ) + Hs : thực hiện + G : Cho học sinh chạy chương trình trên máy + Hs : thực hiện + G : Yêu cầu hs thay điều kiện sai_so = 0.003 thành 0.002 ; 0.001 ; 0.005 ; ... + Hs : thực hiện 1. Các hoạt động lặp với số lần chưa biết trước a/ Ví dụ 1(sgk). b/ Ví dụ 2 : Nếu cộng lần lượt n số tự nhiên đầu tiên (n = 1, 2, 3,...), Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000? Giải : Kí hiệu S là tổng cần tìm và ta có thuật toán như sau: + Bước 1. S ¬ 0, n ¬ 0. + Bước 2. Nếu S ≤ 1000, n ¬ n + 1; ngược lại chuyển tới bước 4. + Bước 3. S ¬ S + n và quay lại bước 2. + Bước 4. In kết quả : S và n là số tự nhiên nhỏ nhất sao cho S > 1000. Kết thúc thuật toán. * Ta có sơ đồ khối : * Nhận xét : Để viết chương trình chỉ dẫn máy tính thực hiện các hoạt động lặp như trong các ví dụ trên, ta có thể sử dụng câu lệnh có dạng lặp với số lần chưa biết trước 2. Ví dụ về lệnh lặp với số lần chưa biết trước Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng: while do ; trong đó: điều kiện thường là một phép so sánh; câu lệnh có thể là câu lệnh đơn giản hay câu lệnh ghép. Câu lệnh lặp này được thực hiện như sau: Bước 1 : Kiểm tra điều kiện. Bước 2 : Nếu điều kiện SAI, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1. Ví dụ 3. Với giá trị nào của n ( n>o ) thì < 0.005 hoặc < 0.003? Chương trình dưới đây tính số n nhỏ nhất để nhỏ hơn một sai số cho trước : uses crt; var x: real; n: integer; const sai_so=0.003; begin clrscr; x:=1; n:=1; while x>=sai_so do begin n:=n+1; x:=1/n end; writeln('So n nho nhat de 1/n < ',sai_so:5:4, 'la ',n); readln end. IV. Củng cố: - Lấy ví dụ về các hoạt động phải lặp lại với số lần chưa biết trước V. Hướng dẫn về nhà: - Học bài - Nghiên cứu trước nội dung các phần còn lại Tuần: 26 Ngày soạn : 08/02/2015 Tiết: 52 Ngày dạy: 09 - 14/02/2015 Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC A.Mục tiêu: 1. Kiến thức: - Biết câu lệnh lặp với số lần chưa biết trước while...do trong Pascal. 2. Kĩ năng: - Lấy được các vị cụ cụ thể về câu lệnh lặp với số lần chưa biết trước. 3. Thái độ: - Nghiêm túc trong quá trình hcọ tập và rèn luyện. B. Chuẩn bị GV: SGK, máy chiếu, phim trong các ví dụ về chương trình HS: Xem trước bài ở nhà C. Tiến trình bài giảng I. Ổn định: II. Kiểm tra bài cũ: III. Bài mới HOẠT ĐỘNG GV - HS NỘI DUNG + G : ta tiếp tục xét các ví dụ mà trong chương trình có câu lệnh với số lần lặp chưa biết trước Xét ví dụ 4 + G : Cho học sinh quan sát phim trong chương trình + Hs : quan sát + G : Chạy tay cho học sinh xem + Hs : chú ý nghe và tự chạy tay lại + G : Yêu cầu học sinh mở máy tính và mở chương trình ví dụ 4 ( giáo viên chuẩn bị chương trình mẫu và đưa lên các máy ) + Hs : thực hiện + G : Cho học sinh chạy chương trình trên máy + Hs : thực hiện + G : chạy chương trình này, ta nhận được giá trị ntn? + Hs : Nếu chạy chương trình này ta sẽ nhận được n = 45 và tổng đầu tiên lớn hơn 1000 là 1034. + G : giới thiệu ví dụ 5 sgk Viết chương trình tính tổng + G : Cho học sinh quan sát phim trong chương trình + Hs : quan sát + G : Chạy tay ( cả hai chương trình ) cho học sinh xem + Hs : chú ý nghe và tự chạy tay lại + G : so sánh kết quả khi chạy hai chương trình + Hs : Kết quả bằng nhau + G : Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh whiledo thay cho câu lệnh fordo. + G : Giới thiệu phần 3 + G : Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc + Hs : Chú ý nghe + G : Chẳng hạn, chương trình dưới đây sẽ lặp lại vô tận: var a:integer; begin a:=5; while a<6 do writeln('A'); end. + Hs : Quan sát + G : Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A') luôn được thực hiện. Do vậy, khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện được chuyển từ đúng sang sai. Chỉ như thế chương trình mới không "rơi" vào những "vòng lặp vô tận". + Hs : Chú ý nghe Ví dụ 4. Chương trình Pascal dưới đây thể hiện thuật toán tính số n trong ví dụ 2: var S,n: integer; begin S:=0; n:=1; while S<=1000 do begin n:=n+1; S:=S+n end; writeln('So n nho nhat de tong > 1000 la ',n); writeln('Tong dau tien > 1000 la ',S); end. Ví dụ 5. Viết chương trình tính tổng Giải : Để viết chương trình tính tổng ta có thể sử dụng lệnh lặp với số lần lặp biết trước fordo: T:=0; for i:=1 to 100 do T:=T+1/i; writeln(T); Nếu sử dụng lệnh lặp whiledo, đoạn chương trình dưới đây cũng cho cùng một kết quả: T:=0; i:=1; while i<=100 do begin T:=T+1/i; i:=i+1 end; writeln(T); * Nhận xét : Ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh whiledo thay cho câu lệnh fordo. 3. Lặp vô hạn lần – Lỗi lập trình cần tránh Khi viết chương trình sử dụng cấu trúc lặp cần chú ý tránh tạo nên vòng lặp không bao giờ kết thúc. IV. Củng cố: - Ghi nhớ sgk - Làm bài tập 2,3a,bài 5 SGK/71 V. Hướng dẫn về nhà: - Học bài và làm lại các bài tập - Nghiên cứu trước bài thực hành Tuần: 27 Ngày soạn: 01/03/2015 Tiết: 53 Ngày dạy: 02 - 07/03/2015 BÀI TẬP A. Mục tiêu: Viết được chương trình Pascal có sử dụng vòng lặp While ... do Biết sử dụng câu lệnh ghép. Rèn kỹ năng đọc hiểu chương trình có sử dụng vòng lặp while ... do B. Phương pháp 1. Phương pháp: Thuyết trình, nêu vấn đề, vấn đáp 2. Phương tiện: Máy tính, . C. Chuẩn bị: 1. Giáo viên: Chuẩn bị một số thuật toán và chương trình . Chuẩn bị máy tính,. 2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trước. D. Tiến trình bài dạy: Sự khác biệt giữa câu lệnh lặp với số lần lặp cho trước và câu lệnh lặp với số lần lặp chưa biết trước là ở các điểm sau đây: Như tên gọi của nó, câu lệnh lặp với số lần lặp cho trước chỉ thị cho máy tính thực hiện một lệnh hoặc một nhóm lệnh với số lần đã được 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 được xác định trước. Trong câu 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ều kiện tổng quát hơn nhiều, có thể là kiểm tra một giá trị của một số thực, cũng có thể là một điều kiện tổng quát khác, ví dụ như một số có chia hết cho 3 hay không,... Trong câu lệnh lặp với số lần cho trước, câu lệnh được thực hiện ít nhất một lần, sau đó kiểm tra điều kiện. Trong câu lệnh lặp với số lần chưa xác định trước, trước hết điều kiện được kiểm tra. Nếu điều kiện được thoả mãn, câu lệnh mới được thực hiện. Do đó có thể có trường hợp câu lệnh hoàn toàn không được thực hiện. Mô tả thuật toán: Bước 1. Đặt i = R (i là bán kính đường tròn sẽ vẽ). Bước 2. Nếu i > 1.5, vẽ đường tròn bán kính i; ngược lại, chuyển đến bước 4. Bước 3. i ¬ i - 1/2 và quay lại bước 2. Bước 4. Kết thúc thuật toán. a) Thuật toán 1: 10 vòng lặp được thực hiện. Khi kết thúc thuật toán S = 5.0. Đoạn chương trình Pascal tương ứng: S:=10; x:=0.5; while S>5.2 do S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào được thực hiện vì ngay từ đầu điều kiện đã không được thỏa mãn nên các bước 2 và 3 bị bỏ qua. S = 10 khi kết thúc thuật toán. Đoạn chương trình Pascal tương ứng: S:=10; n:=0; while S<10 do begin n:=n+3; S:=S-n end; writeln(S); Nhận xét: Trong các thuật toán và chương trình trên, điều kiện được kiểm tra trước khi các bước lặp được thực hiện. Do đó nếu điều kiện không được thỏa mãn ngay từ đầu, các bước lặp sẽ bị bỏ qua. Điều này đặc biệt đúng đối với câu lệnh lặp while..do. a) Chương trình thực hiện 5 vòng lặp. b) Vòng lặp trong chương trình được thực hiện vô tận vì sau câu lệnh n:=n+1; câu lệnh lặp kết thúc nên điều kiện S=0 luôn luôn được thỏa mãn. Nhận xét: Trong câu lệnh thực hiện, điều kiện cần phải được thay đổi để sớm hay muộn chuyển sang trạng thái không thỏa mãn. Khi đó vòng lặp mới được kết thúc sau hữu hạn bước. Để làm được điều này, câu lệnh trong câu lệnh lặp while..do thường là câu lệnh ghép. a) Thừa dấu hai chấm trong điều kiện; b) Thiếu dấu hai chấm trong câu lệnh gán; c) Thiếu các từ khóa begin và end trước và sau các lệnh n:=n+1; S:=S+n, do đó vòng lặp trở thành vô tận. Viết thuật toán và chương trình Pascal có câu lệnh lặp với số lần không xác định để tính luỹ thừa bậc n của x (tức xn), với n là số tự nhiên và x là số thực được nhập vào từ bàn phím. Hãy so sánh với thuật toán trong bài tập 8, bài 7. Thuật toán: Bước 1. Đọc các giá trị x và n. Bước 2. A ¬ 1, k ¬ 1. Bước 3. Nếu k > n, chuyển xuống bước 5. Bước 4. A = A.x, k ¬ k + 1 và quay lại bước 3. Bước 5. Thông báo kết quả là A và kết thúc thuật toán. Chương trình Pascal: var n,k: integer; A, LT: real; begin write(‘Nhap so A= ‘); readln(A); write(‘Nhap so n= ‘); readln(n); LT:=1; k:=1; while k<=n do begin LT:=LT*A, k:=k+1 end end. Tính tích của N số tự nhiên đầu tiên với số lần lặp không xác định (với N là số tự nhiên được nhập vào từ bàn phím). Bước 1. Đọc giá trị N. Bước 2. T ¬ 1, k ¬ 1. Bước 3. Nếu k £ N, T = T.k; ngược lại, chuyển xuống bước 5. Bước 4. k ¬ k + 1 và quay lại bước 3. Bước 5. Kết thúc thuật toán. Thuật toán: Bước 1. Đọc giá trị n. Bước 2. S ¬ 0, i ¬ 2. Bước 3. Nếu i > n - 1, chuyển xuống bước 5. Bước 4. Nếu n chia hết cho i, S ¬ S + i, i ¬ i + 1 và quay lại bước 3. Bước 5. Ghi giá trị S và kết thúc thuật toán. Chương trình có thể như sau: var n,i,S: integer; begin write('Cho so tu nhien n= '); readln(n); i:=2; S:=0; while i<=n-1 do begin if (n mod i)=0 then S:=S+i; i:=i+1; end; write('Tong cac uoc so thuc su cua ',n,' la: ',S); readln; end. Chương trình có thể như sau: Uses CRT; Var A, sum: real; i: integer; Begin Write('cho so A: '); readln(A); i:=1; sum:= 0; While (sum<=A) do Begin sum:= sum+1/i; i:= i+1; end; Write('Gia tri N bang ', i:6); Readln; End. Tuần: 27 Ngày soạn: 01/03/2015 Tiết: 54 Ngày dạy: 02 - 07/03/2015 BÀI TẬP A. Mục tiêu: Viết được chương trình Pascal có sử dụng vòng lặp While ... do Biết sử dụng câu lệnh ghép. Rèn kỹ năng đọc hiểu chương trình có sử dụng vòng lặp while ... do B. Phương pháp 1. Phương pháp: Thuyết trình, nêu vấn đề, vấn đáp 2. Phương tiện: Máy tính, . C. Chuẩn bị: 1. Giáo viên: Chuẩn bị một số thuật toán và chương trình . Chuẩn bị máy tính,. 2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trước. D. Tiến trình bài dạy: Bài 1: Lập trình tính tổng dùng lệnh lặp While ...do. Trong đú n là số tự nhiên được nhập từ bàn phím. GIẢI Program tinhA; Uses CRT; Var i, n: integer; tong: real; BEGIN Clrscr; write('cho so tu nhien n: '); Readln(n); tong:=0; i:=1; while i<= n do Begin tong:= tong+ 1/i; i: = i+1; End; writeln(' Tong can tim la: ', tong:12:6); Readln; END. Bài 2: Viết chương trình tìm ƯCLN(a,b). Biết a, b được nhập từ bàn phím. a,b Giải Program timUCLN; Uses Crt; Var a,b,r,a1,b1: integer; BEGIN ClrScr; Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a; Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b; While a mod b 0 do Begin r:= a mod b; a: = b; b: = r; End; Write (‘ Vay UCLN(‘, a1, ‘;’,b1,’)=’,b:2); Readln END. Bài 3: Viết chương trình tìm BCNN(a,b). Biết a, b được nhập từ bàn phím. a,b Giải Program timBCNN; Uses Crt; Var a,b,n,min,max,max1: integer; BEGIN ClrScr; Write(‘Nhap so thu nhat, a= ‘); Readln(a); a1:= a; Write(‘Nhap so thu hai, = ‘); Readln(b); b1:= b; If a>b then Begin max: = a; min:=b; End Else Begin max:=b; min:= a; End; n:= 2; max1:=max; While max mod min 0 Do Begin max:= max1*n; inc(n); {n:=n+1} End; Write (‘ Vay BCNN(‘, a, ‘;’,b,’)=’,max:2); Readln END. Tuần: 28 Ngày soạn: 08/03/2015 Tiết: 55 Ngày dạy: 09 – 14/03/2015 BÀI THỰC HÀNH 6: SỬ DỤNG LỆNH LẶP WHILE ... DO A. Mục tiêu: Viết được chương trình Pascal có sử dụng vòng lặp While ... do Biết sử dụng câu lệnh ghép. Rèn kỹ năng đọc hiểu chương trình có sử dụng vòng lặp while ... do B. Phương pháp 1. Phương pháp: Thuyết trình, nêu vấn đề, vấn đáp 2. Phương tiện: Máy tính, . C. Chuẩn bị: 1. Giáo viên: Chuẩn bị một số thuật toán và chương trình . Chuẩn bị máy tính,. 2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trước. D. Tiến trình bài dạy: ổn định lớp (1 phút) Kiểm tra bài cũ (không kiểm tra) Giảng bài mới: HOẠT ĐỘNG GV - HS NỘI DUNG HĐ 1: Bài 1 Gv: Viết đề bài 1. Gv: Em hãy cho biết input và output của bài toán? Gv: Chúng ta cần tính TBC bao nhiêu số? Gv: Nêu cách tính trung bình cộng 4 số. Hs: Gv: Vậy tính TBC n số ta làm ntn? Hs: Gv: Tính ntn? Hs: S S + x; Gv: làm sao để có S mới = S cũ + x. Hs: S 0 (b1) Gv: qluật S S + x; đến khi nào dừng? Hs: Khi dem > n. à phát hiện ra điều kiện lặp của Whiledo Gv: Dựa vào hệ thống câu hỏi. Lần lượt hình thành thuật toán. Hs: Dựa vào thuật toán trình bày chương trình hoàn chỉnh. Gv: Quan sát, chỉnh sửa từng câu lệnh Hs lên bảng trình bày. Bài 1: Viết chương trình Pascal sử dụng câu lệnh Whiledo để tính trung bình cộng n số thực nhập từ bàn phím. (n, và n số thực được nhập từ bàn phím) a. Mô tả thuật toán. INPUT: Nhập n, nhập n số nguyên. OUTPUT: Kết quả TBC của n số nguyên B1: Nhập giá trị của n( tính TBC bao nhiêu số); dem¬0; S¬0; B2: Trong khi dem <= n thì làm Nhập số thứ (1,2,3.n) (cho x) S¬S+x; dem¬dem +1; B3: Tính TB ¬S/n; B4: In kết quả TB, kết thúc chương trình. b. Viết chương trình. Program tinhTB; Uses Crt; Var n,dem: integer; x, S, TB: real; BEGIN ClrScr; Write(‘Muon tinh TB bao nhieu so n=’); Readln(n); dem:= 0; S:=0; While dem <= n do Begin Write(‘Nhap so thu’, dem, ‘ = ‘ );readln(x); S:= S + x; dem:= dem + 1; End; TB:= S/n; Write(‘ Vay trung binh cong ’, n, ‘so la: ‘, TB:6:2); Readln END. Hướng dẫn về nhà (2 phút) Ghi nhớ cú pháp và ý nghĩa của câu lệnh lặp while ... do..., Đọc và tìm hiểu chương trình trong Đọc thêm 1 – Tính gần đúng số Pi. V. Hướng dẫn về nhà - Học bài và làm lại các bài tập - Nghiên cứu trước bài thực hành Tuần: 28 Ngày soạn: 08/03/2015 Tiết: 56 Ngày dạy: 09 – 14/03/2015 BÀI THỰC HÀNH 6: SỬ DỤNG LỆNH LẶP WHILE ... DO A. Mục tiêu: Viết được chương trình Pascal có sử dụng vòng lặp While ... do Biết sử dụng câu lệnh ghép. Rèn kỹ năng đọc hiểu chương trình có sử dụng vòng lặp while ... do B. Phương pháp 1. Phương pháp: Thuyết trình, nêu vấn đề, vấn đáp 2. Phương tiện: Máy tính, . C. Chuẩn bị: 1. Giáo viên: Chuẩn bị một số thuật toán và chương trình . Chuẩn bị máy tính,. 2. Học sinh:- Thực hiện nhiệm vụ về nhà của tiết trước. D. Tiến trình bài dạy: ổn định lớp (1 phút) Kiểm tra bài cũ (không kiểm tra) Giảng bài mới: HOẠT ĐỘNG GV - HS NỘI DUNG Gv: Viết chương trình bài 2 lên bảng. Hs: Ghi bài vào vở. Gv: Cho Hs lần lượt tìm hiểu ý nghĩa của từng câu lệnh -Tác dụng: While n mod i 0 do i:= i + 1; Hs: Lần lượt trả lời. Gv: Chương trình trên có tác dụng gì? Hs: Mục đích là nhận dạng một số có là số nguyên tố hay không?Hs: S S + x; Gv: làm sao để có S mới = S cũ + x. Hs: S 0 (b1) Gv: qluật S S + x; đến khi nào dừng? Hs: Khi dem > n. à phát hiện ra điều kiện lặp của Whiledo Gv: Dựa vào hệ thống câu hỏi. Lần lượt hình thành thuật toán. Hs: Dựa vào thuật toán trình bày chương trình hoàn chỉnh. Gv: Quan sát, chỉnh sửa từng câu lệnh Hs lên bảng trình bày. Bài 2: Đọc và tìm hiểu ý nghĩa của từng câu lệnh sau đây. Uses Crt; Var n,i : integer; BEGIN ClrScr; Write(‘Nhap vao mot so nguyen: ‘);Readln(n); If n<=1 Then Writeln(‘N khong la so nguyen to’); Else Begin i:=2; While n mod i 0 do i:= i + 1; If i = n Then Writeln(n,’ la so nguyen to’) Else Writeln(n,’ khong la so nguyen to’); End; Readln END. S¬S+x; dem¬dem +1; IV.Hướng dẫn về nhà (2 phút) Ghi nhớ cú pháp và ý nghĩa của câu lệnh lặp while ... do..., Đọc và tìm hiểu chương trình trong Đọc thêm 1 – Tính gần đúng số Pi. V. Hướng dẫn về nhà - Học bài và làm lại các bài tập - Nghiên cứu trước bài thực hành Tuần: 29 Ngày soạn: 15/03/2015 Tiết: 57 Ngày dạy: 16 - 21/03/2015 KIỂM TRA THỰC HÀNH I - MỤC TIÊU 1. Kiến thức - Học sinh nắm vững được các kiến thức cơ bản về các cấu trúc cú pháp của ngôn ngữ Pascal. - Ôn các câu lệnh của Pascal: Như For...do, If...then, While...do 2. Kỹ năng - Biết và thực hành tốt các thao tác với máy tính. 3. Thái độ - Nghiêm túc trong việc học tập, có ý thức khi thực hành phòng máy. II. CHUẨN BỊ 1. Giáo viên: Giáo trình, phòng máy. 2. Học sinh: Nghiên cứu lý thuyết trước khi vào thực hành. III - PHƯƠNG PHÁP - GV giới thiệu, ra yêu cầu – HS thực hành trực tiếp trên máy. IV - TIẾN TRÌNH BÀI DẠY A - ỔN ĐỊNH LỚP B - KIỂM TRA BÀI CŨ C - BÀI MỚI Đề bài: Câu 1 :Viết chương trình nhập hai số thực a và b . Sau đó hỏi phép tính cần thực hiện và in kết quả của phép tính đó . Nếu là “+” , in kết quả của tổng lên màn hình . Nếu là “-” , in kết quả của hiệu lên màn hình . Nếu là “/” , in kết quả của thương lên màn hình . Nếu là “*” , in kết quả của tích lên màn hình . Câu 2 :Cho số tự nhiên n , hãy lập trình để tính các tổng sau: S=1 + 1/2! + 1/3! + + 1/n! Câu 3:Lập trình tính tổng : A = 1 + 1/2 + 1/3 + + 1/n ở đây n là số tự nhiên được nhập vào từ bàn phím . Bài Làm Câu 1 : Program cau1 ;
Tài liệu đính kèm: