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è...

22
Bµi 10

Upload: jakobe-cossey

Post on 14-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Bµi

10

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.

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

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.

H·y nhí!

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 ... Downto ... DO ...

While <®k> Do <c©u lÖnh>;

+D¹ng khuyÕt.

+D¹ng ®Çy ®ñ.

+ 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.