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

pdf28 trang | Chia sẻ: Anh Thúy | Ngày: 17/11/2023 | Lượt xem: 192 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu 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ú, để xem tài liệu hoàn chỉnh bạn hãy click vào nút TẢi VỀ
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: SS+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 
12345 
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:

  • pdfbai_giang_tin_hoc_lop_6_bai_8_lap_lai_voi_so_lan_chua_biet_t.pdf