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



