Tìm kiếm Bài giảng
Bài 10. Cấu trúc lặp

- 0 / 0
(Tài liệu chưa được thẩm định)
Nguồn:
Người gửi: Trần Minh Nhựt
Ngày gửi: 11h:25' 30-01-2022
Dung lượng: 680.5 KB
Số lượt tải: 262
Nguồn:
Người gửi: Trần Minh Nhựt
Ngày gửi: 11h:25' 30-01-2022
Dung lượng: 680.5 KB
Số lượt tải: 262
Số lượt thích:
0 người
HỌC ONLINE
MÔN: TIN HỌC 11
BÀI 10:
CẤU TRÚC LẶP
BÀI 10: CẤU TRÚC LẶP
MỤC TIÊU BÀI HỌC
1) Kiến thức
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán;
Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước;
Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
2) Kỹ năng
Biết cách vận dụng từng loại cấu trúc lặp phù hợp với tình huống cụ thể, đơn giản;
Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước;
Viết được thuật toán của một số bài toán đơn giản.
BÀI 10: CẤU TRÚC LẶP
BÀI 10: CẤU TRÚC LẶP
1/ Khái niệm lặp
Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
Bài toán 1:
Bài toán 2:
cho đến khi
BÀI 10: CẤU TRÚC LẶP
Chúng ta cùng tìm thuật toán cho hai bài toán trên
Xuất phát
Lần 1
Lần 2
+…
Lần N
Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?
BÀI 10: CẤU TRÚC LẶP
Chúng ta cùng tìm sự khác biệt của hai bài toán
Bài toán 1:
Bài toán 2:
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
Số lần lặp biết trước
Việc tăng giá trị cho tổng S được lặp đi lặp lại
Số lần lặp chưa biết trước
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài toán 1: Tính tổng S, với a là số nguyên và a>2
Input: Nhập vào giá trị a (với a>2)
Output: Tổng S
Hãy xác định INPUT và OUTPUT của bài toán trên!
BÀI 10: CẤU TRÚC LẶP
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
S3 = S2 + 1/(a+3)
.....
S100 = S99 + 1/(a+100)
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước + 1/(a+i)
Với i chạy từ 1 đến 100
. . . . . . . . . . . . . . . . . . . .
Đ
S
B1: Nhập a;
B2: S:=1/a; i:=1;
B3: Nếu i > 100 thì đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+i);
B5: i := i +1 quay lại B3.
Xây dựng thuật toán
i:= i+1;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
a/ Dạng lặp tiến
FOR := TO DO
;
Ví dụ: Tính tổng S= 1 + 2 + 3 + …+ 100
S := 0;
FOR i := 1 TO 100 DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
b/ Dạng lặp lùi
FOR := DOWNTO DO
;
Ví dụ: Tính tổng S= 1 + 2 + 3 + …+ 100
S := 0;
FOR i := 100 DOWNTO 1 DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Trong đó
- Biến đếm là biến kiểu số nguyên hoặc kí tự.
For i:=1 to 10 do write(i);
For ch:=‘a’ to ‘z’ do write(ch);
- Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn giá trị cuối.
For i:= 100 to 200 do write(i);
- Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm.
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài toán 1: Tính tổng S, với a là số nguyên và a>2
Hãy áp dụng câu lệnh lặp dạng tiến để viết chương trình giải bài toán đặt vấn đề.
S := 1/a;
FOR i := 1 TO 100 DO
S := S + 1/(a + i);
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
Áp dụng cấu trúc lặp cho bài toán
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Program Tinh_tong;
Uses Crt;
Var a, i : Word;
S : Real;
BEGIN
Clrscr;
Write(‘Nhap vao gia tri a = ‘);
Readln(a)
S := 1/a;
FOR i := 1 TO 100 DO
S := S + 1/(a + i);
Writeln(‘Tong S = ‘, S :10 :4);
Readln;
END.
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài tập: Viết chương trình tính tổng sau:
Input: Nhập vào giá trị N
Output: Tổng S
Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp.
Hãy xác định INPUT và OUTPUT của bài toán trên!
S := 0;
For i:= 1 to N do
S := S + 1/i ;
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
Bài toán 2: Xét bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
cho đến khi
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào giá trị a (với a>2)
Output: Tổng S
thì dừng lại.
Bước 2:
S:=1/a; N:=1;
{Khởi tạo S và N}
Bước 3:
Nếu 1/(a+N) < 0.0001
=> Bước 5
Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> quay lại Bước 3
thuật toán
Bước 1: Nhập a.
Đưa ra S
=> Kết thúc
Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
S
Đ
Bước 5: Đưa ra S => Kết thúc.
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
Cú pháp
WHILE (<điều kiện>) DO
;
Trong đó:
- Điều kiện: Là biểu thức quan hệ hoặc lôgic.
- Câu lệnh: Là một câu lệnh của Pascal.
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
Điều kiện
Đúng
Câu lệnh
Sai
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
S := 1/a;
N := 1;
WHILE (1/(a+N)>=0.0001) DO
BEGIN
S := S + 1/(a + N);
N := N+1;
END;
NHẬN XÉT
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+N).
+ Tăng N thêm 1 đơn vị.
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
BÀI 10: CẤU TRÚC LẶP
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
Ví dụ 1: Viết chương trình tính tổng sau:
S = 1 + 2 + 3 + … + N
4/ Một số ví dụ
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào giá trị N
Output: Tổng S
Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp.
S := 0;
FOR i := 1 TO N DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
4/ Một số ví dụ
Ví dụ 2: Viết chương trình tính nhập vào hai số nguyên dương M, N. Tìm ước chung lớn nhất của hai số đó.
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào hai số nguyên dương M, N
Output: Ước chung lớn nhất của hai số
BÀI 10: CẤU TRÚC LẶP
4/ Một số ví dụ
Ví dụ 2: Viết chương trình tính nhập vào hai số nguyên dương M, N. Tìm ước chung lớn nhất của hai số đó.
THUẬT TOÁN
B1: Nhập M, N;
B2 : Trong khi M <> N ta thực hiện
Kiểm tra nếu M > N thì
M := M - N
ngược lại thì N := N - M;
B3: Đến khi M = N thì
=> Đưa ra ƯCLN của hai số;
=> Kết thúc.
CÁC BƯỚC VIẾT CHƯƠNG TRÌNH
B1: Nhập M, N
B2 : While M<>N Do
IF M>N then
M := M - N
else
N := N - M;
B3: Đưa ra ƯCLN của hai số;
Kết thúc chương trình.
BÀI 10: CẤU TRÚC LẶP
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
4/ Một số ví dụ
Hãy hoàn thành chương trình sau:
CỦNG CỐ
BÀI 10: CẤU TRÚC LẶP
Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Dạng tiến
FOR := TO DO
;
Dạng lùi
FOR := DOWNTO DO
;
Khái niệm Lặp
Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
WHILE (<điều kiện>) DO
;
Ví dụ áp dụng
Cảm ơn sự chú ý theo dõi của các em học sinh!
Các em nhớ đăng ký kênh để nhận thông báo khi thầy đăng bài giảng mới! Cảm ơn các em!
MÔN: TIN HỌC 11
BÀI 10:
CẤU TRÚC LẶP
BÀI 10: CẤU TRÚC LẶP
MỤC TIÊU BÀI HỌC
1) Kiến thức
Hiểu nhu cầu của cấu trúc lặp trong biểu diễn thuật toán;
Hiểu cấu trúc lặp kiểm tra điều kiện trước, cấu trúc lặp với số lần định trước;
Mô tả được thuật toán của một số bài toán đơn giản có sử dụng lệnh lặp.
2) Kỹ năng
Biết cách vận dụng từng loại cấu trúc lặp phù hợp với tình huống cụ thể, đơn giản;
Viết đúng các lệnh lặp kiểm tra điều kiện trước, lệnh lặp với số lần định trước;
Viết được thuật toán của một số bài toán đơn giản.
BÀI 10: CẤU TRÚC LẶP
BÀI 10: CẤU TRÚC LẶP
1/ Khái niệm lặp
Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
Bài toán 1:
Bài toán 2:
cho đến khi
BÀI 10: CẤU TRÚC LẶP
Chúng ta cùng tìm thuật toán cho hai bài toán trên
Xuất phát
Lần 1
Lần 2
+…
Lần N
Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?
BÀI 10: CẤU TRÚC LẶP
Chúng ta cùng tìm sự khác biệt của hai bài toán
Bài toán 1:
Bài toán 2:
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
Số lần lặp biết trước
Việc tăng giá trị cho tổng S được lặp đi lặp lại
Số lần lặp chưa biết trước
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài toán 1: Tính tổng S, với a là số nguyên và a>2
Input: Nhập vào giá trị a (với a>2)
Output: Tổng S
Hãy xác định INPUT và OUTPUT của bài toán trên!
BÀI 10: CẤU TRÚC LẶP
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+1)
S2 = S1 + 1/(a+2)
S3 = S2 + 1/(a+3)
.....
S100 = S99 + 1/(a+100)
Bắt đầu từ S1 việc tính S được lặp đi lặp lại 100 lần theo quy luật
Ssau = Strước + 1/(a+i)
Với i chạy từ 1 đến 100
. . . . . . . . . . . . . . . . . . . .
Đ
S
B1: Nhập a;
B2: S:=1/a; i:=1;
B3: Nếu i > 100 thì đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+i);
B5: i := i +1 quay lại B3.
Xây dựng thuật toán
i:= i+1;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
a/ Dạng lặp tiến
FOR
Ví dụ: Tính tổng S= 1 + 2 + 3 + …+ 100
S := 0;
FOR i := 1 TO 100 DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
b/ Dạng lặp lùi
FOR
Ví dụ: Tính tổng S= 1 + 2 + 3 + …+ 100
S := 0;
FOR i := 100 DOWNTO 1 DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Trong đó
- Biến đếm là biến kiểu số nguyên hoặc kí tự.
For i:=1 to 10 do write(i);
For ch:=‘a’ to ‘z’ do write(ch);
- Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn giá trị cuối.
For i:= 100 to 200 do write(i);
- Giá trị biến đếm được điều chỉnh tự động, vì vậy câu lệnh sau DO không được thay đổi giá trị biến đếm.
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài toán 1: Tính tổng S, với a là số nguyên và a>2
Hãy áp dụng câu lệnh lặp dạng tiến để viết chương trình giải bài toán đặt vấn đề.
S := 1/a;
FOR i := 1 TO 100 DO
S := S + 1/(a + i);
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
Áp dụng cấu trúc lặp cho bài toán
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Program Tinh_tong;
Uses Crt;
Var a, i : Word;
S : Real;
BEGIN
Clrscr;
Write(‘Nhap vao gia tri a = ‘);
Readln(a)
S := 1/a;
FOR i := 1 TO 100 DO
S := S + 1/(a + i);
Writeln(‘Tong S = ‘, S :10 :4);
Readln;
END.
BÀI 10: CẤU TRÚC LẶP
2/ Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Bài tập: Viết chương trình tính tổng sau:
Input: Nhập vào giá trị N
Output: Tổng S
Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp.
Hãy xác định INPUT và OUTPUT của bài toán trên!
S := 0;
For i:= 1 to N do
S := S + 1/i ;
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
Bài toán 2: Xét bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2
cho đến khi
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào giá trị a (với a>2)
Output: Tổng S
thì dừng lại.
Bước 2:
S:=1/a; N:=1;
{Khởi tạo S và N}
Bước 3:
Nếu 1/(a+N) < 0.0001
=> Bước 5
Bước 4:
S:=S+1/(a+N);
N:=N+1;
=> quay lại Bước 3
thuật toán
Bước 1: Nhập a.
Đưa ra S
=> Kết thúc
Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
S
Đ
Bước 5: Đưa ra S => Kết thúc.
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
Cú pháp
WHILE (<điều kiện>) DO
Trong đó:
- Điều kiện: Là biểu thức quan hệ hoặc lôgic.
- Câu lệnh: Là một câu lệnh của Pascal.
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
Điều kiện
Đúng
Câu lệnh
Sai
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
S := 1/a;
N := 1;
WHILE (1/(a+N)>=0.0001) DO
BEGIN
S := S + 1/(a + N);
N := N+1;
END;
NHẬN XÉT
Chừng nào 1/(a+N)>=0.0001 thì còn thực hiện:
+ Tăng giá trị của tổng S thêm 1/(a+N).
+ Tăng N thêm 1 đơn vị.
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
BÀI 10: CẤU TRÚC LẶP
3/ Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
BÀI 10: CẤU TRÚC LẶP
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
Ví dụ 1: Viết chương trình tính tổng sau:
S = 1 + 2 + 3 + … + N
4/ Một số ví dụ
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào giá trị N
Output: Tổng S
Hãy xác định giá trị khởi đầu của S, quy luật thay đổi giá trị của S và số lần lặp.
S := 0;
FOR i := 1 TO N DO
S := S + i;
BÀI 10: CẤU TRÚC LẶP
4/ Một số ví dụ
Ví dụ 2: Viết chương trình tính nhập vào hai số nguyên dương M, N. Tìm ước chung lớn nhất của hai số đó.
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: Nhập vào hai số nguyên dương M, N
Output: Ước chung lớn nhất của hai số
BÀI 10: CẤU TRÚC LẶP
4/ Một số ví dụ
Ví dụ 2: Viết chương trình tính nhập vào hai số nguyên dương M, N. Tìm ước chung lớn nhất của hai số đó.
THUẬT TOÁN
B1: Nhập M, N;
B2 : Trong khi M <> N ta thực hiện
Kiểm tra nếu M > N thì
M := M - N
ngược lại thì N := N - M;
B3: Đến khi M = N thì
=> Đưa ra ƯCLN của hai số;
=> Kết thúc.
CÁC BƯỚC VIẾT CHƯƠNG TRÌNH
B1: Nhập M, N
B2 : While M<>N Do
IF M>N then
M := M - N
else
N := N - M;
B3: Đưa ra ƯCLN của hai số;
Kết thúc chương trình.
BÀI 10: CẤU TRÚC LẶP
Hết giờ
1
:
0
Thời gian còn lại ...
Bắt đầu tính giờ
00
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
09
08
07
06
05
04
03
02
01
00
0
4/ Một số ví dụ
Hãy hoàn thành chương trình sau:
CỦNG CỐ
BÀI 10: CẤU TRÚC LẶP
Lặp với số lần lặp biết trước và câu lệnh FOR - DO
Dạng tiến
FOR
Dạng lùi
FOR
Khái niệm Lặp
Lặp với số lần lặp chưa biết trước và câu lệnh WHILE - DO
WHILE (<điều kiện>) DO
Ví dụ áp dụng
Cảm ơn sự chú ý theo dõi của các em học sinh!
Các em nhớ đăng ký kênh để nhận thông báo khi thầy đăng bài giảng mới! Cảm ơn các em!
 









Các ý kiến mới nhất