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

bai 10

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 (547.22 KB, 22 trang )

<span class='text_page_counter'>(1)</span>Bµi 10. Gi¸o ¸n ®iÖn tö tin häc líp 11.

<span class='text_page_counter'>(2)</span> Các bài toán đặt vấn đề : Tính tổng S, với a là số nguyên và a>2. Bµi to¸n 1:. 1 1 1 1 S    ...  a a 1 a  2 a  100 Bµi to¸n 2:. 1 1 1 1 S    ...   ... a a 1 a  2 aN cho đến khi. 1  0.0001 aN.

<span class='text_page_counter'>(3)</span> Cïng t×m thuËt to¸n. XuÊt ph¸t. LÇn 1. LÇn 2. LÇn N. 1 1 1 S    a a 1 a  2. +…. 1  aN. 1 thªm bao nhiªu? Mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng . 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.

<span class='text_page_counter'>(4)</span> t×m sù kh¸c biÖt Bµi to¸n 1: 1 1 1 1 S    ...  a a 1 a  2 a  100. Bµi to¸n 2: 1 1 1 1 S    ...   ... a a 1 a  2 aN Cho đến khi. • ViÖc t¨ng gi¸ trÞ cho tổng S đợc lặp đi lặp l¹i 100 lÇn.. 1  0.0001 aN. • ViÖc t¨ng gi¸ trÞ cho tæng S đợc lặp đi lặp lại cho đến khi. 1  0.0001 aN.  Sè lÇn lÆp biÕt tríc..  Sè lÇn lÆp cha biÕt tríc..

<span class='text_page_counter'>(5)</span> CÊu tróc lÆp.

<span class='text_page_counter'>(6)</span> I. LÆp víi sè lÇn lÆp biÕt tríc 1. Bài toán đặt vấn đề. LËp ch¬ng tr×nh tÝnh tæng sau:. 1 1 1 1 S 1     ...  2 3 4 N Hãy xác định INPUT vµ - D÷ liÖu OUTPUT vµo (Input) cña : bµi to¸n trªn!. NhËp N. - D÷ liÖu ra (Output) :. Tæng S.

<span class='text_page_counter'>(7)</span> Ph©n tÝch bµi to¸n víi N = 100. 1 1 1 1 S 1     . . .  2 3 4 100 ..................... S1 = 1. NhËn xÐt:. S2 = S1 + 1/2. S3 = S2 + 1/3 S4 = S3 + 1/4. ...... S100 = S99 + 1/100. 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.

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

<span class='text_page_counter'>(9)</span> 2. LÆp víi sè lÇn lÆp biÕt tríc a. D¹ng 1 (d¹ng tiÕn). 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;.

<span class='text_page_counter'>(10)</span> 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);.  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);.

<span class='text_page_counter'>(11)</span> LËp ch¬ng tr×nh tÝnh tæng sau:. 1 1 1 1 S 1     ...  2 3 4 N Program Tinh_tong; Uses crt; Var i,N : Integer; S : real; H·y ¸p dông c©u. BEGIN S:=1;. lÖnh lÆp d¹ng tiến để viết ch ¬ng tr×nh gi¶i bµi toán đặt vấn đề.. Write(‘ Nhap vao gia tri cua N :’);readln(N); FOR i:=2 to N do S := S+1/i; Writeln(‘ Tong S =’,S:8:3); Readln; END..

<span class='text_page_counter'>(12)</span> M« pháng thuËt to¸n. Víi NhËp N= N5. i. Lît. 2. 3. 4. 5. 6. S. 1. 1.5. 1.83. 2.08. 2.28. S := 1 ; i := 2; § i >N? 6>5 2>5 3>5 4>5 5>5 SS S S S SS:= := := :=1.83+1/4 2.08+1/5; 1.5+1/3 S 1 +1/2 +1/ i ;;; i := ii := := 5 +1; 2i +1; 3 4 +1;. Tæng In Tæng S=2.28 S. KT.

<span class='text_page_counter'>(13)</span> 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).. 1 1 1 1 S     ...  a a 1 a  2 a  100 ?. • 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..

<span class='text_page_counter'>(14)</span> II. LÆp víi sè lÇn lÆp kh«ng biÕt tríc 1. Bµi to¸n TÝnh gi¸ trÞ tæng S, víi a lµ sè nguyªn vµ a>2.. 1 1 1 1 S    ...   ... a a 1 a  2 aN Cho đến khi. 1  0.0001 th× dõng l¹i. aN. D÷ liÖu vµo (Input) :. NhËp a. Hãy xác định D÷ liÖu ra (Output) : Tæng S INPUT, OUTPUT vµ nªu thuËt to¸n gi¶i bµi to¸n trªn?.

<span class='text_page_counter'>(15)</span> thuËt to¸n Bíc 1: NhËp a. Bíc 2: S:=1/a; N:=1; {Khëi t¹o S vµ N}. NhËp a. S:=1/a ; N:=1. 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. S 1/(a+N) >= 0.0001 § S:= S+1/(a+N); N:= N+1;. Bíc 5: In S => KÕt thóc.  Vßng lÆp chØ dõng khi 1/(a+N)<0.0001. §a ra S => KÕt thóc.

<span class='text_page_counter'>(16)</span> 2. LÆp víi sè lÇn lÆp kh«ng biÕt tríc. WHILE <§iÒu kiÖn> DO <C©u lÖnh>;. Trong đó:. §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. §iÒu kiÖn §óng C©u lÖnh. Chừng nào điều kiện còn đúng thì câu lệnh còn đợc thực hiện..

<span class='text_page_counter'>(17)</span> 3. Mét sè vÝ dô a. Bài toán đặt vấn đề:. TÝnh gi¸ trÞ tæng S, víi a lµ sè nguyªn vµ a>2. 1 1 1 1 S    ...   ... a a 1 a  2 aN Cho đến khi. 1  0.0001 th× dõng l¹i. aN. WHILE 1/(a+N) >= 0.0001 DO. NhËn xÐt: Chõng nµo 1/(a+N)>=0.0001 th× cßn thùc. Begin. hiÖn: + T¨ng gi¸ trÞ cña tæng S thªm 1/(a+N).. S:=S+1/(a+N); N:=N+1;. + Tăng N thêm 1 đơn vị.. END;.

<span class='text_page_counter'>(18)</span> 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..

<span class='text_page_counter'>(19)</span> b. 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ố đó.. ThuËt to¸n. B1: NhËp M,N; B2 : Chõng nµo MN 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.. c¸c bíc viÕt ch¬ng tr×nh. 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).

<span class='text_page_counter'>(20)</span> 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>;. C©u lÖnh. Sai. §iÒu kiÖn §óng.

<span class='text_page_counter'>(21)</span> 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 S:=S+1/(a+N); N:=N+1 UNTIL 1/(a+N)< 0.0001; Writeln(‘Gia tri cua tong S = ‘,S:8:3); Readln; END.. {Bat dau lap}. {Ket thuc lap}.

<span class='text_page_counter'>(22)</span> H·y nhí!  C©u lÖnh rÏ nh¸nh. IF <®k> THEN <c©u lÖnh>;. + D¹ng khuyÕt.. IF <®k> THEN <c©u lÖnh 1>. + Dạng đầy đủ.. ESLE <c©u lÖnh 2>;.  C©u lÖnh lÆp FOR ... TO ... DO ...…. + LÆp víi sè lÇn lÆp biÕt tríc.. FOR ... Downto ... DO ... While <®k> Do <c©u lÖnh>;. + LÆp víi sè lÇn lÆp kh«ng biÕt tríc..

<span class='text_page_counter'>(23)</span>

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

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