Bµi 10. Bµi to¸n 1: Bµi to¸n 2: C¸c bµi to¸n ®Æt vÊn ®Ò : TÝnh tæng S, víi a lµ sè...
-
Upload
jakobe-cossey -
Category
Documents
-
view
218 -
download
0
Transcript of Bµi 10. Bµi to¸n 1: Bµi to¸n 2: C¸c bµi to¸n ®Æt vÊn ®Ò : TÝnh tæng S, víi a lµ sè...
Bµi to¸n 1:
Bµi to¸n 2:
100
1...
2
1
1
11
aaaaS
...1
...2
1
1
11
NaaaaS
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 0001.01
Na
XuÊt ph¸t
aS
1
1
1
a
LÇn 1
2
1
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?
1Sau 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
aaaaS ...
1...
2
1
1
11
NaaaaS
Cho ®Õn khi 000101
. 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.0001Na
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.
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
11S
Ph©n tÝch bµi to¸n víi N = 100
NhËn xÐt:S1 = 1
S2 = S1 + 1/2
S3 = S2 + 1/3
S4 = S3 + 1/4
.....
S100 = S99 + 1/100
1S
B¾t ®Çu tõ S2 viÖc tÝnh S ® îc lÆp ®i lÆp l¹i 99 lÇn theo quy luËt
Ssau = Str íc+ 1/i
víi i ch¹y tõ 2 100
2
1
3
1
4
1 . . .
1100
. . . . . . . . . . . . . . . . . . . .
§
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)
2. LÆp víi sè lÇn lÆp biÕt tr íc
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.
For i:= 100 to 200 do write(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ù.
For i:=1 to 10 do write(i);For i:=‘a’ to ‘z’ do write(i);
Uses crt;Var i,N : Integer; S : real;
BEGIN
Readln;END.
S:=1;
FOR i:=2 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
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 ®Æt vÊn
®Ò.
LËp ch ¬ng tr×nh tÝnh tæng sau:
N
1...
4
1
3
1
2
11S
S := 1 ; i := 2;
i >N KT
S := S +1/ i ;
i := i +1;
2.081.831.51
432L îti
S 2.28
5NhËp N
S := 1 ; i := 2;
2>5 ?
SS
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;
i := 5 +1;
6
SSS
6>5 ?
In Tæng S
Tæng S=2.28
Víi N = 5
2.28
§§
M« pháng thuËt to¸n
3. VÝ dô
TÝnh tæng S (víi a lµ sè nguyªn nhËp vµo tõ bµn phÝm vµ a>2).
100
1...
2
1
1
11
aaaaS
? • 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 aH·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
NaaaaS
Cho ®Õn khi 1
0.0001a 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
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 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 Pascal.
Sai
3. LÆp víi sè lÇn lÆp kh«ng biÕt tr íc
Trong ®ã:
Chõng nµo ®iÒu kiÖn cßn ®óng th× c©u lÖnh cßn ® îc thùc hiÖn.
WHILE 1/(a+N) >= 0.0001
DO
Begin
S:=S+1/(a+N);
N:=N+1;
END;
3. Mét sè vÝ dô
a Bµi to¸n ®Æt vÊ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
NaaaaS
10.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); Readln;END.
LËp ch ¬ng tr×nh nhËp vµo hai sè nguyªn d ¬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, ng îc l¹i th× N:=N-
M;B3: §Õn khi M=N th× => § a ra
¦CLN(M,N)=M;
=> KÕt thóc.
B1: NhËp M,N B2 : While M<>N DO
BeginIF 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
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ÖnSai
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.