Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Thu Huyen |
Ngày 24/10/2018 |
48
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:
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?
Câu 2: Nêu cú pháp của câu lệnh lặp với số lần chưa biết trước, và cho biết các bước thực hiện câu lệnh lặp?
While <điều kiện> Do;
Vd: While a<=5 do write (‘Lớp 8A1’);
Các bước để thực hiện lệnh lặp là:
B1: Kiểm tra điều kiện
B2: Nếu điều kiện sai thì kết thúc chương trình, nếu đúng sẽ thực hiện câu lệnh và quay lại kiểm tra điều kiện.
NỘI DUNG
2. Ví dụ về câu lệnh lặp
3. Lặp vô hạn lần, lỗi lập trình cần tránh.
Em hãy nhớ lại thuật toán của ví dụ 2 SGK-67?
2. Ví dụ về câu lệnh lặp
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.
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:
Dựa vào thuật toán em hãy viết chương trình cho bài ví dụ 2
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 nha sao cho S>1000
program bài_1;;
3. Lặp vô hạn lần, lỗi lập trình cần tránh.
Khi viết chương trình sử dụng cấu trúc lặp
cần chú ý tránh tạo nên vòng lặp vô hạn lần
không có điểm kết thúc.
Var a:integer;
Begin
a:=1;
While a<3 do writeln (‘a’);
End.
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 ;
Câu 1: 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 2: Đ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. 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 3: 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
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?
Câu 2: Nêu cú pháp của câu lệnh lặp với số lần chưa biết trước, và cho biết các bước thực hiện câu lệnh lặp?
While <điều kiện> Do
Vd: While a<=5 do write (‘Lớp 8A1’);
Các bước để thực hiện lệnh lặp là:
B1: Kiểm tra điều kiện
B2: Nếu điều kiện sai thì kết thúc chương trình, nếu đúng sẽ thực hiện câu lệnh và quay lại kiểm tra điều kiện.
NỘI DUNG
2. Ví dụ về câu lệnh lặp
3. Lặp vô hạn lần, lỗi lập trình cần tránh.
Em hãy nhớ lại thuật toán của ví dụ 2 SGK-67?
2. Ví dụ về câu lệnh lặp
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.
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:
Dựa vào thuật toán em hãy viết chương trình cho bài ví dụ 2
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 nha sao cho S>1000
program bài_1;;
3. Lặp vô hạn lần, lỗi lập trình cần tránh.
Khi viết chương trình sử dụng cấu trúc lặp
cần chú ý tránh tạo nên vòng lặp vô hạn lần
không có điểm kết thúc.
Var a:integer;
Begin
a:=1;
While a<3 do writeln (‘a’);
End.
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 ;
Câu 1: 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 2: Đ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. 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 3: 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
* 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ẻ: Thu Huyen
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)