Bài 10. Cấu trúc lặp
Chia sẻ bởi Tạ Hoàng Nghị |
Ngày 10/05/2019 |
61
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:
Trừong THPT Cà Mau
NĂM HỌC 2011 - 2012
KÍNH CHÀO QUÍ THẦY (CÔ) ĐẾN DỰ GIỜ LỚP 11c1
Môn: tin học
Kiểm tra bài cũ
Cấu trúc IF - THEN (Dạng thiếu )
nào sau đây là đúng :
IF<điềukiện> THEN;
IF <điềukiện> ELSE;
IF THEN <điềukiện>;
IF <điềukiện> THEN;
Câu lệnh ghép là :
Begin
Thực hiện theo điều kiện
Ghép nhiều câu lệnh
Begin ...End
Cấu trúc lặp
§ 10.
1.LẶP
VÍ DỤ: Một hồ nước, hai xô đựng nước ,một ca
múc nước.
Hồ nước
Biến đếm
Tăng lên 1 đơn vị
Thỏa mãn ñieàu kieän đầy xô là dừng
Trường hợp 1: Số lần thực hiện công việc đổ nước?
Trường hợp 2: Số lần thực hiện công việc đổ nước?
Xuất phát
Lần 1
Lần 2
+…
Lần 100
?Với a là số nguyên và a>2
?Bài toán 1: tớnh v dua ra k?t qu? mn hỡnh t?ng
Xuất phát
Lần 1
Lần 2
+…
?Bài toán 2:
cho đến khi
+.cho đến khi
Lần N
Bài toán 1:
Bài toán 2:
Cho đến khi
? Số lần lặp biết trước.
Việc tang giá trị cho tổng S được lặp đi lặp lại cho đến khi thoaỷ ủieu kieọn
Việc tang giá trị cho tổng S được lặp đi lặp lại 100 lần.
? Số lần lặp chưa biết trước.
Việc cộng giá trị cho tổng S được lặp lại bao nhiêu lần?
Việc cộng giá trị cho tổng S được lặp lại bao nhiêu lần?
1
Sau mỗi lần thực hiện giá trị coọng vaứo tổng S tang thêm ????
a + N
(Vụựi N=1, 2, 3 ,4, 5,.)
Bài toán 1 và bài toán 2 có điểm tương tự nào?
S được gán giá trị
* Lặp có hai loại:
- Lặp với số lần biết trước
- Lặp với số lần chưa biết trước
...
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
SN= SN-1 +
với N chạy từ 1 ? 100
. . .
Khi tính
đã tuân thủ theo qui luật nào?
?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:
...
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
SN = SN-1+
với N gi?m từ 100 ? 1
. . .
Khi tính
đã tuân thủ theo qui luật nào?
Thuật toán Tong_1a
Bước 1. S 1/a; N 0;
Bước 2. N N + 1;
Bước 3.Nếu N > 100 thì chuyển tới B 5;
Bước 4. S S + 1/(a + N ) rồi quay lại B2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1b
Bước 1. S 1/a; N 101;
Bước 2. N N - 1;
Bước 3. Nếu N < 1 thì chuyển tới B5;
Bước 4. S S + 1/(a + N ) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Dạng lặp tiến
Dạng lặp lùi
* Pascal dùng câu lệnh lặp For - do với hai dạng:
- Dạng lặp tiến:
For:= to do
;
- Dạng lặp lùi:
For:= downto do ;
- Biến đếm: Là biến đơn, thường có kiểu nguyên.
- 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 nhỏ hơn hoặc bằng giá trị cuối).
Trong đó:
- for, to, downto, do: Là từ khóa trong Pascal.
?+D?ng l?p ti?n
Cõu l?nh vi?t sau t? khoỏ do du?c th?c hi?n tu?n t?, v?i bi?n d?m du?c th?c hi?n l?n lu?t nh?n cỏc giỏ tr? tang t? giỏ tr? d?u d?n giỏ tr? cu?i.
FOR := TO DO < câu lệnh>;
*Hoạt động của lệnh For - do
?+D?ng l?p lựi
FOR := DOWNTO DO < câu lệnh>;
Câu lệnh viết sau từ khoá do được thực
hiện tuần tự, với biến đếm được thực hiện lần lượt nhận các giá trị giảm từ giá trị cuối đến giá trị đầu.
Ví dụ 1: Tính tổng và đưa kết quả ra màn hình tổng
Xây dựng thuật toán
Đ
S
B1: Nhập N;
B2: ;
B3: Nếu i > N thì đưa ra giá trị S, Kết thúc;
B4 : S ? S + 1/(a+i);
B5: i ? i +1 quay lại B3.
i i+1
i)
1)
1/(3+
+
S:=
0.33
For
i:=
1
to
do
S:=
S
0.33
0.58
2
0.58
2)
0.78
3
0.78
3)
0.94
4
0.94
4)
1.08
1.08
a:=3
4
S 1/a
S s+1/(a+i),(i=1,2,3,4)
Mô phỏng
5
Program Tong_1a;
Var S:real;
a, i:Integer;
Begin
Write (‘Nhap a’); Readln(a);
s:=1/a; (* Buoc 1 *)
For i:=1 to 4 do (* Buoc 2, buoc 3 *)
S:=S+1/(a+i); (* Buoc 4 *)
write(‘Tong S la’,S:5:1); (* Buoc 5 *)
Readln;
End.
Program vd2;
Var i:Integer;
Begin
Writeln(‘ Biến điều khiển tăng ‘);
For i:=1 to 10 do
Writeln(i);
Writeln(‘ Bấm phím để kết thúc’);
Readln;
End.
Ví dụ áp dụng: viết chương trình in ra màn hình các số:
1 2 3 4 5 6 7 8 9 10
Xác định: - Câu lệnh lặp cần thực hiện?
- Lặp bao nhiêu lần?
- Giá trị đầu, giá trị cuối?
Cc cu lƯnh Pascal sau c hỵp lƯ khng? v sao ?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS:khng hỵp lƯ, v gi tr u lín hn gi tr cui
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS:khng hỵp lƯ, v gi tr u, gi tr cui l d liƯu kiĨu s thc
For i:=1 to 10 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
NHÓM 1:
For i:=100 to 1 do
Write(‘A’);
NHÓM 2:
For i:=1.5 to 10.5 do
Write(‘A’);
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
For i:=10 Downto 1 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
For i:=10 Downto 1 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
Bài10: Cấu trúc lặp
CỦNG CỐ
Dạng lặp tiến:
Dạng lặp lùi:
For:= to
do ;
For:=
downto do ;
Lặp: Lặp với số lần biết trước
Lặp với số lần chưa biết trước
2.Lặp với số lần biết trước và câu lệnh for …do
Cú pháp :
Cú pháp :
*Hoạt động của lệnh for - do
Xem ví dụ 2/sgk-45.
Và lặp với số lần chưa biết trước và câu lệnh while – do.
Bài tập về nhà: bài: số 3, 6/sgk-51:
Tập thể lớp 11C1 xin chúc sức khoẻ quí
Thầy (Cô)!
NĂM HỌC 2011 - 2012
KÍNH CHÀO QUÍ THẦY (CÔ) ĐẾN DỰ GIỜ LỚP 11c1
Môn: tin học
Kiểm tra bài cũ
Cấu trúc IF - THEN (Dạng thiếu )
nào sau đây là đúng :
IF<điềukiện> THEN
IF <điềukiện> ELSE
IF
IF <điềukiện> THEN
Câu lệnh ghép là :
Begin
Thực hiện theo điều kiện
Ghép nhiều câu lệnh
Begin ...End
Cấu trúc lặp
§ 10.
1.LẶP
VÍ DỤ: Một hồ nước, hai xô đựng nước ,một ca
múc nước.
Hồ nước
Biến đếm
Tăng lên 1 đơn vị
Thỏa mãn ñieàu kieän đầy xô là dừng
Trường hợp 1: Số lần thực hiện công việc đổ nước?
Trường hợp 2: Số lần thực hiện công việc đổ nước?
Xuất phát
Lần 1
Lần 2
+…
Lần 100
?Với a là số nguyên và a>2
?Bài toán 1: tớnh v dua ra k?t qu? mn hỡnh t?ng
Xuất phát
Lần 1
Lần 2
+…
?Bài toán 2:
cho đến khi
+.cho đến khi
Lần N
Bài toán 1:
Bài toán 2:
Cho đến khi
? Số lần lặp biết trước.
Việc tang giá trị cho tổng S được lặp đi lặp lại cho đến khi thoaỷ ủieu kieọn
Việc tang giá trị cho tổng S được lặp đi lặp lại 100 lần.
? Số lần lặp chưa biết trước.
Việc cộng giá trị cho tổng S được lặp lại bao nhiêu lần?
Việc cộng giá trị cho tổng S được lặp lại bao nhiêu lần?
1
Sau mỗi lần thực hiện giá trị coọng vaứo tổng S tang thêm ????
a + N
(Vụựi N=1, 2, 3 ,4, 5,.)
Bài toán 1 và bài toán 2 có điểm tương tự nào?
S được gán giá trị
* Lặp có hai loại:
- Lặp với số lần biết trước
- Lặp với số lần chưa biết trước
...
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
SN= SN-1 +
với N chạy từ 1 ? 100
. . .
Khi tính
đã tuân thủ theo qui luật nào?
?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:
...
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
SN = SN-1+
với N gi?m từ 100 ? 1
. . .
Khi tính
đã tuân thủ theo qui luật nào?
Thuật toán Tong_1a
Bước 1. S 1/a; N 0;
Bước 2. N N + 1;
Bước 3.Nếu N > 100 thì chuyển tới B 5;
Bước 4. S S + 1/(a + N ) rồi quay lại B2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Thuật toán Tong_1b
Bước 1. S 1/a; N 101;
Bước 2. N N - 1;
Bước 3. Nếu N < 1 thì chuyển tới B5;
Bước 4. S S + 1/(a + N ) rồi quay lại bước 2;
Bước 5. Đưa S ra màn hình rồi kết thúc.
Dạng lặp tiến
Dạng lặp lùi
* Pascal dùng câu lệnh lặp For - do với hai dạng:
- Dạng lặp tiến:
For
- Dạng lặp lùi:
For
- Biến đếm: Là biến đơn, thường có kiểu nguyên.
- 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 nhỏ hơn hoặc bằng giá trị cuối).
Trong đó:
- for, to, downto, do: Là từ khóa trong Pascal.
?+D?ng l?p ti?n
Cõu l?nh vi?t sau t? khoỏ do du?c th?c hi?n tu?n t?, v?i bi?n d?m du?c th?c hi?n l?n lu?t nh?n cỏc giỏ tr? tang t? giỏ tr? d?u d?n giỏ tr? cu?i.
FOR
*Hoạt động của lệnh For - do
?+D?ng l?p lựi
FOR
Câu lệnh viết sau từ khoá do được thực
hiện tuần tự, với biến đếm được thực hiện lần lượt nhận các giá trị giảm từ giá trị cuối đến giá trị đầu.
Ví dụ 1: Tính tổng và đưa kết quả ra màn hình tổng
Xây dựng thuật toán
Đ
S
B1: Nhập N;
B2: ;
B3: Nếu i > N thì đưa ra giá trị S, Kết thúc;
B4 : S ? S + 1/(a+i);
B5: i ? i +1 quay lại B3.
i i+1
i)
1)
1/(3+
+
S:=
0.33
For
i:=
1
to
do
S:=
S
0.33
0.58
2
0.58
2)
0.78
3
0.78
3)
0.94
4
0.94
4)
1.08
1.08
a:=3
4
S 1/a
S s+1/(a+i),(i=1,2,3,4)
Mô phỏng
5
Program Tong_1a;
Var S:real;
a, i:Integer;
Begin
Write (‘Nhap a’); Readln(a);
s:=1/a; (* Buoc 1 *)
For i:=1 to 4 do (* Buoc 2, buoc 3 *)
S:=S+1/(a+i); (* Buoc 4 *)
write(‘Tong S la’,S:5:1); (* Buoc 5 *)
Readln;
End.
Program vd2;
Var i:Integer;
Begin
Writeln(‘ Biến điều khiển tăng ‘);
For i:=1 to 10 do
Writeln(i);
Writeln(‘ Bấm phím
Readln;
End.
Ví dụ áp dụng: viết chương trình in ra màn hình các số:
1 2 3 4 5 6 7 8 9 10
Xác định: - Câu lệnh lặp cần thực hiện?
- Lặp bao nhiêu lần?
- Giá trị đầu, giá trị cuối?
Cc cu lƯnh Pascal sau c hỵp lƯ khng? v sao ?
NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS:khng hỵp lƯ, v gi tr u lín hn gi tr cui
For i:=100 to 1 do
Write(‘A’);
For i:=1.5 to 10.5 do
Write(‘A’);
ĐS:khng hỵp lƯ, v gi tr u, gi tr cui l d liƯu kiĨu s thc
For i:=1 to 10 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
For i:=10 Downto 1 do
Write(‘A’);
ĐS:Hỵp lƯ, AAAAAAAAAA
NHÓM 1:
For i:=100 to 1 do
Write(‘A’);
NHÓM 2:
For i:=1.5 to 10.5 do
Write(‘A’);
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
For i:=10 Downto 1 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
For i:=10 Downto 1 do
Write(‘A’);
NHÓM 4:
NHÓM 3:
For i:=1 to 10 do
Write(‘A’);
Bài10: Cấu trúc lặp
CỦNG CỐ
Dạng lặp tiến:
Dạng lặp lùi:
For
For
downto
Lặp: Lặp với số lần biết trước
Lặp với số lần chưa biết trước
2.Lặp với số lần biết trước và câu lệnh for …do
Cú pháp :
Cú pháp :
*Hoạt động của lệnh for - do
Xem ví dụ 2/sgk-45.
Và lặp với số lần chưa biết trước và câu lệnh while – do.
Bài tập về nhà: bài: số 3, 6/sgk-51:
Tập thể lớp 11C1 xin chúc sức khoẻ quí
Thầy (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ẻ: Tạ Hoàng Nghị
Dung lượng: |
Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)