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 aN cho đến khi. 1 0.0001 aN.
<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 aN. 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 aN 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 aN. • ViÖc t¨ng gi¸ trÞ cho tæng S đợc lặp đi lặp lại cho đến khi. 1 0.0001 aN. 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 aN Cho đến khi. 1 0.0001 th× dõng l¹i. aN. 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 aN Cho đến khi. 1 0.0001 th× dõng l¹i. aN. 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 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.. 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>