Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Nguyễn Minh Nhựt |
Ngày 24/10/2018 |
39
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:
GV: NGUYỄN MINH NHỰT
1
BÀI 8
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
GV: NGUYỄN MINH NHỰT
GV: NGUYỄN MINH NHỰT
‹#›
GV: NGUYỄN MINH NHỰT
3
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 10
S = 1 + 2 + 3 + . . .+10
Lặp 10 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 chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
Var i, s : integer;
Begin
s:=0;
for i:=1 to 10 do s:=s+i;
writeln(‘Tong S=‘, s);
End.
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
GV: NGUYỄN MINH NHỰT
4
BÀI 8
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
TIẾT: 47
GV: NGUYỄN MINH NHỰT
5
1. 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.
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.
GV: NGUYỄN MINH NHỰT
6
1. Các hoạt động lặp với số lần chưa biết
Ví Dụ 1:SGK/67
Xảy ra 2 tình huống:
* Tình huống 1: Long dã biết trước mình sẽ lặp lại hoạt động gọi điện thêm hai lần.
*Tình huống 2: Cứ 10 phút gọi điện một lần cho đến khi nào có người nhấc máy.
GV: NGUYỄN MINH NHỰT
7
1. Các hoạt động lặp với số lần chưa biết
Ví dụ 2: Nếu cộng n số tự nhiên đầu tiên
(n=1,2,3,4…), ta được các kết quả
T1 = 1
T2 = 1+2
T3 = 1+2+3
.
.
.
Cần cộng bao nhiêu lần số tự nhiên đầu
tiên để nhận được Tn nhỏ nhất > 1000?
GV: NGUYỄN MINH NHỰT
8
1. 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:
Bước 1: S ? 0; n? 0;
Bước 2: Nếu S<= 1000,
n? n+1;
ngược lại, chuyển tới bước 4;
Bước 3: S ? S+n và quay lại bước 2;
Bước 4: 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;
GV: NGUYỄN MINH NHỰT
9
S<=1000
n ← n +1;
S ← S + n;
Đúng
Sai
GV: NGUYỄN MINH NHỰT
10
1. Các hoạt động lặp với số lần chưa biết
- 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.
2?
1?
GV: NGUYỄN MINH NHỰT
11
2. Ví dụ về lệnh lặp với số lần chưa biết trước
- Cú pháp 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;
- Trong đó:
+ While, do là các từ khóa.
+ Điều kiện thường là phép so sánh.
+ Câu lệnh là câu lệnh đơn hoặc câu lệnh ghép.
GV: NGUYỄN MINH NHỰT
12
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?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)
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
Câu lệnh ghép
GV: NGUYỄN MINH NHỰT
13
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?
GV: NGUYỄN MINH NHỰT
14
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 ;
Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
:
:
Dư dấu :
Thiếu dấu :
Thiếu begin
Thiếu end
GV: NGUYỄN MINH NHỰT
15
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
GV: NGUYỄN MINH NHỰT
16
B. 10 vòng lặp, S=5
D. 12 vòng lặp, S=4
B. 10 vòng lặp, S=5
A. 9 vòng lặp, S=5.5
C. 11 vòng lặp, S=4.5
SAI RỒI!
SAI RỒI!
SAI RỒI!
35
Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu?
- Bước 1: S ? 10, x ? 0.5.
- Bước 2: Nếu S ? 5.2 chuy?n t?i bu?c 4.
- Bu?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 toá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
GV: NGUYỄN MINH NHỰT
17
- 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;
GV: NGUYỄN MINH NHỰT
18
- Xem trước VD3, 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 71.
1
BÀI 8
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
GV: NGUYỄN MINH NHỰT
GV: NGUYỄN MINH NHỰT
‹#›
GV: NGUYỄN MINH NHỰT
3
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 10
S = 1 + 2 + 3 + . . .+10
Lặp 10 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 chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
Var i, s : integer;
Begin
s:=0;
for i:=1 to 10 do s:=s+i;
writeln(‘Tong S=‘, s);
End.
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
GV: NGUYỄN MINH NHỰT
4
BÀI 8
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
TIẾT: 47
GV: NGUYỄN MINH NHỰT
5
1. 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.
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.
GV: NGUYỄN MINH NHỰT
6
1. Các hoạt động lặp với số lần chưa biết
Ví Dụ 1:SGK/67
Xảy ra 2 tình huống:
* Tình huống 1: Long dã biết trước mình sẽ lặp lại hoạt động gọi điện thêm hai lần.
*Tình huống 2: Cứ 10 phút gọi điện một lần cho đến khi nào có người nhấc máy.
GV: NGUYỄN MINH NHỰT
7
1. Các hoạt động lặp với số lần chưa biết
Ví dụ 2: Nếu cộng n số tự nhiên đầu tiên
(n=1,2,3,4…), ta được các kết quả
T1 = 1
T2 = 1+2
T3 = 1+2+3
.
.
.
Cần cộng bao nhiêu lần số tự nhiên đầu
tiên để nhận được Tn nhỏ nhất > 1000?
GV: NGUYỄN MINH NHỰT
8
1. 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:
Bước 1: S ? 0; n? 0;
Bước 2: Nếu S<= 1000,
n? n+1;
ngược lại, chuyển tới bước 4;
Bước 3: S ? S+n và quay lại bước 2;
Bước 4: 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;
GV: NGUYỄN MINH NHỰT
9
S<=1000
n ← n +1;
S ← S + n;
Đúng
Sai
GV: NGUYỄN MINH NHỰT
10
1. Các hoạt động lặp với số lần chưa biết
- 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.
2?
1?
GV: NGUYỄN MINH NHỰT
11
2. Ví dụ về lệnh lặp với số lần chưa biết trước
- Cú pháp 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
- Trong đó:
+ While, do là các từ khóa.
+ Điều kiện thường là phép so sánh.
+ Câu lệnh là câu lệnh đơn hoặc câu lệnh ghép.
GV: NGUYỄN MINH NHỰT
12
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?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)
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
Câu lệnh ghép
GV: NGUYỄN MINH NHỰT
13
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?
GV: NGUYỄN MINH NHỰT
14
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 ;
Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
:
:
Dư dấu :
Thiếu dấu :
Thiếu begin
Thiếu end
GV: NGUYỄN MINH NHỰT
15
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
GV: NGUYỄN MINH NHỰT
16
B. 10 vòng lặp, S=5
D. 12 vòng lặp, S=4
B. 10 vòng lặp, S=5
A. 9 vòng lặp, S=5.5
C. 11 vòng lặp, S=4.5
SAI RỒI!
SAI RỒI!
SAI RỒI!
35
Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp? Khi kết thúc, giá trị của S bằng bao nhiêu?
- Bước 1: S ? 10, x ? 0.5.
- Bước 2: Nếu S ? 5.2 chuy?n t?i bu?c 4.
- Bu?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 toá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
GV: NGUYỄN MINH NHỰT
17
- 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
GV: NGUYỄN MINH NHỰT
18
- Xem trước VD3, 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 71.
* 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ẻ: Nguyễn Minh Nhựt
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)