Bài giảng Tin học Lớp 6 - Bài 8: Lặp lại với số lần chưa biết trước - Trường THCS Phong Phú
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
4. Lặp vô hạn lần – Lỗi lập trình cần tránh
3. Lệnh lặp với số lần chưa biết trước
Yêu cầu 1: Thu hoạch 100 củ cải a) Việc nhổ củ cải thực hiện bao nhiêu lần?........................... b) Điều kiện dừng c) Đây là bài toán lặp với số lần biết trước hay không biết trước? Gọi i là biến đếm số củ cải For i:=. To . Do Writeln(‘Tien 1 buoc’); Writeln(‘Nho cu cai thu’, i); . Yêu cầu 2: Thu hoạch củ cải cho đến khi hết một luống a) Việc nhổ củ cải thực hiện bao nhiêu lần?........................... b) Điều kiện dừng c) Đây là bài toán lặp với số lần biết trước hay không biết trước? Gọi i là biến đếm số củ cải For i:=. To . Do Không thể xác định được giá trị cuối 100 lần Nhổ được 100 củ cải Biết trước 1 100 Begin End; 1 ??? Không biết được số lần Đến khi hết 1 luống KHÔNG Biết trước VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100 S = 1 + 2 + 3 + . . .+100 Lặp 100 lần VD2: Viết chương trình tính tổng các số tự nhiên đầu tiên. S = 1 + 2 + 3 + . Cho đến khi S>1000 Chưa biết lặp mấy lần Lặp với số lần biết trước, sử dụng câu lệnh lặp ForDo để viết chương trình Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình? Làm thế nào để lập trình với vòng lặp có số lần lặp chưa biết trước? TRƯỜNG THCS PHONG PHÚ TIN HỌC 8 Bài 08: LẶP LẠI VỚI SỐ LẦN CHƯA BIẾT TRƯỚC Bài 8. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC 7 NỘI DUNG 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 4. Lặp vô hạn lần – Lỗi lập trình cần tránh 3. Lệnh lặp với số lần chưa biết trước Nam làm bài tập cho đến khi làm xong. Cô ấy phải đi bộ như vậy cho đến khi về tới nhà. 1. Các hoạt động lặp với số lần chưa biết trước Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong. Hoạt động nào được lặp lại? Hoạt động sẽ kết thúc khi nào 9 - Các bạn học sinh nhặt rác ở công viên cho đến khi hết rác. - 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ạ nhặt đá bỏ vào bình cho đến khi nước tràn ra. Các em hãy cho thêm những ví dụ về hoạt độ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 1. Các hoạt động lặp với số lần chưa biết trước - Sử dụng câu lệnh lặp với số lần chưa biết trước để thực hiện các hoạt động lặp chưa xác định được số lần lặp 1. Các hoạt động lặp với số lần chưa biết trước - Phân biệt việc lặp lại với số lần biết trước và lặp lại với số lần chưa biết trước Ví Dụ 3: - An chạy quanh sân trường 2 vòng nghỉ + Chạy bao nhiêu vòng? + Điều kiện dừng? Ví Dụ 4: - An chạy quanh sân trường cho đến khi mệt + Chạy bao nhiêu vòng? + Điều kiện dừng? 2 Đủ 2 vòng Chưa biết Mệt T1 = 1 T2 = 1 + 2 T3 = 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 ? Đ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 Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp tăng dần Ví dụ 2: Viết chương trình tính tổng các số tự nhiên đầu tiên. S =1+2+3+ . Cho đến khi S>1000 2. Ví dụ về lệnh lặp với số lần chưa biết trước Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3,), ta được các kết quả 13 Thuật toán: Kí hiệu S là tổng cần tìm, ta có thuật toán sau: B1: S 0; i 0; B2: Nếu S <=1000, chuyển tới Bước 3; Ngược lại chuyển tới Bước 4 B3: SS+i ; i i+1 và quay lại bước 2; B4: In ra kết quả S và i là số tự nhiên nhỏ nhất sao cho S>1000. Kết thúc thuật toán; Em hãy viết thuật toán cho ví dụ trên? 2. Ví dụ về lệnh lặp với số lần chưa biết trước Kết thúc S<=1000 S, i S 0 i 0 i i + 1 S S + i Bắt đầu Mô tả thuật toán Ghép các khối, vẽ mũi tên đường dẫn tạo thành hình sơ đồ khối mô tả chính xác thuật toán của bài toán Kết thúc S<=1000 Đ S, i S 0 i 0 i i + 1 S S + i S Bắt đầu i S 1 1 3 2 6 3 10 4 15 5 ... Mô tả thuật toán .. 0 0 S>1000 Viết chương trình tính tổng các số tự nhiên đầu tiên. S =1+2+3+ . Cho đến khi S>1000 S>10 16 S<=1000 S ← S + i; i ← i +1; Đúng Sai • 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 điều kiện gì? • Phép cộng chỉ dừng khi nào? điều kiện dừng điều kiện dừng SAI WHILE DO ; Điều kiện Đúng Câu lệnh - Điều kiện: thường là một phép so sánh Sai Cú pháp: Ví dụ: While S<100 do S:= S+1; 3. Lệnh lặp với số lần chưa biết trước Trong đó: - Câu lệnh: là câu lệnh đơn hay câu lệnh ghép While a<=b do a:=a+1; While a>b do Begin a:=a-1; b:=b+2; End; 3. Lệnh lặp với số lần chưa biết trước câu lệnh đơn câu lệnh ghép Chú ý : Trong trường hợp câu lệnh ghép: While do Begin câu lệnh 1; câu lệnh 2; End; Program Bai_toan; Uses Crt; Var i,S: Integer; BEGIN Clrscr; S:=0; i:=0; WHILE S < = 1000 DO BEGIN i:=i+1; S:=S+i; END; Writeln(‘So N nho nhat de tong >1000 la’, i); Writeln(‘Gia tri cua tong S =', S); Readln; END. Kết thúc S<=1000 Đ S, i S 0 i 0 i i + 1 S S + i S Bắt đầu Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000 Viết chương trình tính tổng S của N số tự nhiên đầu tiên S = 1 + 2 + 3 + ... + N S=0 S=S+1=1 S=S+2=3 S=S+3=6 S=S+4=10 S=S+5=15 12345 Biến đếm i=i+1 For i:=1 to N do S:=S+i Bài tập 4: Viết chương trình tính tổng S= 1+ 𝟏 𝟐 + 𝟏 𝟑 + ⋯ + 𝟏 𝒏 trong đó n là số tự nhiên nhập từ bàn phím S=0 S=S+ 𝟏 𝟏 =1 S=S+ 𝟏 𝟐 =3/2 S=S+ 𝟏 𝟑 =11/6 S=S+ 𝟏 𝟒 =25/12 S=S+ 𝟏 𝟓 =137/60 For i:=1 to N do S:=S+i S:=S+1/i 100 1 4 1 3 1 2 1 1 ...S S:=0; For i:=1 to 100 do S:=S + 1/i; Writeln(‘ S = ’, S:7:2); DÙNG LỆNH FOR ...DO DÙNG LỆNH WHILE...DO S:=0; i:=1; While i<=100 do begin S:=S + 1/i; i:=i+1; end; Writeln(‘ S = ’, S:7:2); Có thể sử dụng lệnh While ... do thay cho câu lệnh For...Do Ví dụ 5 : Tính tổng Lưu ý: Để chương trình không gặp lỗi lặp vô hạn, khối lệnh sau Do thường phải có ít nhất 1 câu lệnh gây ảnh hưởng đến kết quả của điều kiện Ví dụ : Var a:integer; Begin a:=5; While a<6 do Write(' A '); End. 4. Lặp vô hạn lần – Lỗi lập trình cần tránh Lưu ý: - Mỗi một câu hỏi sẽ có 30 giây để suy nghĩ. - Sau 30 giây giáo viên sẽ gọi 1 học sinh bất kì để trả lời. Nếu trả lời đúng sẽ được 1 điểm cộng. - Học sinh khác có thể bổ sung ý kiến nếu học sinh trước đó trả lời sai. Câu 1 Câu 2 Câu 3 Câu 4 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ố. D Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng. C Mỗi ngày học bài 2 lần. 30 298765432119 876543210 Câu 1: Trong các hoạt động dưới đây, hoạt động nào là hoạt động với số lần chưa biết trước? a) X:= 10; While X:= 10 do X:= X + 5; b) X:= 10; While X = 10 do X = X + 5; c) S:= 0; n:=0; While S <= 10 do n:= n + 1; S:= S + n ; Thừa dấu : Thiếu dấu : Thiếu Begin Thiếu End; Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây? 30 298765432119 876543210 In ra các số từ 1 đến 9 In ra các số từ 1 đến 10 In ra các số 1 Không phương án nào đúng A B C D Câu 3: Câu lệnh sau đây cho kết quả là gì? S:=1; While s < 10 do Begin writeln(s); s:=s+1; end; 30 298765432119 876543210 - 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. - Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng: While do ; LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
File đính kèm:
- bai_giang_tin_hoc_lop_6_bai_8_lap_lai_voi_so_lan_chua_biet_t.pdf