Slide 1 Bài 8 LẶP 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 2 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 3 Lặp vô hạn.
Trang 1Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 2Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
2
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
3 Lặp vô hạn lần – Lỗi lập trình cần tránh
Trang 3Bài 8: 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?
Trang 41 Các hoạt động lặp với số lần chưa
biết
- Các bạn học sinh nhặt rác ở
công viên.
viết lại nhiều lần cho đến khi thuộc.
đế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?
Trang 5T 1 = 1
T 2 = 1 + 2
T 3 = 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
1 Các hoạt động lặp với số lần chưa biết
Ví dụ 2: 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ả
Trang 61 Các hoạt động lặp với số lần chưa
biết
THUẬT TOÁN:
Kí hiệu S là tổng cần tìm, ta có thuật toán sau:
S S+n ;
ngược lại , chuyển tới bước 4;
2;
tự nhiên nhỏ nhất sao cho S >
Em hãy viết thuật tốn
cho ví dụ trên?
Trang 71 Các hoạt động lặp với số lần chưa biết trước:
2 T2 = 1 + 2 Đúng
Đúng
?
Tn = 1 + 2 + 3 + … +?
(Sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
3 T3 = 1 + 2 + 3
Phân tích bài toán:
Trang 8S<=1000
S ← S + n;
n ← n +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?
Trang 9While a<=b do
a:=a+1; While a>b do
Begin a:=a-1;
b:=b+2;
End;
Trong đó : While, do: là các từ khóa.
Điều kiện: là a>b (chứa phép so sánh).
Câu lệnh: câu lệnh đơn hoặc câu lệnh ghép
Bài 8: 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
VD1 : Trong khi a bé hơn
hoặc bằng b thì a tăng
lên 1 đơn vị
VD2: Trong khi a lớn hơn b thì a giảm xuống
1 đơn vị, b tăng lên 2 đơn vị.
Trang 10begin end;
End.
Hãy nêu Cú Pháp câu lệnh lặp 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
2 Ví dụ về lệnh lặp với số lần chưa biết trước
Trang 112 Ví dụ về lệnh lặp với số lần chưa biết
trước
11
Chú ý : Trong trường hợp câu lệnh ghép:
While < điều kiện > do
Begin
câu lệnh 1;
câu lệnh 2;
…
End;
WHILE <điều kiện> DO <câu lệnh>;
Cú pháp:
Bài 8 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 12VD: 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)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Ket qua la: ’, S);
Readln;
End.
Tong S= 1035 va 45 la so tu nhien nho nha sao cho S>1000
Bài 8: 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
Trang 13Lư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
Bài tập
Trang 14A 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 10 11 9 7654
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?
Trang 15a) 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 :
Câu 2 : Hãy chỉ ra lỗi trong các câu lệnh sau đây? 30 18 13 19 14 10 11 9 7654
Trang 16In ra các số từ 1 đến 9
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
In ra các số từ 1 đến 10
In ra các số 1
In ra các số 1
Không phương án nào đúng
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 18 13 19 14 10 11 9 7654
Trang 17B 10 vòng lặp, S=5 B 4 vịng lặp, S=4 D. 5 vịng lặp, S=2
A 2 vịng lặp, S=8 C 3 vịng lặp, S=6
SAI RỒI! Sai rồi
Câu 4: Thuật tốn sau khi thực hiện vịng lặp? Khi kết
thúc giải thuật của S bằng bao nhiêu?
- Bước 1: S 10, x 2.
- Bước 2: Nếu S 5 chuyển tới bước 4.
- Bước 3: S S – x và quay lại bước 2.
- Bước 4: Thơng báo S và kết thúc thuật tốn.
30 18 13 19 14 10 11 9 7654
Trang 18- 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
Ghi nhớ
- Trong Pascal câu lệnh lặp với số lần chưa biết trước có dạng:
While <điều kiện> do <câu lệnh>;
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Trang 19Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
- Xem trước VD3, VD4, VD5, Lặp vô hạn lần–Lỗi lập trình cần tránh
Dặn dị
- Tìm thêm một vài ví dụ về hoạt động lặp với số lần chưa biết trước.
- Về nhà học bài Làm bài
tập 2 Sgk trang 66.