1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo án Tin học 8 - Học kỳ 2 - Nguyễn Thị Thúy Liễu

20 9 0

Đ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

* 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ệ[r]

(1)Trường THCS Hựu Thạnh Giáo án tin học Tuaàn : 20 – Tieát 39,40 Ngày dạy : Bài 7: CÂU LỆNH LẶP I/ Mục tiêu:  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 hoạt động câu lệnh với số lần biết trước for Pascal  Viết đúng lệnh for số tình đơn giản  Hiểu lệnh ghép Pascal  Thái độ nghiêm túc cẩn thận II/ Chuẩn bị:  Gv: Tài liệu tin lớp  HS: SGK tin 8, ghi III/ Tổ chức hoạt động dạy và học 1/Ổn định : Kiểm tra bài cũ Bài Hoạt động GV Hoạt động HS Hoạt động 1: Các công việc phải thực nhiều lần GV: giới thiệu : Trong sống ngày, Các công việc phải thực nhiều nhiều hoạt động thực lặp lặp lại lần nhiều lần ví dụ: - Các ngày tuần các em lặp lặp ( SGK) lại hoạt động buổi sáng đến trường và buổi trưa trở nhà - Các em học bài thì phải đọc đọc lại nhiều lần thuộc bài HS lắng nghe GV: Hãy cho thêm vài ví dụ thực tế đời sống ngày mà ta phải thực các thao tác lặp lặp nhiều lần? Hs cho ví dụ Gv: Khi viết chương trình máy tính vậy, 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 HS lắng nghe Hoạt động 2: Câu lệnh lặp – lệnh thay cho nhiều lệnh Gv: Gọi hs lên bảng vẽ hình vuông cạnh 2/ Câu lệnh lặp – lệnh thay cho đơn vị độ dài (20cm) và yêu cầu lớp theo dõi nhiều lệnh bạn thực các thao tác trên bảng Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (2) Trường THCS Hựu Thạnh Giáo án tin học HS: 1hs lên bảng vẽ, lớp theo dõi GV: Yêu cầu hs mô tả các bước bạn vẽ trên bảng Vậy bạn vẽ hình vuông đã thực bao nhiêu thao tác? (hs có thể trả lời thao tác là vẽ đoạn thẳng) HS: trả lời (4 thao tác) GV: Gợi ý thêm thao tác quay thước Các thao tác đó nào? HS: trả lời : Các thao tác giống Gv: Như vẽ hình vuông có 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 Vd1: Thuật toán mô tả các bước để vẽ hình vuông Bước 1: k ← (k là số đoạn thẳng đã vẽ được) Bước 2: k ← k+1 Vẽ đoạn thẳng đơn vị độ dài và quay thước 900 sang phải Bước 3: Nếu k<4 thì quay lại bước 2; ngược lại kết thúc  k là biến đếm Vd2: Thuật toán tính S= 1+2+3+ … + 100 Bước 1: S ← 0; i ← Bước 2: i← i + Bước 3: i ≤ 100, thì S ← S + i và quay lại bước 2; ngược lại kết thúc  i là biến đếm Mô tả thuật toán trên gọi là cấu trúc lặp Mọi ngôn ngữ lập trình có cách thị cho máy tính thực cấu trúc lặp Gv: Mô tả thuật toán tính tổng các số tự nhiên từ với câu lệnh Đó là câu lệnh lặp 1→ 100 GV: Cấu trúc mô tả thuật toán trên gọi là cấu trúc lặp Hoạt động3: Ví dụ câu lệnh lặp Gv: minh họa bẳng ngôn ngữ Pascal cú pháp câu 3/ Ví dụ câu lệnh lặp lệnh for … to … * Cú Pháp câu lệnh lặp với số lần biết HS: Quan sát, lắng nghe, ghi nhận trước Pascal:  Lưu ý cho hs: for<biến đếm>:= <giá trị đầu> to <giá - 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 trị cuối> <câu lệnh> thức có cùng kiểu với biến đếm và giá Trong đó: for, to, là các từ khóa trị cuối phải lớn giá trị đầu; - câu lệnh có thể là câu lệnh đơn giản Vd 1: Chuong trình in màn hình thứ tự lần lặp hay câu lệnh ghép var i:integer; begin for i:= to 20 Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (3) Trường THCS Hựu Thạnh Giáo án tin học writeln(‘Day la lan lap thu’,i); readln; GV: Cho hs nhận xét và so sánh khác câu lệnh lặp hai vd trên? HS: Nhận xét Gv: Giải thích cho học vd2 câu lệnh lặp có begin … end HS: Quan sát, lắng nghe end Vd2: chương trình ghi nhận vị trí 10 chữ O rơi từ trên xuống ues crt; var i:integer; 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 Hoạt động 4:Tính tổng và 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ính tổng và tích câu lệnh lặp tự nhiên, với N là số tự nhiên nhập từ bàn Vd 1: chương trình tính tổng N số tự phím (Pascal) nhiên đầu tiên, với N là số tự nhiên Theo công thức tính tổng ta cần khai bao nhiêu nhập từ bàn phím biến? kiểu biến? S = 1+2+3+ … + N HS: trả lời GV: Trong biến thì biến nào có giá trị program Tinh_tong; var N,i:integer; nhập từ bàn phím? S:longint; begin write(‘Nhap so N = ‘); readln(N); S:= 0; for i:= to N S:= S+i; writeln(‘Tong cua’, N, ‘so tư nhien dau tien S = ‘, S); readln; end Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (4) Trường THCS Hựu Thạnh Giáo án tin học GV: Trong trường hợp liệu có kiểu nguyên lớn ta dùng longint *Kiểu longint có phạm vi từ -231 đến 231 – Vd 2: chương trình tính tích N số tự nhiên, với N là số tự nhiên nhập từ bàn phím N! = 1.2.3….N 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 IV Củng cố, hướng dẫn học nhà Củng cố - Hãy cho vài ví dụ thực tế đời sống ngày mà ta phải thực các thao tác lặp lặp nhiều lần? - ThÕ nµo lµ cÊu tróc lÆp? - Cấu trúc lặp chương trình dùng để làm gì? - Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước thể với câu lệnh nào? Hướng dẫn học - Học bài ,xem lại các ví dụ, chuẩn bị bài tập Tuaàn : 21 – Tieát 41,42 Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (5) Trường THCS Hựu Thạnh Giáo án tin học Ngày dạy : BÀI TẬP I Mục tiêu  Củng cố lại kiến thức bài câu lệnh lặp thông qua việc làm bài tập lớp và nhà HS  Thái độ nghiêm túccẩn thận II Chuẩn bị :  GV: SGK  HS: Vở ghi, bài tập, SGK, SBT III Tổ chức hoạt động dạy và học Ổn định Kiểm tra bài cũ - Cấu trúc lặp chương trình dùng để làm gì? - Trong ngôn ngữ lập trình Pascal cấu trúc lặp với số lần lặp cho trước thể với câu lệnh nào? Bài Hoạt động GV –HS Nội dung GV: Nêu cầu hỏi Khi thực câu lệnh lặp, chương trình kiÓm tra mét ®iÒu kiÖn Víi lÖnh lÆp for <biến đếm> := <giá trị đầu> to <gi¸ trÞ cuèi> <c©u lÖnh>; cña Pascal, ®iÒu kiÖn cÇn ph¶i kiÓm tra lµ g×? HS: Trả lời Bài 1: GV: Nêu BT : Bài 1: Sau thực đoạn chương trình Sau thực đoạn chương trình trên giá trị j là 12 trên giá trị J là bao nhiêu ? J:=0; for i:=0 to j:=j+2; HS: Trả lời GV: Chương trình Pascal sau đây thực gì? var i: integer; begin for i:=1 to 1000 do; end HS: trả lời GV: yêu cầu HS làm BT 3( SGK) Bài 5: (SGK) Các câu lệnh Pascal sau có hợp lệ không ? vì ? Giáo viên: Nguyễn Thị Thúy Liễu Bài 2: Đoạn chương trình àny không thực gì Bài 3: Lop8.net (6) Trường THCS Hựu Thạnh Giáo án tin học a) for i:=100 to writeln(‘A’); Trả lời: b) for i:=1.5 to 10.5 writeln(‘A’); Trừ d), tất các câu lệnh không hợp lệ: c) for i=1 to 10 writeln(‘A’); a) Giá trị đầu phải nhỏ giá trị cuối; d) for i:=1 to 10 writeln(‘A’); b) Các giá trị đầu và giá trị cuối phải là số d) var x:real; begin for x:=1 to 10 nguyên; writeln(‘A’); end c) Thiếu dấu hai chấm gán giá trị đầu; d) Thừa dấu chấm phẩy thứ nhất, ta muốn lặp lại câu lệnh writeln('A') mười lần, ngược lại câu lệnh là hợp lệ; e) Biến x đã khai báo là biến có liệu kiểu số thực và vì không thể dùng để xác định giá trị đầu và giá trị GV: Nêu BT Bài 3: Hãy mô tả thuật toán để tính tổng câu lệnh lặp Bài 4: đây ? Thuật toán tính tổng A 1 1     1.3 2.4 3.5 n(n  2) A =    1.3 HS: Thảo luận, trả lời GV: nhận xét, sửa sai 2.4 3.5 n( n  1) Bước Gán A  0, i  Bước A  i (i  2) Bước i  i + Bước Nếu i  n, quay lại bước Bước Ghi kết A và kết thúc thuật toán GV: nêu BT : Viết thuật toán và chương trình Bài 5: tính luỹ thừa bậc n x Bài Thuật toán: HS: Thảo luậu theo đôi bạn viết thuật toán , Bước Nhập các số n và x chương trình trình bày thuật toán , Bước A  1, i  (A là biến lưu luỹ chương trình thừa bậc n x) GV: nhận xét, sửa sai Bước ii + 1, A  A.x Bước Nếu i < n, quay lại bước Bước Thông báo kết A là luỹ thừa bậc n x và kết thúc thuật toán Chương trình Pascal có thể sau: var n,i,x: integer; a: longint; begin write('Nhap x='); readln(x); Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (7) Trường THCS Hựu Thạnh Giáo án tin học write('Nhap n='); readln(n); A:=1; for i:=1 to n A:=A*X; writeln(x,' mu ',n,' bang ',A); end IV Củng cố, hướng dẫn học nhà Củng cố Hướng dẫn học - Học bài - Làm lại cácbài tập - Xem trước nội dung bài thực hành 5, sau thực hành phòng máy Tuaàn : 22 – Tieát 43,44 Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (8) Trường THCS Hựu Thạnh Giáo án tin học Ngày dạy : Bài thực hành 5: Sö dông lÖnh lÆp for …do I Môc tiªu: - Vận dụng kiến thức vòng lặp for… do, câu lệnh ghép để viết chương trình, tìm hiểu c©u lÖnh gotoxy(), where<>, lÖnh for lång for - 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 chương trình; Rèn luyện kỹ đọc hiểu chương trình có sử dụng vòng lặp for … - Thái độ học tập nghiêm túc, tích cực làm các bài thực hành II ChuÈn bÞ cña GV, HS GV: - Gi¸o ¸n, SGK, phßng m¸y, phÇn mÒm pascal HS: - SGK, vë ghi, bót III Tổ chức hoạt động dạy và học Ổn định Kiểm tra bài cũ H·y nªu cÊu tróc c©u lÖnh lÆp ? Cho vÝ dô minh ho¹? Bài mới: Chúng ta đã nghiên cứu lý thuyết vòng lặp for … để biết vòng lặp ch¹y nh­ thÕ nµo th× h«m chóng ta cïng ®i vµo tiÕt thùc hµnh Gi¸o viªn ghi tªn bµi häc lªn b¶ng Hoạt động thầy và trò Néi dung Hoạt động 1: Viết chương trình cho các bài tập đã cho nhà GV: yªu cÇu HS viết chương trình : ”TÝnh tæng Bµi 1: TÝnh tæng cña n sè tù nhiªn ®Çu cña n sè tù nhiªn ®Çu tiªn”vµo m¸y tiªn Program tinh_tong; Uses crt; - HS: gõ chương trình, chạy thử chương trình, Var i, n: integer; tong: longin; Begin vµ b¸o c¸o kÕt qu¶ Clrscr; Tong:=0; - GV: Hç trî häc sinh qu¸ tr×nh thùc Writeln(‘Nhap vao so n’); readln(n); For i:=1 to n hµnh Tong: = Tong+i; Writeln(‘Tong cña’, n,’so tu nhien dautien - Sau kết chạy chương trình đã la’,tong); Readln; đúng, gv yêu cầu học sinh chữa bài mình End đã làm nhà cho đúng theo chương trình đã ch¹y GV: yờu cầu HS: Viết chương trình tìm xem có Giáo viên: Nguyễn Thị Thúy Liễu Viết chương trình tìm xem có bao nhiêu số dương n số nhập vào từ bàn phím Lop8.net (9) Trường THCS Hựu Thạnh Giáo án tin học bao nhiêu số dương n số nhập vào từ bàn phÝm HS: Viết chương trình GV: Quan sát, hướng dẫn , sửa sai cho HS Program tinh_so_cac_so_duong; Uses crt; Var i,A, dem, n: integer; Begin Clrscr; Dem:=0; Writeln(‘Nhap vao so n’); readln(n); For i:=1 to n begin writeln(‘nhap vao so thu’,i); readln(A); if A>0 then dem:=dem+1; end; Writeln(‘So cac so duong la’,dem); Readln; End Hoạt động 2: Bảng cửu chương - GV: §­a néi dung cña bµi to¸n Bài 2: Viết chương trình in màn hình - HS: Nghiªn cøu bµi to¸n, t×m input vµ bảng nhân số từ đến 9, và dừng output - GV: yêu cầu học sinh đọc hiểu chương màn hình để có thể quan sát kết tr×nh - HS: đọc, phân tích câu lệnh tìm hiểu hoạt Program Bang_cuu_chuong; động chương trình Uses crt; - GV: yêu cầu học sinh đứng vị trí trình bày hoạt động chương trình, các Var i, n: integer; nhãm kh¸c cïng tham gia ph©n tÝch Begin - HS: tham gia hoạt động giáo viên - GV: yêu cầu học sinh lập bảng hoạt động Clrscr; chương trình theo mẫu: Writeln(‘Nhap vao so n’); readln(n); Gi¶ sö N=2: Bước i i<=10 Writeln(n,’.’,i,’=’,n*i) Writeln(‘Bang nha’,n); 1 đúng 2.1=2 Writeln; - HS: các nhóm lập bảng và đại diện nhóm For i:=1 to 10 b¸o c¸o kÕt qu¶ - GV: nhËn xÐt Writeln(n,’x’,i:2,’=’,n*i:3); - GV: cho chương trình chạy trên máy, yêu Readln; cÇu häc sinh quan s¸t kÕt qu¶ HS: Thực End Hoạt động 3: Làm đẹp màn hình kết lệnh gotoxy, where - Gi¸o viªn cho ch¹y kÕt qu¶ cña bµi thùc Bµi sgk (T63) hµnh Bang_cuu_chuong Yªu cÇu häc a) Giíi thiÖu lÖnh gotoxy(), wherex Giáo viên: Nguyễn Thị Thúy Liễu Lop8.net (10) Trường THCS Hựu Thạnh Giáo án tin học sinh quan s¸t kÕt qu¶ vµ nhËn xÐt - Gotoxy(a,b) kho¶ng c¸ch gi÷a c¸c hµng, cét Trong đó: a là số cột, b là số hàng - HS: quan s¸t vµ ®­a nhËn xÐt - ý nghÜa cña c©u lÖnh lµ ®­a trá vÒ cét a - ? Có cách nào để khoảng cách các hµng b hµng vµ c¸c cét t¨ng lªn? - Wherex: cho biÕt sè thø tù cña cét, wherey GV: Giíi thiÖu c©u lÖnh gotoxy vµ cho biÕt sè thø tù cña hµng where * Lưu ý: Phải khai báo thư viện crt trước GV: yêu cầu học sinh mở chương trình sö dông hai lÖnh trªn Bang_cuu_chương và sửa lại chương a) Chỉnh sửa chương trình sau: tr×nh theo bµi trªn mµn h×nh cña gi¸o Program Bang_cuu_chuong; viªn Uses crt; HS: gõ chương trình vào máy, sửa lỗi Var i, n: integer; - - chính tả, chạy chương trình, quan sát kết Begin - - qu¶ Clrscr; GV: yªu cÇu häc sinh quan s¸t kÕt qu¶ Writeln(‘Nhap vao so n’); readln(n); và so sánh với kết chương trinh Writeln(‘Bang nha’,n); ch­a dïng lÖnh gotoxy(5, wherey) Writeln; HS: quan s¸t vµ nhËn xÐt For i:=1 to 10 begin gotoxy(5, wherey); Writeln(n,’x’,i:2,’=’,n*i:3); Readln; End Hoạt động 4: sử dụng lệnh For lồng for - GV: giíi thiÖu cÊu tróc lÖnh for lång, Bµi SGK (T64) hướng dẫn học sinh cách sử dụng lệnh a) C©u lÖnh for lång for - HS: ghi chÐp cÊu tróc vµ lÜnh héi - For <biến đếm1:= giá trị đầu> to - GV: đưa nội dung chương trình bài thực <gi¸ trÞ cuèi> hµnh lªn mµn h×nh, yªu cÇu häc sinh - For <biến đếm 2:=giá trị đầu> to đọc chương trình, tìm hiểu hoạt động <gi¸ trÞ cuèi> chương trình < c©u lÖnh>; HS: hoạt động theo nhóm, tìm hiểu hoạt Giáo viên: Nguyễn Thị Thúy Liễu Program Tao_bang; 10 Lop8.net (11) Trường THCS Hựu Thạnh Giáo án tin học động chương trinh, đại diện Uses crt; nhãm b¸o c¸o kÕt qu¶ th¶o luËn Var i,j: byte; - GV: cho chạy chương trình Begin - HS : quan s¸t kÕt qu¶ trªn mµn h×nh Clrscr; For i:=1 to Begin For j:=0 to Writeln(10*i+j:4); Writeln; End; Readln; End IV Củng cố , hướng dẫn học nhà Củng cố TỔNG KẾT Cấu trúc lặp với số lần lặp biết trước thể câu lệnh Pascal for…do Gièng nh­ c¸c c©u lÖnh rÏ nh¸nh if…then, c¸c c©u lÖnh for…do còng cã thÓ lång Khi đó các <biến đếm> các câu lệnh lặp phải khác C©u lÖnh GotoXY(a,b) cã t¸c dông ®­a trá vÒ cét a, hµng b WhereX cho biÕt sè thø tù cña cét vµ WhereY cho biÕt sè thø tù cña hµng ®ang cã trá Có thể kết hợp câu lệnh GotoXY(a,b) với các hàm chuẩn WhereX và WhereY để ®iÒu khiÓn vÞ trÝ cña trá trªn mµn h×nh Hướng dẫn học -NhËn xÐt rót kinh nghiÖm giê thùc hµnh - Y/c học sinh nhà sử dụng lệnh gotoxy để chỉnh sửa lại bài thực hành số cho kết in màn hình đẹp Tuaàn : 23 – Tieát 45,46 Giáo viên: Nguyễn Thị Thúy Liễu 11 Lop8.net (12) Trường THCS Hựu Thạnh Giáo án tin học Ngày dạy : Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC I.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 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 để dẫn máy tính thực lặp lặp lại công việc đến điều kiện nào đó thoả mãn; Kĩ - Nhận biết đâu là hoạt động lặp với số lần chưa biêt trước Thái độ - Nghiêm túc quá trình nghiên cứu và thực hành II Chuẩn bị GV: SGK, máy chiếu, phim các ví dụ chương trình HS: Xem trước bài nhà III Tổ chức hoạt động dạy và học Ổn định 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 SUM  0; i  Bước i  i + Bước Nếu i ≤ 100, thì SUM  SUM + i và quay lại bước Bước Thông báo kết và kết thúc thuật toán Bài Hoạt động GV và HS Nội dung Hđ 1 Các hoạt động lặp với số lần chưa biết GV : y/c hs đọc ví dụ 1sgk/67 trước HS : 2-3 hs đọc ví dụ sgk a/ Ví dụ 1(sgk) GV : Phân tích ví dụ HS : chú ý lắng nghe GV : Hướng dẫn hs xây dựng thuật toán HV : Nghe giáo viên hướng dẫn, sau đó tự b/ Ví dụ : Nếu cộng n số tự nhiên xây dựng thuật toán GV : Chạy tay cho học sinh xem ( Chỉ nê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 tổng Tn nhỏ chạy tay thử từ đến 10 ) lớn 1000? Hs : Chú ý nghe Hs ghi ví dụ Giáo viên: Nguyễn Thị Thúy Liễu 12 Lop8.net (13) Trường THCS Hựu Thạnh Giáo án tin học Giải : Kí hiệu S là tổng cần tìm và ta có thuật toán sau: + Bước S  0, n  + Bước Nếu S ≤ 1000, n  n + 1; ngược lại chuyển tới bước + Bước S  S + n và quay lại bước + Bước In kết : S và n là số tự nhiên nhỏ cho S > 1000 Kết thúc thuật toán * Ta có sơ đồ khối : Gv : Giới thiệu sơ đồ khối Gv : Có thể sử dụng lệnh lặp với số lần lặp chưa biết trước các chương trình lập trình Sau đây ta xét câu lệnh và ví dụ TP HĐ GV : Giới thiệu cú pháp lệnh while … ….; HS : chú ý nghe và ghi chép * Nhận xét : Để viết chương trình dẫn máy tính thực các hoạt động lặp 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 Ví dụ 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 <điều kiện> <câu lệnh>; đó: - điều kiện thường là 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 thực sau: Bước : Kiểm tra điều kiện - Giáo viên: Nguyễn Thị Thúy Liễu 13 Lop8.net (14) Trường THCS Hựu Thạnh Giáo án tin học Gv : Xét ví dụ Chúng ta biết rằng, n càng lớn thì n Bước : Nếu điều kiện SAI, câu lệnh bị bỏ qua và việc thực lệnh lặp kết thúc Nếu điều kiện đúng, thực câu lệnh và quay lại bước Ví dụ càng nhỏ, luôn luôn lớn Với giá trị nào n thì 1 < 0.005 < n n 0.003 ? Hs : Đọc ví dụ Với giá trị nào n ( n>o ) thì GV : 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 ) HS : quan sát GV : Chạy tay cho học sinh xem Hs : chú ý nghe và tự chạy tay lại GV : Yêu cầu học sinh mở máy tính và nhập chương trình ví dụ Hs : thực G : Cho học sinh chạy chương trình trên máy Hs : thực 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 Hđ G V: ta tiếp tục xét các ví dụ mà 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ụ GV : Cho học sinh quan sát chương trình HS : quan sát + G V: Chạy tay cho học sinh xem < 0.005 n < 0.003? Chương trình đây tính n số n nhỏ để nhỏ sai số cho n trước : uses crt; var x: real; n: integer; const sai_so=0.003; begin clrscr; x:=1; n:=1; while x>=sai_so begin n:=n+1; x:=1/n end; writeln('So n nho nhat de 1/n < ',sai_so:5:4, 'la ',n); readln end Ví dụ Chương trình Pascal đây thể thuật toán tính số n ví dụ 2: var S,n: integer; begin S:=0; n:=1; while S<=1000 Giáo viên: Nguyễn Thị Thúy Liễu 14 Lop8.net (15) Trường THCS Hựu Thạnh Giáo án tin học + Hs : chú ý nghe và tự chạy tay lại + G : Yêu cầu học sinh mở máy tính nhập chương trình ví dụ + Hs : thực + GV : Cho học sinh chạy chương trình trên máy + HS: thực + G V: chạy chương trình này, ta nhận giá trị ntn? + HS : Nếu chạy chương trình này ta nhận n = 45 và tổng đầu tiên lớn 1000 là 1034 + GV : giới thiệu ví dụ sgk Viết chương trình tính tổng 1 T      100 + GV : Cho học sinh quan sát chương trình + Hs : quan sát + G V: Chạy tay ( hai chương trình ) cho học sinh xem + Hs : chú ý nghe và tự chạy tay lại + GV : so sánh kết chạy hai chương trình + HS : Kết 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ụ Viết chương trình tính tổng 1 T      100 Giải : Để viết chương trình tính tổng 1 T      ta có thể sử dụng lệnh 100 lặp với số lần lặp biết trước for…do: T:=0; for i:=1 to 100 T:=T+1/i; writeln(T); Nếu sử dụng lệnh lặp while…do, đoạn chương trình đây cho cùng kết quả: T:=0; i:=1; while i<=100 begin T:=T+1/i; i:=i+1 end; writeln(T); + GV : Ví dụ này cho thấy chúng ta có * Nhận xét : Ví dụ này cho thấy chúng ta thể sử dụng câu lệnh while…do thay cho có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do câu lệnh for…do Lặp vô hạn lần – Lỗi lập trình cần tránh + GV : Giới thiệu phần + GV : Khi viết chương trình sử dụng cấu 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 trúc lặp cần chú ý tránh tạo nên vòng lặp kết thúc không kết thúc + Hs : Chú ý nghe + GV : Chẳng hạn, chương trình đây lặp lại vô tận: var a:integer; begin a:=5; Giáo viên: Nguyễn Thị Thúy Liễu 15 Lop8.net (16) Trường THCS Hựu Thạnh Giáo án tin học while a<6 writeln('A'); end + Hs : Quan sát + GV : Trong chương trình trên, giá trị biến a luôn luôn 5, điều kiện a<6 luôn luôn đúng nên lệnh writeln('A') luôn thực Do vậy, thực vòng lặp, điều kiện câu lệnh phải thay đổi để sớm hay muộn giá trị điều kiện chuyển từ đúng sang sai Chỉ chương trình không "rơi" vào "vòng lặp vô tận" + Hs : Chú ý nghe IV Củng cố , hướng dẫn học nhà Củng cố: Ghi nhí Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước While…do là câu lệnh lặp với số lần chưa biết trước Pascal -Nêu vài ví dụ hoạt động lặp với số lần chưa biết trước ? -Hãy phát biểu khác biệt 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 ? Hướng dẫn nhà: - Học bài - Làm bài tập 2,3a,bài SGK/71 - Nghiên cứu trước bài thực hành Giáo viên: Nguyễn Thị Thúy Liễu 16 Lop8.net (17) Trường THCS Hựu Thạnh Giáo án tin học Tuaàn : 24 – Tieát 47,48 Ngày dạy : BÀI TẬP I/ MỤC TIÊU: 1) Kiến thức: - Củng cố kiến thức vòng lặp với số lần lặp chưa biết trước và câu lệnh ghép 2) Kĩ năng: - Viết chương trình Pascal có sử dụng vòng lặp While - Biết sử dụng câu lệnh ghép - Rèn kỹ đọc hiểu chương trình có sử dụng vòng lặp while 3) Thái độ: - Thái độ học tập nghiêm túc, tích cực làm các dạng bài tập ứng dụng II/ CHUẨN BỊ: - GV: Sách giáo khoa, giáo án, chuẩn bị số thuật toán và chương trình - HS: Vë ghi III/ TIẾN TRÌNH LÊN LỚP 1)Ổn định 2)Kiểm tra bài cũ: - Kiểm tra bài cũ quá trình làm bài tập 3)Bài mới: Hoạt động GV - HS Nội dung Hoạt động 1: Chốt lại kiến thức trọng tâm để áp dụng giải bài tập - GV: Em hãy nhắc lại cú pháp lệnh While - HS trả lời - GV chốt ý và nhắc lại lần cho HS nắm vững - HS chú ý theo dõi và tiếp thu while <điều kiện> <câu lệnh>; - GV yêu cầu HS ghi Trong đó: - HS ghi - Điều kiện thường là phép so sánh; - GV: Lưu ý HS cách thực và tránh - Câu lệnh có thể là câu lệnh đơn giản hay câu lệnh lặp vô hạn lần lệnh ghép - HS lắng nghe Câu lệnh lặp này thực hiện: Bước : Kiểm tra điều kiện Bước : Nếu điều kiện SAI, câu lệnh bị bỏ Giáo viên: Nguyễn Thị Thúy Liễu 17 Lop8.net (18) Trường THCS Hựu Thạnh Giáo án tin học qua và việc thực lệnh lặp kết thúc Nếu điều kiện ĐÚNG, thực câu lệnh và quay lại bước Hoạt động 2: Giải bài tập SGK Bài trang 71 SGK: Phát biểu khác biệt 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? - GV yêu cầu HS đọc và nghiên cứu bài tập - HS đọc đề - GV cho HS đứng chỗ trả lời câu hỏi - HS suy nghĩ, thảo luận và trả lời - GV goi HS khác nhận xét - 1HS khác đứng chỗ nhân xét câu trả lời bạn - GV nhận xét, bổ sung và cho HS ghi - HS tiếp thu và ghi Bài trang 71 SGK: Tìm hiểu các thuật toán sau đây và cho biết thực thuật toán, máy tính thực bao nhiêu vòng lặp? Khi kết thúc, giá trị S bao nhiêu? Viết chương trình Pascal thể các thuật toán đó a) Thuật toán 1: Bước S  10, x  0.5 Bước Nếu S  5.2, chuyển tới bước Bước S  S  x và quay lại bước Bước Thông báo S và kết thúc thuật toán b) Thuật toán 2: Bước S  10, n  Bước Nếu S = 10, chuyển tới bước Bước n  n + 3, S  Sn quay lại bước Bài 2: Sự khác biệt 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: a) Như tên gọi nó, câu lệnh lặp với số lần lặp cho trước thị cho máy tính thực lệnh nhóm lệnh với số lần đã 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 xác định trước b) Trong câu lệnh lặp với số lần cho trước, điều kiện là giá trị biến đếm có giá trị nguyên đã đạt giá trị lớn hay chưa Trong câu lệnh lặp với số lần cho trước, câu lệnh thực í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 kiểm tra Nếu điều kiện thoả mãn, câu lệnh thực Do đó có thể có trường hợp câu lệnh hoàn toàn không thực Bài a) Thuật toán 1: 10 vòng lặp thực 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 S:=S-x; writeln(S); b) Thuật toán 2: Không vòng lặp nào thực vì từ đầu điều kiện đã không thỏa mãn nên các bước và bị bỏ qua S = 10 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 begin n:=n+3; Giáo viên: Nguyễn Thị Thúy Liễu 18 Lop8.net (19) Trường THCS Hựu Thạnh Giáo án tin học S:=S-n end; Bước Thông báo S và kết thúc thuật toán writeln(S); - GV yêu cầu HS đọc đề bài tập - HS đọc đề theo yêu cầu GV - GV cho HS thảo luận nhóm để trả lời câu hỏi ( nhóm và 2: thuật toán 1, nhóm và 4: thuật toán 2) - HS thảo luận - GV gọi đại diện nhóm trả lời, các nhóm khác nhận xét, bổ sung - HS quan sát và ghi - GV yêu cầu HS dựa vào thuật toán để viết chương trình Pascal - HS viết chương trình theo yêu cầu bài tập Bài 5: Hãy lỗi các câu lệnh sau đây: a)X:=10; while X:=10 X:=X+5; b)X:=10; while X=10 X=X+5; c)S:=0; n:=0; while S<=10 n:=n+1; S:=S+n; - GV cho HS nghiên cứu bài tập - HS thực yêu cầu GV - GV gọi HS đứng chỗ trả lời Bài 5: a) Thừa dấu hai chấm điều kiện; - HS trả lời b) Thiếu dấu hai chấm câu lệnh gán; - GV nhận xét 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, đó vòng lặp trở thành vô tận - HS theo dõi, tiếp thu và ghi IV Củng cố, hướng dẫn học nhà: Củng cố - GV củng cố lại kiến thức với loại vòng lặp đã học Hướng dẫn học : - Học bài - Xem lại các bài tập đã thực - Tự làm lại các bài tập Giáo viên: Nguyễn Thị Thúy Liễu 19 Lop8.net (20) Trường THCS Hựu Thạnh Giáo án tin học - Về nhà làm thêm các bài tập sau: Bài 1: Lập trình tính tổng dùng lệnh lặp While Trong đó n là số tự nhiên nhập từ bàn phím A  1 1   (n  Z ) n 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 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 nhập từ bàn phím a,b  Z 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 <> Begin r:= a mod b; a: = b; b: = r; End; Write (‘ Vay UCLN(‘, a1, ‘;’,b1,’)=’,b:2); Readln END Giáo viên: Nguyễn Thị Thúy Liễu 20 Lop8.net (21)

Ngày đăng: 29/03/2021, 14:53

Xem thêm:

w