Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Phi Thăng |
Ngày 10/05/2019 |
132
Chia sẻ tài liệu: Bài 10. Cấu trúc lặp thuộc Tin học 11
Nội dung tài liệu:
IF (ngay=20) and (thang=11) THEN
Begin
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
End;
Bài 10
Giáo án điện tử tin học lớp 11
(Phần 1 và phần 2 (lý thuyết))
Tiết 11
Bài toán 1:
Bài toán 2:
Các 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
Xuất phát
Lần 1
Lần 2
+…
Lần N
1
Sau mỗi lần thực hiện giá trị tổng S tăng thêm ???? ( với i =1; 2; 3 ; ...;N)
a + i
Cùng tìm thuật toán
Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?
Bài toán 1:
Bài toán 2:
Cho đến khi
? 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 cho đến khi
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
tìm sự khác biệt
? Số lần lặp chưa biết trước.
các em hãy cho biết
sự khác biệt giữa hai
bài toán?
Cấu trúc lặp
1. Bài toán đặt vấn đề
- Dữ liệu ra (Output) : Tổng S
Lập chương trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập a
Hãy xác định INPUT và OUTPUT của bài toán trên!
I. Lặp với số lần lặp biết trước
Phân tích bài toán (ý tưởng)
Nhận xét:
Ban đầu: S = 1/a
Cộng lần 1: S = S + 1/(a+1)
Cộng lần 2: S = S + 1/(a+2)
Cộng lần 3: S = S + 1/(a+3)
.....
Cộng lần 100: S = S + 1/(a+100)
Bắt đầu từ lần cộng 1 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 ? 100
. . . . . . . . . . . . . . . . . . . .
Từ ý tưởng trên em hãy viết thuật toán cho bài toán
B1: Nhập a;
B2: S?1/a; i?0;
B4: Nếu i >100 thì đưa ra giá trị S rồi Kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i +1;
Xây dựng thuật toán
Phân tích bài toán (ý tưởng 2)
Nhận xét:
Ban đầu: S = 1/a
Cộng lần 1: S = S + 1/(a+100)
Cộng lần 2: S = S + 1/(a+99)
Cộng lần 3: S = S + 1/(a+98)
.....
Cộng lần 100: S = S + 1/(a+1)
Bắt đầu từ lần cộng 1 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ừ 100 ? 1
. . . . . . . . . . . . . . . . . . . .
B1: Nhập a;
B2: S?1/a; i?0;
B4: Nếu i >100 thì đưa ra giá trị S rồi Kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i +1;
Xây dựng thuật toán
Thuật toán Tong_1a
B1: Nhập a;
B2: S?1/a; i?101;
B4: Nếu i <1 thì đưa ra giá trị s rồi kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i -1;
Thuật toán Tong_1b
Thuật toán Tong_1a, giá trị i bắt đầu tham gia vòng lặp là 1 sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 (i = 101) thì kết thúc lặp (thực hiện 100 lần).
Nhận xét:
Thuật toán Tong_1b, giá trị i bắt đầu tham gia vòng lặp là 100 sau mỗi lần lặp i giảm đi 1 cho đến khi i < 1 (i = 0) thì kết thúc lặp (thực hiện100 lần).
Ta nói cách lặp trong thuật toán Tong_1a là dạng tiến và trong thuật toán Tong_1b là dạng lùi.
FOR := TO DO < câu lệnh>;
VD1: S:=1/a;
FOR i:=1 TO 100 DO S:=S+1/(a+i);
b. Dạng 2 (dạng lùi)
FOR := DOWNTO DO ;
VD1: S:=1/a;
FOR i:=100 DOWNTO 1 DO S:=S+1/(a+i);
a. Dạng 1 (dạng tiến)
2. Lặp với số lần lặp biết trước
VD2: IF (ngay=20) and (thang=11) THEN
FOR i:=1 TO 5 DO writeln(`ngay nha giao Viet Nam`);
VD2:IF (ngay=20) and (thang=11) THEN
FOR i:=5 DOWNTO 5 DO writeln(`ngay nha giao Viet Nam`);
? 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.
VD: 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.
Trong đó
? Biến đếm là biến kiểu số nguyên hoặc kí tự.
VD1: For i:=1 to 10 do write(i);
VD2: For i:=`a` to `z` do write(i);
S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
i
S
2.28
5
Nhập N
S := 1 ; i := 2;
2>5 ?
S
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S
S
S
6>5 ?
In Tổng S
Tổng S=2.28
Với N = 5
2.28
Đ
Đ
Mô phỏng thuật toán
Lặp dạng tiến
Lặp dạng lùi
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
Biến:=
Biến >= GT đầu
Câu lệnh
Biến tự động giảm 1 ĐVị
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
Biến:=
Biến >= GT đầui
Câu lệnh
Biến tự động giảm 1 ĐVị
True
Lưu đồ hoạt động
Hãy nhớ!
Lặp
FOR ... TO ... DO ....
FOR ... Downto ... DO ...
Lặp với số lần lặp biết trước.
Lặp với số lần lặp không biết trước.
Begin
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
Writeln(`chao mung ngay nha giao viet nam`);
End;
Bài 10
Giáo án điện tử tin học lớp 11
(Phần 1 và phần 2 (lý thuyết))
Tiết 11
Bài toán 1:
Bài toán 2:
Các 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
Xuất phát
Lần 1
Lần 2
+…
Lần N
1
Sau mỗi lần thực hiện giá trị tổng S tăng thêm ???? ( với i =1; 2; 3 ; ...;N)
a + i
Cùng tìm thuật toán
Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?
Bài toán 1:
Bài toán 2:
Cho đến khi
? 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 cho đến khi
Việc tăng giá trị cho tổng S được lặp đi lặp lại 100 lần.
tìm sự khác biệt
? Số lần lặp chưa biết trước.
các em hãy cho biết
sự khác biệt giữa hai
bài toán?
Cấu trúc lặp
1. Bài toán đặt vấn đề
- Dữ liệu ra (Output) : Tổng S
Lập chương trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập a
Hãy xác định INPUT và OUTPUT của bài toán trên!
I. Lặp với số lần lặp biết trước
Phân tích bài toán (ý tưởng)
Nhận xét:
Ban đầu: S = 1/a
Cộng lần 1: S = S + 1/(a+1)
Cộng lần 2: S = S + 1/(a+2)
Cộng lần 3: S = S + 1/(a+3)
.....
Cộng lần 100: S = S + 1/(a+100)
Bắt đầu từ lần cộng 1 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 ? 100
. . . . . . . . . . . . . . . . . . . .
Từ ý tưởng trên em hãy viết thuật toán cho bài toán
B1: Nhập a;
B2: S?1/a; i?0;
B4: Nếu i >100 thì đưa ra giá trị S rồi Kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i +1;
Xây dựng thuật toán
Phân tích bài toán (ý tưởng 2)
Nhận xét:
Ban đầu: S = 1/a
Cộng lần 1: S = S + 1/(a+100)
Cộng lần 2: S = S + 1/(a+99)
Cộng lần 3: S = S + 1/(a+98)
.....
Cộng lần 100: S = S + 1/(a+1)
Bắt đầu từ lần cộng 1 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ừ 100 ? 1
. . . . . . . . . . . . . . . . . . . .
B1: Nhập a;
B2: S?1/a; i?0;
B4: Nếu i >100 thì đưa ra giá trị S rồi Kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i +1;
Xây dựng thuật toán
Thuật toán Tong_1a
B1: Nhập a;
B2: S?1/a; i?101;
B4: Nếu i <1 thì đưa ra giá trị s rồi kết thúc;
B5 : S? S + 1/(a+i) rồi quay lại bước 3;
B3: i ? i -1;
Thuật toán Tong_1b
Thuật toán Tong_1a, giá trị i bắt đầu tham gia vòng lặp là 1 sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 (i = 101) thì kết thúc lặp (thực hiện 100 lần).
Nhận xét:
Thuật toán Tong_1b, giá trị i bắt đầu tham gia vòng lặp là 100 sau mỗi lần lặp i giảm đi 1 cho đến khi i < 1 (i = 0) thì kết thúc lặp (thực hiện100 lần).
Ta nói cách lặp trong thuật toán Tong_1a là dạng tiến và trong thuật toán Tong_1b là dạng lùi.
FOR
VD1: S:=1/a;
FOR i:=1 TO 100 DO S:=S+1/(a+i);
b. Dạng 2 (dạng lùi)
FOR
VD1: S:=1/a;
FOR i:=100 DOWNTO 1 DO S:=S+1/(a+i);
a. Dạng 1 (dạng tiến)
2. Lặp với số lần lặp biết trước
VD2: IF (ngay=20) and (thang=11) THEN
FOR i:=1 TO 5 DO writeln(`ngay nha giao Viet Nam`);
VD2:IF (ngay=20) and (thang=11) THEN
FOR i:=5 DOWNTO 5 DO writeln(`ngay nha giao Viet Nam`);
? 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.
VD: 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.
Trong đó
? Biến đếm là biến kiểu số nguyên hoặc kí tự.
VD1: For i:=1 to 10 do write(i);
VD2: For i:=`a` to `z` do write(i);
S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
i
S
2.28
5
Nhập N
S := 1 ; i := 2;
2>5 ?
S
S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S
S
S
6>5 ?
In Tổng S
Tổng S=2.28
Với N = 5
2.28
Đ
Đ
Mô phỏng thuật toán
Lặp dạng tiến
Lặp dạng lùi
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
Biến:=
Biến >= GT đầu
Câu lệnh
Biến tự động giảm 1 ĐVị
Biến:=
Biến <= GT cuối
Câu lệnh
Biến tự động tăng 1 ĐVị
True
False
Biến:=
Biến >= GT đầui
Câu lệnh
Biến tự động giảm 1 ĐVị
True
Lưu đồ hoạt động
Hãy nhớ!
Lặp
FOR ... TO ... DO ....
FOR ... Downto ... DO ...
Lặp với số lần lặp biết trước.
Lặp với số lần lặp không biết trước.
* 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 Phi Thă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)