Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước - Nguyễn Đức Chung
CỦNG CỐ KIẾN THỨC:
1. Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần 1 hoặc một nhóm các hoạt động.
2. Câu lệnh lặp với số lần biết trước trong Pascal có cú pháp như sau:
For
Trong đó:
+ for, to, do: Là các từ khóa
+
+ Số vòng lặp là biết trước và bằng:
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học Lớp 8 - Bài 8: Lặp với số lần chưa biết trước - Nguyễn Đức Chung", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
BỘ GIÁO DỤC VÀ ĐÀO TẠO QUỸ LAWRENCE S.TING Cuộc thi quốc gia Thiết kế bài giảng e-Learning lần thứ 4 ----------------------------- Bài giảng: BÀI 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Môn Tin học, lớp 8 Giáo viên: Nguyễn Đức Chung nguyenducchung.c2lytutrong@vinhphuc.edu.vn Điện thoại di động: 0988418121 Trường THCS Lý Tự Trọng Thị trấn Hương Canh, huyện Bình Xuyên, tỉnh Vĩnh Phúc CC-BY-SA Tháng 10/2016 Câu 1. Khi sử dụng lệnh lặp For...To...Do. Số lần lặp sẽ được tính như thế nào? Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại KIỂM TRA BÀI CŨ A) Số lần lặp = - B) Số lần lặp = - + 1 C) Số lần lặp = - - 1 D) Số lần lặp = - + 1 Câu 2. Cú pháp của lệnh lặp For...To...Do là: Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại A) For := Do To ; B) For := To Do ; C) For := To Do ; D) For = To Do ; Câu 3. Hãy chỉ ra các lỗi sai trong các câu lệnh dưới đây? CỘT 1 CỘT 2 A. Biến đếm không phải kiểu số nguyên B. Thiếu từ khóa do trong lệnh lặp C. Thừa dấu chấm phảy đầu tiên D. Giá trị đầu phải nhỏ hơn giá trị cuối E. Thiếu dấu hai chấm ở lệnh gán cho biến đếm C For i:=1 to 10; do x:=x+1; D For i:=10 to 1 do x:=x+1; A For i:=1.5 to 10.5 do x:=x+1 B For i:=1 to 10 For j:=1 to 10 do x:=x+1; E For i=1 to 10 do x:=x+1 Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại KẾT QUẢ Xem lại Tiếp tục Điểm của em: {score} Điểm tối đa: {max-score} Số câu trả lời đúng: {correct-questions} Tổng số câu hỏi: {total-questions} Tỉ lệ đúng: {percent} Số lần trả lời: {total-attempts} Question Feedback/Review Information Will Appear Here CỦNG CỐ KIẾN THỨC: 1. Cấu trúc lặp trong thuật toán được dùng để mô tả việc thực hiện lặp lại nhiều lần 1 hoặc một nhóm các hoạt động. 2 . Câu lệnh lặp với số lần biết trước trong Pascal có cú pháp như sau: For := to do ; Trong đó: + for, to, do: Là các từ khóa + là biến kiểu nguyên; , là những giá trị nguyên. + Số vòng lặp là biết trước và bằng: - + 1 3. Hoạt động: Khi thực hiện, ban đầu biến đếm sẽ nhận giá trị đầu, sau mỗi vòng lặp, câu lệnh được thực hiện và biến đếm được tự động tăng thêm 1 đơn vị cho đến khi bằng giá trị cuối. Tiếp tục Quay lại MỤC TIÊU BÀI HỌC: a. Kiến thức: 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; Hiểu hoạt động của câu lệnh lặp while ...do trong Pascal. 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; b. Kĩ năng: Sử dụng được lệnh lặp While...do khi viết chương trình Nhận biết được đâu là hoạt động lặp với số lần chưa biết trước c. Thái độ: Nghiêm túc trong quá trình nghiên cứu và thực hành Rèn luyện khả năng tư duy, sáng tạo,... của học sinh CẤU TRÚC BÀI HỌC: 1. Các hoạt độ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 3. Lặp vô hạn – lỗi lập trình cần tránh 1. Các hoạt động lặp với số lần chưa biết trước - Trong bài trước chúng ta đã làm quen với các hoạt động lặp với số lần đã được xác định trước. Trong thực tế, có nhiều hoạt động được lặp đi lặp lại với số lần chưa biết trước. Chẳng hạn, để tính tổng các số nguyên từ 1 đến 100 ta có thể viết câu lệnh lặp để máy tính thực hiện phép cộng 100 lần. S = 1 + 2 + 3 + . . .+100 For i:=1 to 100 do s:=s+i; Ví dụ 1 : Một ngày, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy thì thôi . S ố lần lặp là chưa biết Hoạt động lặp: G ọi điện K ết thúc vòng lặp: Có người nhấc máy thì thôi. 1. Các hoạt động lặp với số lần chưa biết trước Ví dụ 2 : Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3, ). Ta sẽ được kết quả: T 2 = 1 + 2 T 1 = 1 T 3 = 1 + 2 + 3 tăng dần Điều kiện như thế nào thì kết thúc hoạt động lặp? 1. Các hoạt động lặp với số lần chưa biết trước Điều kiện: Khi tổng T n nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp Phân tích bài toán: T 0 := 0; n:=0; n Tổng T n Điều kiện T n ≤ 1000 1 T 1 = 1 Đúng 2 T 2 = 1 + 2 Đúng 3 T 3 = 1 + 2 + 3 Đúng n T n = 1 + 2 + 3 + +n (Sao cho T n nhỏ nhất lớn hơn 1000) Sai, kết thúc việc tính tổng Ví dụ 2 : 1. Các hoạt động lặp với số lần chưa biết trước Ta có thuật toán như sau: Kí hiệu S là tổng cần tìm Bước 1 S 0, n 0. Bước 2: Nếu S ≤ 100 0 , thì: n n+1; Ngược lại, chuyển tới bước 4 S S + n và quay lại bước 2. 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. * Có thể diễn tả bài toán trên bằng sơ đồ như sau: S 1000? Sai n n+1; S S+n; Đúng Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào ? Việc lặp lại một nhóm hoạt động với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn Bước 4 : Ví dụ 2 : 1. Các hoạt động lặp với số lần chưa biết trước Bước 3: S 1000? Sai n n+1; S S+n; Đúng Tổng quát Điều kiện Sai Câu lệnh Đúng Để chỉ dẫn máy tính thực hiện các hoạt động lặp 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 1. Các hoạt độ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 Cú pháp : KẾT THÚC 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 , t hực hiện câu lệnh và quay lại bước 1. Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện. While Do ; Để tính tổng của n số tự nhiên đầu tiên, ta có thể sử dụng lệnh lặp For...do (biết trước số lần lặp). Tuy nhiên, em cũng có thể sử dụng câu lệnh While...do để giải quyết bài toán trên 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 3 : Video sau đây sẽ mô phỏng bài toán trên với n=5, tức là tính: S = 1 + 2 + 3 + 4 + 5 Chúng ta biết rằng, nếu n (n>0) càng lớn thì 1/n càng nhỏ, nhưng luôn lớn hơn 0 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 4 : Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n < 0.003? Viết chương trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước Ta thấy rằng, 1/n đạt giá trị lớn nhất khi n = 1 Phân tích bài toán Vì vậy, với một sai_so nhất định, để tìm số n nhỏ nhất để 1/n < sai_so, ta có thuật toán sau: Bước 1: x:=1; n:=1; 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 4 : Bước 2: Nếu x < sai_so thì chuyển sang bước 4 Bước 3: n:=n+1; x:= 1/n; và quay lại bước 2 Bước 4: In kết quả: n là số nhỏ nhất để 1/n > sai_so; Kết thúc thuật toán. 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Bước 1 : S 0, n 0. Bước 2: Nếu S≤100 0, thì: n n+1; S S + n và quay lại bước 2. Ngược lại, chuyển tới bước 3. In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000 . Kết thúc thuật toán. Dùng câu lệnh lặp While do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk) Bước 3: Ví dụ 5 : 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 5 : var S,n: integer; Begin S:=0; n:=0; while S<=1000 do begin n:=n+1; S:=S+n ; end; write(‘So tu nhien n de tong >1000 la ’, n); write(‘Tong dau tien >1000 la’, S); Readln; End. 2 . Ví dụ về lệnh lặp với số lần chưa biết trước Ví dụ 6 : Viết chương trình tính tổng T = 1 + 1/2 + 1/3 + + 1/100 Ta có thể sử dụng lệnh lặp với số lần biết trước (For..do) hoặc sử dụng lệnh lặp với số lần chưa biết trước (While..do) để giải quyết bài toán trên var T : Real; i:Integer; Begin T:=0 End. For i:=1 to 100 do T:=T+1/i; Writeln(T) var T : Real; i:Integer; Begin T:=0; i:=1 End. While i<=100 do Writeln(T) Begin T:=T+1/i; i:=i+1; End; 3. Lặp vô hạ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. var a:integer Begin a:=5; while a <6 do Writeln(‘A’); Readln; End. - Ở chương trình trên, giá trị của biến a luôn bằng 5, do đó điều kiện để vòng lặp kết thúc là a<6 sẽ không bao giờ xảy ra. Vì vậy lệnh in ra kí tự ‘A’ luôn được thực hiện. 3. Lặp vô hạn – lỗi lập trình cần tránh 3. Lặp vô hạn – lỗi lập trình cần tránh Qua ví dụ trên, chúng ta cần lưu ý: Khi thực hiện vòng lặp, giá trị các biến trong điều kiện của câu lệnh phải được thay đổi để sớm hay muộn giá trị của điều kiện sẽ được chuyển từ đúng thành 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”, tức là sẽ không bao giờ dừng lại. CỦNG CỐ: 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ấu trúc lặp với số lần lặp 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 trong Pascal. KẾT THÚC While Do ; Câu 1. Đoạn câu lệnh sau cho kết quả là gì?A:=1;While A<=15 Do Begin Writeln(A); A:=A+2; End; Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại Câu hỏi củng cố : A) In ra số 15 B) In ra các số từ 1 đến 15 C) In ra các số chẵn từ 1 đến 15 D) In ra các số lẻ từ 1 đến 15 Câu 2. Hãy chỉ ra lỗi sai của các câu lệnh sau bằng cách nối giữa 2 cột? CỘT 1 CỘT 2 A. Thừa dấu 2 chấm đầu tiên B. Vòng lặp vô hạn do điều kiện luôn đúng C. Vòng lặp được thực hiện nhưng chỉ in giá trị cuối của i D. Thừa dấu chấm phảy trước từ khóa Do E. Vòng lặp vô hạn do không có câu lệnh thay đổi biến i A While i:=1 do t:=10; D While a<=b; do write(a); B While 1=1 do write('Lam tot'; E i:=1; While i<10 do s:=s+i; i:=i+1; C i:=1; x:=5; While i<x do i:=i+1; write('i =',i); Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại Câu 3: Với đoạn lệnh sau, chương trình thực hiện bao nhiêu vòng lặp?S:=0; n:=0; While S <= 10 do n:=n+1; S:=S+n; Đúng - Nháy chuột bất kì vị trí nào để tiếp tục Không đúng - Nháy chuột bất kì vị trí nào để tiếp tục Bạn đã trả lời đúng Câu trả lời của bạn là: Câu trả lời đúng là: Bạn chưa hoàn thành câu hỏi Bạn phải trả lời câu hỏi này trước khi có thể tiếp tục Chấp nhận Làm lại A) Thực hiện 0 vòng lặp B) Thực hiện 5 vòng lặp C) Thực hiện 10 vòng lặp D) Lặp vô hạn lần KẾT QUẢ Xem lại Tiếp tục Điểm của em: {score} Điểm tối đa: {max-score} Số câu trả lời đúng: {correct-questions} Tổng số câu hỏi: {total-questions} Tỉ lệ đúng: {percent} Số lần trả lời: {total-attempts} Question Feedback/Review Information Will Appear Here Phần mềm Pascal Study HƯỚNG DẪN VỀ NHÀ - Nắm được cú pháp và ý nghĩa của câu lệnh While..do - Chú ý tránh các lỗi “lặp vô hạn” khi viết chương trình - Làm bài tập: 3, 4, 5 (Trang 70, SGK) và 7.8, 7.9 (Trang 61, SBT) - Đọc trước bài thực hành 6: “ Sử dụng lệnh lặp While do ” CHÚC CÁC EM HỌC TỐT GOODBYE SEE AGAIN Tư liệu tham khảo 1. SGK Tin học dành cho THCS quyển 3 – NXBGD Việt Nam 2 . Bài tập tin học dành cho THCS quyển 3 – NXBGD Việt Nam 3 . Câu hỏi và bài tập trắc nghiệm Tin học 8 – NXB Hà Nội 4. Học tốt Tin học dành cho THCS quyển 3 – NXB Quốc Gia Hà Nội 5 . SGV Tin học dành cho THCS quyển 3 – NXBGD Việt Nam 7 . Phần mềm Turbo Pascal, Pascal Study, Benten Movie GIF, Adobe Presenter; Camtasia Studio; Total Video Converter, Crocodile ICT 605, Macromedia Flash 8 8 . Một số Website: 6 . Bài tập ngôn ngữ lập trình Pascal – NXBGD ĐH Quốc Gia Hà Nội
Tài liệu đính kèm:
- bai_giang_tin_hoc_lop_8_bai_8_lap_voi_so_lan_chua_biet_truoc.pptx
- Thuyet minh.docx