Bài 8. Lặp với số lần chưa biết trước

Chia sẻ bởi Dương Thị Kim Phương | Ngày 24/10/2018 | 34

Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8

Nội dung tài liệu:

KIỂM TRA BÀI CŨ
Cú pháp:
For := to do
;
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
Hãy quan sát
VD2: Viết chương trình nhập vào các số cho đến khi gặp 0 thì dừng lại. Tính tổng các số vừa nhập.
Chua 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 For…Do để 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?
Bài 8
Lặp với số lần chưa
biết trước
VD1(Sgk):
Long sẽ lặp lại hoạt động gọi điện mấy lần?
1. Các hoạt động lặp với số lần chưa biết trước:
Chưa thể biết trước được. Điều kiện để kết thúc hoạt động lặp đó là có người nhấc máy.
Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy.
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
 Bạn Giang phải 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à.
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:
 Anh Quân phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
T1 = 1
T2 = 1 + 2
T3 = 1 + 2 + 3 +…(Tăng dần)
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?
VD2(Sgk):
1. Các hoạt động lặp với số lần chưa biết trước:
Đ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
Bài 8:
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 sẽ được các kết quả:
1. Các hoạt động lặp với số lần chưa biết trước:
1
T1 = 1
Đúng
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:
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
S  0, n  0.
Nếu S≤1000, n  n+1; Ngược lại, chuyển tới bước 4.
S  S + n và quay lại bước 2.
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.
1. Các hoạt động lặp với số lần chưa biết trước:
Kí hiệu S là tổng cần tìm và ta có thuật toán như sau:
* Có thể diễn tả bài toán trên bằng sơ đồ như sau:
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Bước 1:
Bước 2:
Bước 3:
Bước 4:
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
* Kết luận: Hoạt động lặp với số lần chưa biết trước phụ thuộc vào điều kiện và dừng lại khi điều kiện sai
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 chua bi?t tru?c
While <điều kiện> do ;
Trong đó:
Đ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 giản hay câu lệnh ghép;
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
VD1: While a<=b do a:=a+1;
VD2: While a>b do
Begin write(‘a>b’); a:=a-1; 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 là a:=a+1 (câu lệnh đơn).
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 là Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Điều kiện không có dấu :
Câu lệnh có dấu :
Câu lệnh lặp này được thực hiện như sau:
Bước 1 : Kiểm tra điều kiện.
Bước 2 : 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. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
VD: Chương trình thực hiện chào hỏi các bạn trong lớp (hoặc trong nhóm) có thể như sau:
Program Chao_hoi;
Uses crt;
Var Ten: string;
Begin For i:= 1 to 3 do
Begin
write(`Nhap ten cua ban`); Readln(Ten);
write(`Chao ban `, Ten);
end;
readln;
End.
Dòng lặp for..do
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Program Chao_hoi;
Uses crt;
Var Tieptuc: char;Ten: string;
Begin
Tieptuc:=`c`;
While Tieptuc = `c‘ do
Begin
write(`Nhap ten cua ban `); Readln(Ten);
writeln(`Chao ban `,Ten);
write(‘Ban co muon tiep tuc khong? `); readln(Tieptuc);
end;
readln;
End.
Dòng lặp while..do
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
VD: 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)
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat sao cho S>1000’);
Readln;
End.
Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Con vật may mắn
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
Câu 1: Trong các hoạt động dưới đây, hoạt động nào là hoạt động lặp 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âu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0

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.
Câu 3: Đoạn lệnh sau đây cho kết quả là gì?

S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B. 10 vòng lặp, S=5

D. 2000 l?n
B. ph? thu?c v�o di?u ki?n
A. 8 l?n
C. 100 l?n
SAI RỒI!
SAI RỒI!
SAI RỒI!
35
Câu 4: C�u l?nh l?p While..Do l?p bao nhi�u l?n thì d?ng l?i
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
CHÚC MỪNG!!
- 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 <điều kiện> do ;
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Ghi nhớ
- Xem trước VD3, VD4, VD5, Lặp vô hạn lần-Lỗi lập trình cần tránh.
- 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 71.
Bài 8:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Dặn dò
Cảm ơn quý thầy cô
và các em học sinh
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Dương Thị Kim Phương
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)