Tải bản đầy đủ (.ppt) (14 trang)

Bài 10 - Cau truc lap

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (624.93 KB, 14 trang )


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

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

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

1

2
1
1
11
+
+


++
+
+
+
+=
Naaaa
S
Bµi to¸n : TÝnh tæng S, víi a lµ sè nguyªn vµ a>2
cho ®Õn khi
0001.0
1
<
+ Na

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

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


1

2
1
1
11
+
+
++
+
+
+
+=
Naaaa
S
Cho đến khi
00010
1
.<
+ Na
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
0.0001
Na
1
<
+


Việc tăng giá trị cho
tổng S đợc lặp đi lặp
lại
tìm sự khác biệt
Số lần lặp cha biết trớc.
100 lần.

CÊu tróc lÆp

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

1

2
1
1
11
+
+
++
+
+
+

+=
Naaaa
S
Cho đến khi
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.
II. Lặp với số lần lặp không biết trớc
Nh p a
T ng S

Bớc 2:
S:=1/a; N:=1;
{Khởi tạo S và N}
Bớc 3:
Nếu 1/(a+N) < 0.0001
=> Bớc 5
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
Nhập a
S
Đ
1/(a+N) >= 0.0001
Bớc 5: In S => Kết thúc.
1/(a+N)<0.0001

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
Pascal.
Sa
i
3. LÆp víi sè lÇn lÆp cha biÕt tríc vµ c©u lÖnh
while do:–
Trong ®ã:
Chõng nµo ®iÒu kiÖn cßn ®óng th× c©u lÖnh cßn ®5îc thùc hiÖn.
(Ghi tập)


WHILE 1/(a+N) >= 0.0001 DO
Begin
S:=S+1/(a+N);
N:=N+1;
END;
Ví dụ 1: (sgk)
Bài toán :
Nhận xét:
Chừng nào 1/(a+N)>=0.0001 thì còn thực
hiện:
+ Tăng giá trị của tổng S thêm 1/(a+N).
+ Tăng N thêm 1 đơn vị.

1

2
1
1
11
+
+
++
+
+
+
+=
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 Tinhtong_2;
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);
Readln;
END.
(Ghi tập)

Lập ch5ơng trình nhập vào hai số nguyên d5ơng
M,N. Tìm ƯCLN của hai số đó.
B1: Nhập M,N;

B2 : Chừng nào MN
nếu M>N thì M:=M-N,
ngGợc lại thì N:=N-M;
B3: Đến khi M=N thì
=> ĐGa ra ƯCLN(M,N)=M;
=> Kết thúc.
B1: Nhập M,N
B2 : While M<>N DO
Begin
IF M>N then M:=M - N
else N:=N - M;
end;
B3: In ƯCLN(M,N)
Thuật
toán
các bớc viết chơng
trình
Ví dụ 2: (sgk)

Ch$¬ng tr×nh
Program UCLN;
Uses Crt;
Var M,N:Integer;
BEGIN
Clrscr;
Write(‘M, N= ‘);Readln(M,N);
WHILE M <> N DO
IF M>N then M:=M - N
else N:=N - M;
Writeln(‘UCLN = ‘,M);

Readln;
END.
(Ghi tập)
* Chó ý: (SGK)

Tham kh¶o:
D¹ng kh¸c cña c©u lÖnh lÆp víi sè lÇn lÆp kh«ng biÕt tríc
REPEAT
<C©u lÖnh>
UNTIL
<§iÒu kiÖn
>;
§iÒu kiÖn
Sai
C©u lÖnh
§óng

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;
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);
Readln;
END.

Toựm taột!

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

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

IF <đk> THEN <câu lệnh 1>
ESLE <câu lệnh 2>;
FOR Dow nto DO

Whil e <đk> Do <câu lệnh>;
+
Dạng khuyết.
+
Dạng đầy đủ.
+
Lặp với số lần lặp biết trGớc.
+
Lặp với số lần lặp không biết
trGớc.

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×