Bài giảng môn Tin học Khối 8 - Bài 8: Lặp với số lần chưa biết trước
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng môn Tin học Khối 8 - Bài 8: Lặp với số lần chưa biết trước", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_mon_tin_hoc_khoi_8_bai_8_lap_voi_so_lan_chua_biet.pptx
Nội dung text: Bài giảng môn Tin học Khối 8 - Bài 8: Lặp với số lần chưa biết trước
- - Hãy nêu cú pháp câu lệnh lặp For to do For := to do ; - Bài toán: Tính tổng 10 số tự nhiên đầu S = 1 + 2 + 3 + + 10 Điền vào chỗ trống ( ) theo các yêu cầu sau: a) Việc thực hiện phép cộng được lặp lại bao nhiêu lần? 10 lần b) Điều kiện dừng: Đủ 10 phép cộng . c) Đây là bài toán lặp với số lần: Var i, s : integer; ❑ Biết trước Begin ❑ Không biết trước s:=0; For i:= 11 to 10010 do s:=s+i; writeln(‘Tong S=‘, s); End. 8 April 2022 2
- Quan sát một số hoạt động sau: - Các bạn học sinh lượm rác ở công viên. - Nam học từ vựng tiếng Anh bằng cách viết lại nhiều lần cho đến khi thuộc. - Con quạ gấp đá bỏ vào bình cho đến khi nước tràn ra. → Đây là các hoạt động lặp với số lần: ❑ Biết trước Các em hãy nêu thêm những ❑ Chưa biết trước ví dụ về hoạt động lặp với số lần chưa biết trước? 8 April 2022 3
- NỘI DUNG Đối với các hoạt động lặp 1.với Lệnhsốlặplầnvới sốbiếtlần chưatrước,biết trướcta đã có câu lệnh For do để viết 2.chương Lặp vô hạntrìnhlần .– Lỗi lập trình cần tránh Vậy đối với các hoạt động lặp với số lần chưa biết trước, ta phải sử dụng câu lệnh nào để viết chương trình? 8 April 2022 4
- 1. Lệnh lặp với số lần chưa biết trước Ví dụ: Nếu cộng lần lượt n số tự nhiên (n = 1, 2, 3, ) thì ta được các kết quả: S1 = 1 (n = 1) S2 = 1 + 2 (n = 2) S3 = 1 + 2 + 3 (n = 3) S? = 1 + 2 + 3 + 4 + 5 + (n = ?) để được tổng Sn nhỏ nhất lớn hơn 1000? Cần cộng bao nhiêu số tự nhiên để ta nhận được tổng Sn nhỏ nhất lớn hơn 1000? Chưa thể biết trước8 April được 2022 5
- 1. Lệnh lặp với số lần chưa biết trước Ví dụ: Nếu cộng lần lượt n số tự nhiên (n = 1, 2, 3, ) thì ta được các kết quả: S1 = 1 (n = 1) S2 = 1 + 2 (n = 2) S3 = 1 + 2 + 3 (n = 3) S? = 1 + 2 + 3 + 4 + 5 + (n = ?) để được tổng Sn nhỏ nhất lớn hơn 1000? Điều kiện như thế nào thì kết thúc hoạt động lặp? Điều kiện: Khi tổng Sn > 1000 thì kết thúc hoạt động lặp8 April 2022 6
- 1. Lệnh lặp với số lần chưa biết trước Ví dụ: Tính tổng n số tự nhiên đầu tiên (n = 1, 2, 3, ) cho đến khi nhận được tổng S nhỏ nhất lớn hơn 1000? * Kiểm tra: Khởi tạo S = 0 ; n = 0 ; n Tổng Sn Điều kiện Sn ≤ 1000 1 S1 = 1 (S = S + n) Đúng 2 S2 = 1 + 2 Đúng 3 S3 = 1 + 2 + 3 Đúng Sn = 1 + 2 + 3 + +? Sai (Sn > 1000) ? (Sao cho Sn nhỏ nhất lớn hơn 1000) Kết thúc việc tính tổng 8 April 2022 Kết quả là: n = 45 và S = 1035 7
- 1. Lệnh lặp với số lần chưa biết trước Ví dụ: Tính tổng n số tự nhiên đầu tiên (n = 1, 2, 3, ) cho đến khi nhận được tổng S nhỏ nhất lớn hơn 1000? Thuật toán: Kí hiệu S là tổng cần tìm, ta có: Bước 1: S 0; n 0; Bước 2: Nếu S 1000) thì chuyển tới bước 4. Bước 3: n n+1; 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. 8 April 2022 8
- Sai Phụ thuộc vào điều kiện: SS <=<= 10001000 S <= 1000 Đúng Chỉ dừng lại khi: n ← n +1; Điều kiện SAI S ← S + n; Kết thúc lặp Việc thực hiện lặp lại các phép cộng trên với số lần chưa biết trước phụ thuộc vào một điều kiện, vậy điều kiện đó là8 Aprilgì 2022? Phép cộng chỉ dừng lại khi nào? 9
- Sai Phụ thuộc vào: ĐiềuSS <=<= 1000kiện1000? Điều kiện Đúng Chỉ dừng lại khi: Sn ←← Sn ++1; n; Câu lệnh Điều kiện SAI Sn ←← Sn ++1 n;; Kết thúc lặp Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào gì và chỉ dừng lại khi nào? 8 April 2022 10
- Sai Phụ thuộc vào: ĐiềuSS <=<= 1000kiện1000? Điều kiện (phép so sánh) Đúng Chỉ dừng lại khi: S ← S + n; Câu lệnh Điều kiện SAI n ← n +1;+1; Kết thúc lặp - Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào một ĐIỀU KIỆN cụ thể và chỉ dừng lại khi điều kiện đó SAI. 8 April 2022 11
- 1. 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 xác định trước có dạng: While do ; Trong đó: ▪ While, do: là các từ khóa; ▪ Đ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 hay câu lệnh ghép. 8 April 2022 12
- Dựa vào sơ đồ khối, hãy Sai phát biểu hoạt động của câu Điều kiện? lệnh lặp với số lần chưa biết trước? Đúng Câu lệnh Câu lệnh này thực hiện như sau: Kết thúc lặp Bước 1: Kiểm tra điều kiện Bước 2: Nếu điều kiện ĐÚNG, thực hiện câu lệnh và quay lại bước 1. 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. 8 April 2022 13
- 1. 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 xác định trước có dạng: While do ; Trong đó: ▪ While, do: là các từ khóa; ▪ Đ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 hay câu lệnh ghép. Hoạt động của câu lệnh lặp While do: (SGK) 8 April 2022 14
- 1. Lệnh lặp với số lần chưa biết trước Ví dụ 1: While a = b do write(‘b khong khac a’);a’); Điều kiện Câu lệnh đơn Ví dụ 2: Điều kiện S:=0 ; i:= 1; While i <= 100 do begin s:= s + i ; Câu lệnh ghép i:= i + 1 ; end; 8 April 2022 15
- Trong các câu lệnh Pascal sau đây, câu lệnh nào sai và sai ở đâu? a) x := 10; Dư dấu : (ở điều kiện) while x :=:= 10 do x:= x + 5; b) x:= 10; Thiếu dấu : (ở câu lệnh) while x = 10 do x = x + 5; c) While a <= b do ; write(‘b khong nho hon a’) d) S:= 0; n:=0; Dư dấu ; sau do Thiếu dấu ; cuối câu while S <= 10 do n:= n + 1; S:= S + n ; 8 April 2022 Thiếu begin Thiếu end 16
- Câu 1: Hãy phát biểu sự khác biệt giữa câu lệnh lặp với số lần lặp biết trước và câu lệnh lặp với số lần lặp chưa biết trước. 1) Chạy quanh sân trường đủ 2 vòng thì nghỉ. a) Chạy bao nhiêu vòng: .2 vòng b) Điều kiện dừng: đã chạy đủ 2 vòng → Đây là bài toán lặp với số lần biết trước 2) Chạy quanh sân trường nhiều vòng cho đến khi mệt thì nghỉ. a) Chạy bao nhiêu vòng: .Chưa biết trước b) Điều kiện dừng: mệt → Đây là bài toán lặp với số lần chưa biết trước 8 April 2022 17
- Câu 2: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp với số 3029282627252422212019181716151413121110237698543210 lần chưa biết trước? A Tính tổng các số tự nhiên từ 1 đến 20. B Nhập các số nguyên từ bàn phím cho đến khi đủ 50 số. C Mỗi ngày học bài 2 lần. D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng. 8 April 2022 18
- Câu 3: Đoạn lệnh sau cho kết quả là gì? s:=1; While s < 6 do 3029282627252422212019181716151413121110237698543210 Begin write(s:2); s:=s+1; end; A In ra các số từ 1 đến 5 B In ra các số từ 1 đến 6 C In ra các số 1 D Không phương án nào đúng. 8 April 2022 19
- 1. Câu lệnh lặp với số lần chưa biết trước có dạng: While do ; Trong đó: ▪ While, do: là các từ khóa; ▪ Đ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 hay câu lệnh ghép. 2. Hoạt động của câu lệnh lặp While do: Bước 1: Kiểm tra điều kiện Bước 2: Nếu điều kiện ĐÚNG, thực hiện câu lệnh và quay lại bước 1. 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. 8 April 2022 20
- - Học bài theo vở ghi và xem lại các bài tập đã làm. - Xem trước các ví dụ 2, 4 và mục 2 của bài. - Đọc trước phần Tìm hiểu mở rộng. - Làm các bài tập 3, 4 SGK trang 66 – 67. 8 April 2022 21
- 8 April 2022 22
- Câu 3: Đoạn lệnh sau cho kết quả là gì? s:=1; While s < 6 do Begin write(s:2); s:=s+1; end; S = 1 < 6 (đúng) → in số 1 ra màn hình; S + 1 = 1 + 1 = 2; S = 2 < 6 (đúng) → in số 2 ra màn hình; S = 2 + 1 = 3; S = 3 < 6 (đúng) → in số 3 ra màn hình; S = 3 + 1 = 4; S = 4 < 6 (đúng) → in số 4 ra màn hình; S = 4 + 1 = 5; S = 5 < 6 (đúng) → in số 5 ra màn hình; S = 5 + 1 = 6; S = 6 < 6 (sai) → kết thúc Vậy kết quả là: In ra màn hình các số từ 1 đến 5 8 April 2022 23
- Ví dụ: Tính tổng n số tự nhiên đầu tiên (n = 1, 2, 3, ) cho đến khi nhận được tổng S nhỏ nhất lớn hơn 1000? Thuật toán: Chương trình Pascal Kí hiệu S là tổng cần tìm, ta có Var S, n : integer; thuật toán sau: Begin Bước 1: S 0; n 0; S:=0; n:=0; Bước 2: Nếu S 1000) thì n:= n + 1; chuyển tới bước 4. S:= S + n; Bước 3: n n+1; S S + n ; end; và quay lại bước 2. writeln(‘Voi n = ‘,n:2,’ ta co tong Bước 4: In kết quả: S và n là dau tien > 1000 la: ‘,S); số tự nhiên nhỏ nhất sao cho S readln > 1000. Kết thúc thuật toán. End. 8 April 2022 24