Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Nguyễn Văn Thắng |
Ngày 24/10/2018 |
55
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:
CHÀO MỪNG QUÍ THẦY CÔ ĐẾN DỰ GIỜ THĂM LỚP
TỔ
TOÁN
LÝ TIN
Gv: Nguyễn Văn Thắng
LẶP VỚI SÓ LẦN CHƯA BIẾT TRƯỚC
Bài 8:
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
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI TẬP
KIỂM TRA BÀI CŨ
Câu 1: Hãy nêu cấu trúc lặp với câu lệnh while - do?
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
a) X:= 10; while X = 10 do X = X + 5;
b) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + 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
While <điều kiện> do;
Bài 1: Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai và sai ở đâu ?
c. While 1 = 1 do write(‘Toi lap trinh gioi’);
b. While a <= b; do write(‘ b khong nho hon a’);
a. While i := 1 do t := 10 ;
d. i:= 1 ; While i < 10 do sum := sum + i; i := i + 1 ;
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI TẬP
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Bài 1: Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai vá sai ở đâu ?
c. While 1 = 1 do write(‘Toi lap trinh gioi’);
b. While a <= b; do write(‘ b khong nho hon a’);
a. While i := 1 do t := 10 ;
d. i:= 1 ; While i < 10 do sum := sum + i ; i := i + 1 ;
Sai, thừa dấu : đầu tiên
Sai, thừa dấu ; trước từ khóa do
Sai, vòng lặp vô hạn do điều kiện luôn đúng(lỗi ngữ nghĩa, về mặt cú pháp vẫn hợp lệ)
Sai, vòng lặp vô hạn không có câu lệnh làm thay đổi biến i
Bài 2: Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ 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? Viết chương trình Pascal thể hiện các thuật toán đó.
Thuật toán 1:
Bước 1: S 10, x 0.5
Bước 2: Nếu S 5.2 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 toán.
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Thuật toán 1:
Bước 1: S 10, x 0.5
Bước 2: Nếu S 5.2, 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 toán.
Đoạn chương trình Pascal tương ứng:
S := 10; x := 0.5;
While S > 5.2 do
S := S – x;
Writeln(S);
Máy tính sẽ thực hiện 10
vòng lặp , khi kết thúc thuật toán giá trị của
S = 5.0
1
9.5
2
9
3
8.5
4
8
5
7.5
6
7
7
6.5
8
6
9
5.5
10
5.0
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Đoạn chương trình Pascal tương ứng:
S := 10; n := 0;
While S < 10 do
Begin
n := n + 3;
S := S – n
End;
Writeln(S);
Máy tính sẽ không thực hiện vòng lặp nào do điều kiện không thỏa mãn, khi kết thúc thuật toán giá trị của S = 10
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Bài 3: Tìm hiểu đoạn chương trình Pascal sau đây. Hãy cho biết lênh writeln in ra màn hình giá trị i, j và k là bao nhiêu ?
Đoạn chương trình 1:
i:= 1; j := 2; k := 3;
While i < 6 do i := i + 1 ;
j := j + 1; k := k + j ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
Đoạn chương trình 2:
i:= 1; j := 2; k := 3;
While i < 6 do begin i := i + 1 ;
j := j + 1; k := k + j end ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
1
2
2
3
3
4
4
5
5
6
Lệnh writeln in ra màn hình giá trị :
i = 6; j = 3 ; k = 6;
j = 3
k = 6
Bài 3: Tìm hiểu đoạn chương trình Pascal sau đây. Hãy cho biết lênh writeln in ra màn hình giá trị i, j và k là bao nhiêu ?
Đoạn chương trình 2:
i:= 1; j := 2; k := 3;
While i < 6 do begin i := i + 1 ;
j := j + 1; k := k + j end ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
1
Lệnh writeln in ra màn hình giá trị :
i = 6; j = 7 ; k = 28 ;
2
3
6
2
3
4
10
3
4
5
15
4
5
6
21
5
6
7
28
Bài 4: Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp ? Hãy rút ra nhận xét của em.
a. S := 0; n := 0;
While S <= 10 do
begin n := n + 1 ;
S := S + n end;
b. S := 0; n := 0;
While S <= 10 do
n := n + 1 ;
S := S + n ;
Đoạn chương trình câu a máy tính thực hiện 5 vòng lặp
1
1
1
2
2
3
3
3
6
4
4
10
5
5
15
Đoạn chương trình câu b máy tính lặp vô hạn lần.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- 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;
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- Về nhà học bài. Làm bài tập 8.1,8.2,8.3,8.4,8.5 SBT trang 67,68.
DẶN DÒ
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
BÀI HOC ĐẾN ĐÂY KẾT THÚC
XIN CHÂN THÀNH CẢM ƠN QUÍ THẦY CÔ CÙNG CÁC EM HỌC SINH.
TỔ
TOÁN
LÝ TIN
Gv: Nguyễn Văn Thắng
LẶP VỚI SÓ LẦN CHƯA BIẾT TRƯỚC
Bài 8:
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
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI TẬP
KIỂM TRA BÀI CŨ
Câu 1: Hãy nêu cấu trúc lặp với câu lệnh while - do?
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
a) X:= 10; while X = 10 do X = X + 5;
b) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + 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
While <điều kiện> do
Bài 1: Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai và sai ở đâu ?
c. While 1 = 1 do write(‘Toi lap trinh gioi’);
b. While a <= b; do write(‘ b khong nho hon a’);
a. While i := 1 do t := 10 ;
d. i:= 1 ; While i < 10 do sum := sum + i; i := i + 1 ;
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
BÀI TẬP
Bài 8: LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Bài 1: Trong các câu lệnh lặp Pascal sau đây, câu lệnh nào sai vá sai ở đâu ?
c. While 1 = 1 do write(‘Toi lap trinh gioi’);
b. While a <= b; do write(‘ b khong nho hon a’);
a. While i := 1 do t := 10 ;
d. i:= 1 ; While i < 10 do sum := sum + i ; i := i + 1 ;
Sai, thừa dấu : đầu tiên
Sai, thừa dấu ; trước từ khóa do
Sai, vòng lặp vô hạn do điều kiện luôn đúng(lỗi ngữ nghĩa, về mặt cú pháp vẫn hợp lệ)
Sai, vòng lặp vô hạn không có câu lệnh làm thay đổi biến i
Bài 2: Hãy tìm hiểu các thuật toán sau đây và cho biết khi thực hiện thuật toán, máy tính sẽ 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? Viết chương trình Pascal thể hiện các thuật toán đó.
Thuật toán 1:
Bước 1: S 10, x 0.5
Bước 2: Nếu S 5.2 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 toán.
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Thuật toán 1:
Bước 1: S 10, x 0.5
Bước 2: Nếu S 5.2, 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 toán.
Đoạn chương trình Pascal tương ứng:
S := 10; x := 0.5;
While S > 5.2 do
S := S – x;
Writeln(S);
Máy tính sẽ thực hiện 10
vòng lặp , khi kết thúc thuật toán giá trị của
S = 5.0
1
9.5
2
9
3
8.5
4
8
5
7.5
6
7
7
6.5
8
6
9
5.5
10
5.0
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Đoạn chương trình Pascal tương ứng:
S := 10; n := 0;
While S < 10 do
Begin
n := n + 3;
S := S – n
End;
Writeln(S);
Máy tính sẽ không thực hiện vòng lặp nào do điều kiện không thỏa mãn, khi kết thúc thuật toán giá trị của S = 10
b.Thuật toán 2:
Bước 1: S 10, n 0
Bước 2: Nếu S ≥ 10, chuyển tới bước 4.
Bước 3: n n + 3, S S –n quay lại bước 2.
Bước 4: Thông báo S và kết thúc thuật toán.
Bài 3: Tìm hiểu đoạn chương trình Pascal sau đây. Hãy cho biết lênh writeln in ra màn hình giá trị i, j và k là bao nhiêu ?
Đoạn chương trình 1:
i:= 1; j := 2; k := 3;
While i < 6 do i := i + 1 ;
j := j + 1; k := k + j ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
Đoạn chương trình 2:
i:= 1; j := 2; k := 3;
While i < 6 do begin i := i + 1 ;
j := j + 1; k := k + j end ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
1
2
2
3
3
4
4
5
5
6
Lệnh writeln in ra màn hình giá trị :
i = 6; j = 3 ; k = 6;
j = 3
k = 6
Bài 3: Tìm hiểu đoạn chương trình Pascal sau đây. Hãy cho biết lênh writeln in ra màn hình giá trị i, j và k là bao nhiêu ?
Đoạn chương trình 2:
i:= 1; j := 2; k := 3;
While i < 6 do begin i := i + 1 ;
j := j + 1; k := k + j end ;
space := ‘ ’ ;
Writeln(i , space, j, space , k);
1
Lệnh writeln in ra màn hình giá trị :
i = 6; j = 7 ; k = 28 ;
2
3
6
2
3
4
10
3
4
5
15
4
5
6
21
5
6
7
28
Bài 4: Hãy tìm hiểu mỗi đoạn lệnh sau đây và cho biết với đoạn lệnh đó chương trình thực hiện bao nhiêu vòng lặp ? Hãy rút ra nhận xét của em.
a. S := 0; n := 0;
While S <= 10 do
begin n := n + 1 ;
S := S + n end;
b. S := 0; n := 0;
While S <= 10 do
n := n + 1 ;
S := S + n ;
Đoạn chương trình câu a máy tính thực hiện 5 vòng lặp
1
1
1
2
2
3
3
3
6
4
4
10
5
5
15
Đoạn chương trình câu b máy tính lặp vô hạn lần.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- 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
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
- Về nhà học bài. Làm bài tập 8.1,8.2,8.3,8.4,8.5 SBT trang 67,68.
DẶN DÒ
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
BÀI HOC ĐẾN ĐÂY KẾT THÚC
XIN CHÂN THÀNH CẢM ƠN QUÍ THẦY CÔ CÙNG 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ẻ: Nguyễn Văn Thắng
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)