Bài 10. Cấu trúc lặp
Chia sẻ bởi Vương Quốc Tân |
Ngày 10/05/2019 |
134
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`);
End;
Hãy quan sát và cho biết :
Mỗi tình huống mô tả điều gì được lặp lại ? Và lặp bao nhiêu lần ?
Tớ phải bị phạt đi tới đi lui như thế này cho tới bao giờ ?
Còn tớ phải bị phạt tập thể dục như thế này cho tới bao giờ ?
Cậu phải làm 100 lần như thế.
Cấu trúc lặp mô tả điều gì?
Có mấy loại lặp?
Cậu phải đi cho đến khi trời mưa.
Tình
huống 1
Tình
huống 2
Bài toán 1:
Bài toán 2:
1. 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
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 N =1, 2, 3 , ...)
a + n
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?
*. 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!
2. Lặp với số lần biết trước và câu lệnh for - do
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+n)
với n 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: S?1/a; N?0;
B3: Nếu N >100 thì sang B5;
B4 : S? S + 1/(a+N) rồi quay lại bước 2;
B2: N ? N +1;
Xây dựng thuật toán
Thuật toán Tong_1a
B1: S?1/a; N ?101;
B3: Nếu N<1 thì chuyển đến b5;
B4 : S? S + 1/(a+N) rồi quay lại bước 2;
B2: N ?N -1;
Thuật toán Tong_1b
Nhận xét:
B5. Đưa S ra màn hình rồi kết thúc.
B5: Đưa ra S ra màn hình rồi kết thúc.
Thuật toán Tong_1a, giá trị N bắt đầu tham gia vòng lặp là 1 sau mỗi lần lặp N tăng lên 1 cho đến khi N > 100 (N = 101) thì kết thúc lặp (thực hiện 100 lần).
Thuật toán Tong_1b, giá trị N bắt đầu tham gia vòng lặp là 100 sau mỗi lần lặp N giảm đi 1 cho đến khi N < 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.
S := 1 ; N := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
N
S
2.28
5
Nhập N
S := 1 ; N := 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;
N := 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
FOR := TO DO < câu lệnh>;
VD1: S:=1/a;
FOR N := 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 và cấu trúc for - do
? 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.
? 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ự.
Uses crt;
Var
BEGIN
Readln;
END.
FOR N := 1 to 100 do
S := S+1.0/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua N :`);readln(N);
Program Tinh_tong1a;
S:=1.0 /a;
a,N : Integer;
S : real;
CLRSCR;
Uses crt;
Var
BEGIN
Readln;
END.
FOR N := 101 downto 1 do
S := S+1.0/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua N :`);readln(N);
Program Tinh_tong1b;
S:=1.0 /a;
a,N : Integer;
S : real;
CLRSCR;
Ví dụ 2:
Chương trình thực hiện việc nhập từ bàn phím hai số nguyên dương M và N (MHã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`);
End;
Hãy quan sát và cho biết :
Mỗi tình huống mô tả điều gì được lặp lại ? Và lặp bao nhiêu lần ?
Tớ phải bị phạt đi tới đi lui như thế này cho tới bao giờ ?
Còn tớ phải bị phạt tập thể dục như thế này cho tới bao giờ ?
Cậu phải làm 100 lần như thế.
Cấu trúc lặp mô tả điều gì?
Có mấy loại lặp?
Cậu phải đi cho đến khi trời mưa.
Tình
huống 1
Tình
huống 2
Bài toán 1:
Bài toán 2:
1. 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
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 N =1, 2, 3 , ...)
a + n
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?
*. 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!
2. Lặp với số lần biết trước và câu lệnh for - do
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+n)
với n 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: S?1/a; N?0;
B3: Nếu N >100 thì sang B5;
B4 : S? S + 1/(a+N) rồi quay lại bước 2;
B2: N ? N +1;
Xây dựng thuật toán
Thuật toán Tong_1a
B1: S?1/a; N ?101;
B3: Nếu N<1 thì chuyển đến b5;
B4 : S? S + 1/(a+N) rồi quay lại bước 2;
B2: N ?N -1;
Thuật toán Tong_1b
Nhận xét:
B5. Đưa S ra màn hình rồi kết thúc.
B5: Đưa ra S ra màn hình rồi kết thúc.
Thuật toán Tong_1a, giá trị N bắt đầu tham gia vòng lặp là 1 sau mỗi lần lặp N tăng lên 1 cho đến khi N > 100 (N = 101) thì kết thúc lặp (thực hiện 100 lần).
Thuật toán Tong_1b, giá trị N bắt đầu tham gia vòng lặp là 100 sau mỗi lần lặp N giảm đi 1 cho đến khi N < 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.
S := 1 ; N := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.08
1.83
1.5
1
4
3
2
Lượt
N
S
2.28
5
Nhập N
S := 1 ; N := 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;
N := 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
FOR
VD1: S:=1/a;
FOR N := 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 và cấu trúc for - do
? 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.
? 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ự.
Uses crt;
Var
BEGIN
Readln;
END.
FOR N := 1 to 100 do
S := S+1.0/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua N :`);readln(N);
Program Tinh_tong1a;
S:=1.0 /a;
a,N : Integer;
S : real;
CLRSCR;
Uses crt;
Var
BEGIN
Readln;
END.
FOR N := 101 downto 1 do
S := S+1.0/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua N :`);readln(N);
Program Tinh_tong1b;
S:=1.0 /a;
a,N : Integer;
S : real;
CLRSCR;
Ví dụ 2:
Chương trình thực hiện việc nhập từ bàn phím hai số nguyên dương M và N (M
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ẻ: Vương Quốc Tân
Dung lượng: |
Lượt tài: 3
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)