Bài 10. Cấu trúc lặp
Chia sẻ bởi Nguyễn Thị Dung |
Ngày 10/05/2019 |
63
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:
Ti?t 12
cấu trúc lặp
Giáo án điện tử tin học lớp 11
(tiết 1)
Bài toán 1:
Bài toán 2:
1. Lặp : Xét 2 bài toán sau
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
Mỗi lần thực hiện giá trị tổng S tang thêm bao nhiêu?
1
Sau mỗi lần thực hiện giá trị tổng S tang thêm ???? ( với i =1; 2; 3 ; ...;N)
a + i
Cùng tỡm thuật toán
Ta thấy cả 2 bài toán này, tính tổng S có nhiều điểm tương tự
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
Việc tang 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.
1. lặp
Lặp là các thao tác được lặp đi lặp lại nhiều lần.
Lặp có 2 loại:
1. Lặp với số lần lặp biết trước
2. Lặp với số lần lặp không biết trước
1. Bài toá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 lặp biết trước và câu lệnh for - do
Phân tích bài toán
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+N)
với N chạy từ 1 ? 100
. . . . . . . . . . . . . . . . . . . .
Phân tích bài toán
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+100)
S2 = S1 + 1/(a+99)
S3 = S2 + 1/(a+98)
.....
S100 = S99 + 1/(a+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
Ssau = Strước+ 1/(a+N)
với N chạy từ 100 ? 1
. . . . . . . . . . . . . . . . . . . .
FOR := TO DO < câu lệnh>;
Ví dụ: S:=1/a;
FOR N:=1 TO 100 DO S:=S+1/(a+N);
b. Dạng l?p lùi
FOR := DOWNTO DO ;
Ví dụ: S:=1/a;
FOR N:=100 DOWNTO 1 DO S:=S+1/(a+N);
a. Dạng l?p ti?n
2. Lặp với số lần lặp biết 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.
S:=0; S:=0;
For i:= 1 to 5 do S:= S + i; For i:=5 downto 1 do S:=S+i;
Trong đó
? Biến đếm là biến don kiểu số nguyên hoặc kí tự.
For i:=1 to 5 do write(i);
For i:=`z` downto `a` do write(i);
2. Lặp với số lần lặp biết trước for - do
FOR := TO DO < câu lệnh>;
FOR := DOWNTO DO ;
Ho?t d?ng c?a l?nh For - do
D?ng l?p ti?n
B1: Tớnh giỏ tr? d?u v giỏ tr? cu?i
B2: Bi?n d?m nh?n giỏ tr? d?u
B3: N?u bi?n d?m <= giỏ tr? cu?i thỡ th?c hi?n cõu l?nh sau DO. Ngu?c l?i thỡ k?t thỳc vi?c l?p.
B4: Sau khi th?c hi?n cõu l?nh bi?n d?m t? d?ng tang lờn 1 don v?.
B5: Quay l?i B3
2. LÆp víi sè lÇn biÕt tríc vµ c©u lÖnh FOR - DO
FOR := TO DO < câu lệnh>;
?Chỳ ý: 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.
Hoạt động của lệnh For - do
Dạng lặp lùi
B1: Tính giá trị đầu và giá trị cuối
B2: Biến đếm nhận giá trị cuối
B3: Nếu biến đếm >= giá trị đầu thì thực hiện câu lệnh sau DO. Ngược lại thì kết thúc việc lặp.
B4: Sau khi thực hiện câu lệnh biến đếm tự động giảm xuống 1 đơn vị
B5: Quay lại B3
2. Lặp với số lần biết trước và câu lệnh FOR - DO
FOR := DOWNTO DO < câu lệnh>;
Đ
S
B1: Nhập a;
B2: S:=1/a; N:=1;
B3: Nếu N > 100 thỡ đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+N);
B5: N := N +1 quay lại B3.
Xây dựng thuật toán
N:= N+1
Uses crt;
Var a,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1/a;
FOR N:=1 to 100 do S := S+1/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua a :`);readln(a);
Program Tinh_tong;
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 trờn
Lập chương trỡnh tính tổng sau:
Đ
S
B1: Nhập a;
B2: S:=1/a; N:=100;
B3: Nếu N < 1 thỡ đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+N);
B5: N := N -1 quay lại B3.
Xây dựng thuật toán
N:= N-1
Uses crt;
Var a,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1/a;
FOR N:=100 downto 1 do S := S+1/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua a :`);readln(a);
Program Tinh_tong;
Lập chương trỡnh tính tổng sau:
Hãy nhớ!
Câu lệnh lặp
FOR:=TO DO
FOR:= DOWNTO DO
Lặp với số lần lặp biết trước.
+ D?ng ti?n:
+ D?ng lựi:
+ Ho?t d?ng c?a cõu l?nh.
+ L?y vớ d?.
3. Ví dụ
VD2: Nhập từ bàn phím 2 số nguyên dương M và N (M Nhập M, N
- T:=0;
- Cho i ch¹y tõ M ®Õn N
- Nếu i chia hết cho 3 hoặc chia hết cho 5 thì T:=T+i;
- Thông báo tổng T ra màn hình
Chương trỡnh nhu sau:
program vd2;
uses crt;
var T: longint;
m,n,i:word;
begin
clrscr;
writeln(`Hay nhap gia tri M nho hon N`);
write(`M= `); readln(m);
write(`N= `); readln(n);
T:=0;
for i:=m to n do
if (i mod 3 =0)or(i mod 5=0) then
t:=t+i;
writeln(`Ket qua: `,t);
readln;
end.
3. Ví dụ
VD3: Tính tổng S: (Nh?p N>2 t? bàn phím )
?
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.
Viết chương trỡnh để giải bài toán trên.
S:=1;
- S:= S + 1/i;
- i chạy từ 2 đến N => Số lần lặp là N-1 lần.
Vi?t chuong trỡnh theo dn ý nhu sau:
- Nh?p N;
- S:=1;
- Cho i chạy từ 2 đến N
S:= S + 1/i;
-Thụng bỏo S
Sau đây là chương trình:
program vd3;
uses crt;
var i,N:integer;
S:real;
begin
clrscr;
write(`Nhap vao N= `);readln(N);
S:=1;
for i:=2 to N do S:=S+1/i;
writeln(`Tong S = `,S:6:2);
readln;
end.
BT về nhà
Tính tổng S (v?i N>=2 nh?p vo t? bn phớm)
BÀI HỌC KẾT THÚC Ở ĐÂY.
XIN MỜI THẦY CÔ, CÁC EM NGHỈ!
cấu trúc lặp
Giáo án điện tử tin học lớp 11
(tiết 1)
Bài toán 1:
Bài toán 2:
1. Lặp : Xét 2 bài toán sau
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
Mỗi lần thực hiện giá trị tổng S tang thêm bao nhiêu?
1
Sau mỗi lần thực hiện giá trị tổng S tang thêm ???? ( với i =1; 2; 3 ; ...;N)
a + i
Cùng tỡm thuật toán
Ta thấy cả 2 bài toán này, tính tổng S có nhiều điểm tương tự
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
Việc tang 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.
1. lặp
Lặp là các thao tác được lặp đi lặp lại nhiều lần.
Lặp có 2 loại:
1. Lặp với số lần lặp biết trước
2. Lặp với số lần lặp không biết trước
1. Bài toá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 lặp biết trước và câu lệnh for - do
Phân tích bài toán
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+N)
với N chạy từ 1 ? 100
. . . . . . . . . . . . . . . . . . . .
Phân tích bài toán
Nhận xét:
S0 = 1/a
S1 = S0 + 1/(a+100)
S2 = S1 + 1/(a+99)
S3 = S2 + 1/(a+98)
.....
S100 = S99 + 1/(a+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
Ssau = Strước+ 1/(a+N)
với N chạy từ 100 ? 1
. . . . . . . . . . . . . . . . . . . .
FOR
Ví dụ: S:=1/a;
FOR N:=1 TO 100 DO S:=S+1/(a+N);
b. Dạng l?p lùi
FOR
Ví dụ: S:=1/a;
FOR N:=100 DOWNTO 1 DO S:=S+1/(a+N);
a. Dạng l?p ti?n
2. Lặp với số lần lặp biết 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.
S:=0; S:=0;
For i:= 1 to 5 do S:= S + i; For i:=5 downto 1 do S:=S+i;
Trong đó
? Biến đếm là biến don kiểu số nguyên hoặc kí tự.
For i:=1 to 5 do write(i);
For i:=`z` downto `a` do write(i);
2. Lặp với số lần lặp biết trước for - do
FOR
FOR
Ho?t d?ng c?a l?nh For - do
D?ng l?p ti?n
B1: Tớnh giỏ tr? d?u v giỏ tr? cu?i
B2: Bi?n d?m nh?n giỏ tr? d?u
B3: N?u bi?n d?m <= giỏ tr? cu?i thỡ th?c hi?n cõu l?nh sau DO. Ngu?c l?i thỡ k?t thỳc vi?c l?p.
B4: Sau khi th?c hi?n cõu l?nh bi?n d?m t? d?ng tang lờn 1 don v?.
B5: Quay l?i B3
2. LÆp víi sè lÇn biÕt tríc vµ c©u lÖnh FOR - DO
FOR
?Chỳ ý: 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.
Hoạt động của lệnh For - do
Dạng lặp lùi
B1: Tính giá trị đầu và giá trị cuối
B2: Biến đếm nhận giá trị cuối
B3: Nếu biến đếm >= giá trị đầu thì thực hiện câu lệnh sau DO. Ngược lại thì kết thúc việc lặp.
B4: Sau khi thực hiện câu lệnh biến đếm tự động giảm xuống 1 đơn vị
B5: Quay lại B3
2. Lặp với số lần biết trước và câu lệnh FOR - DO
FOR
Đ
S
B1: Nhập a;
B2: S:=1/a; N:=1;
B3: Nếu N > 100 thỡ đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+N);
B5: N := N +1 quay lại B3.
Xây dựng thuật toán
N:= N+1
Uses crt;
Var a,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1/a;
FOR N:=1 to 100 do S := S+1/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua a :`);readln(a);
Program Tinh_tong;
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 trờn
Lập chương trỡnh tính tổng sau:
Đ
S
B1: Nhập a;
B2: S:=1/a; N:=100;
B3: Nếu N < 1 thỡ đưa ra giá trị S => Kết thúc;
B4 : S:= S + 1/(a+N);
B5: N := N -1 quay lại B3.
Xây dựng thuật toán
N:= N-1
Uses crt;
Var a,N : Integer; S : real;
BEGIN
Readln;
END.
S:=1/a;
FOR N:=100 downto 1 do S := S+1/(a+N);
Writeln(` Tong S =`,S:8:3);
Write(` Nhap vao gia tri cua a :`);readln(a);
Program Tinh_tong;
Lập chương trỡnh tính tổng sau:
Hãy nhớ!
Câu lệnh lặp
FOR
FOR
Lặp với số lần lặp biết trước.
+ D?ng ti?n:
+ D?ng lựi:
+ Ho?t d?ng c?a cõu l?nh.
+ L?y vớ d?.
3. Ví dụ
VD2: Nhập từ bàn phím 2 số nguyên dương M và N (M
- T:=0;
- Cho i ch¹y tõ M ®Õn N
- Nếu i chia hết cho 3 hoặc chia hết cho 5 thì T:=T+i;
- Thông báo tổng T ra màn hình
Chương trỡnh nhu sau:
program vd2;
uses crt;
var T: longint;
m,n,i:word;
begin
clrscr;
writeln(`Hay nhap gia tri M nho hon N`);
write(`M= `); readln(m);
write(`N= `); readln(n);
T:=0;
for i:=m to n do
if (i mod 3 =0)or(i mod 5=0) then
t:=t+i;
writeln(`Ket qua: `,t);
readln;
end.
3. Ví dụ
VD3: Tính tổng S: (Nh?p N>2 t? bàn phím )
?
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.
Viết chương trỡnh để giải bài toán trên.
S:=1;
- S:= S + 1/i;
- i chạy từ 2 đến N => Số lần lặp là N-1 lần.
Vi?t chuong trỡnh theo dn ý nhu sau:
- Nh?p N;
- S:=1;
- Cho i chạy từ 2 đến N
S:= S + 1/i;
-Thụng bỏo S
Sau đây là chương trình:
program vd3;
uses crt;
var i,N:integer;
S:real;
begin
clrscr;
write(`Nhap vao N= `);readln(N);
S:=1;
for i:=2 to N do S:=S+1/i;
writeln(`Tong S = `,S:6:2);
readln;
end.
BT về nhà
Tính tổng S (v?i N>=2 nh?p vo t? bn phớm)
BÀI HỌC KẾT THÚC Ở ĐÂY.
XIN MỜI THẦY CÔ, CÁC EM NGHỈ!
* 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 Thị Dung
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)