Bài 10: Cấu Trúc Lặp - Pdf 18


Bµi
10
Gi¸o ¸n ®iÖn tö tin häc líp 11
(2 tiÕt)

Bµi to¸n 1:
Bµi to¸n 2:
100
1

2
1
1
11
+
++
+
+
+
+=
aaaa
S

1

2
1
1
11
+

a
Lần 2
+
Lần N
Na +
+
1
Mỗi lần thực hiện giá trị tổng S tăng thêm bao nhiêu?
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

Bài toán 1: Bài toán 2:
100
1

2
1
1
11
+
++
+
+
+

1
<
+

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Ê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 N
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
N
1

4
1
3
1
2
1

+
. . .+ +
1
100
. . . . . . . . . . . . . . . . . . . .

§
S
NhËp N
S:= 1 ; i:= 2
i > N ?
S:= S + 1/i
§ a ra S råi kÕt thóc
B1: NhËp N;
B2: S:=1; i:=2;
B3: NÕu i > N th× ® a ra gi¸ trÞ
S => KÕt thóc;
B4 : S:= S + 1/i;
B5: i := i +1 quay l¹i B3.
X©y dùng thuËt to¸n
i:= i+1

FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
Ví dụ: S:=1;
FOR i:=2 TO 100 DO S:=S+1/i;
b. Dạng 2 (dạng lùi)
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >;
Ví dụ: S:=1;
FOR i:=100 DOWNTO 2 DO S:=S+1/i;
a. Dạng 1 (dạng tiến)

toán đặt vấn đề.
Lập ch ơng trình tính tổng sau:
N
1

4
1
3
1
2
1
1S +++++=

S := 1 ; i := 2;
i >N
KT
S := S +1/ i ;
i := i +1;
2.081.83
1.51
432
L îti
S
2.28
5
NhËp N
S := 1 ; i := 2;
2>5 ?
S
S

1
11
+
++
+
+
+
+=
aaaa
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.

Viết ch ơng trình để giải bài toán trên.
-
S:=1/a;
- S:= S + 1/(a+i);
- i chạy từ 1 đến 100 => Số lần lặp là 100 lần.

1. Bài toán
Dữ liệu ra (Output) : Tổng S
Dữ liệu vào (Input) : Nhập a
Hãy xác định
INPUT, OUTPUT
và nêu thuật toán
giải bài toán trên?

1

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.
S:=1/a ; N:=1
Đ a ra S
=> Kết thúc
S:= S+1/(a+N);
N:= N+1;
Vòng lặp chỉ dừng khi 1/(a+N)<0.0001
Nhập a
S
Đ
1/(a+N) >= 0.0001
B ớc 5: In S => Kết thúc.

WHILE
<§iÒu kiÖn>
DO
<C©u lÖnh>
;
§iÒu kiÖn
§óng
C©u lÖnh
§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

+
+
+
+=
Naaaa
S
1
0.0001
a N
<
+
Tính giá trị tổng S, với a là số nguyên và a>2
thì dừng lại.
Cho đến khi

Ch ¬ng tr×nh
Program Bai_toan;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
S:=1/a;N:=1;
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);

<§iÒu kiÖn
>;
§iÒu kiÖn
Sai
C©u lÖnh
§óng

Bµi to¸n ®Æt vÊn ®Ò:
Program Bai_toan;
Uses Crt;
Var a,N:Integer;
S:Real;
BEGIN
Clrscr;
Write(‘Nhap gia tri cua a= ‘);Readln(a);
S:=1/a;N:=1;
REPEAT {Bat dau lap}
S:=S+1/(a+N);
N:=N+1
UNTIL 1/(a+N)< 0.0001; {Ket thuc lap}
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
Readln;
END.

Hãy nhớ!

Câu lệnh rẽ nhánh.

Câu lệnh lặp
IF <đk> THEN <câu lệnh>;


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status