Tải bản đầy đủ (.pdf) (8 trang)

Giáo án Tin học 11 - Bài tập và thực hành 2

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 (111.86 KB, 8 trang )

<span class='text_page_counter'>(1)</span>BµI TËP Vµ THùC HµNH 2 Ngµy so¹n: ………… Ngµy gi¶ng: ……….. Người soạn: ……….. I. Mục đích – yêu cầu 1. KiÕn thøc - Cñng cè thªm vÒ cÊu tróc rÏ nh¸nh vµ lÆp. - LuyÖn tËp cÊu tróc lÆp, chó ý víi bµi to¸n t×m tæng cña d·y sè. 2. Kü n¨ng Sau khi đã chuẩn bị bài tập ở nhà, học sinh cần: - Nắm đựơc cấu trúc của câu lệnh rẽ nhánh, và lặp, biết được cách thức hoạt động của từng cấu trúc. - Biết một số thao tác hiệu chỉnh chương trình, và một số chú ý về các vßng lÆp v« h¹n. - Biết cách viết một chương trình hoàn chỉnh và khoa học, cách kiểm tra một chương trình cụ thể thông qua bộ test thử. III. ChuÈn bÞ cña Gi¸o viªn vµ Häc sinh II. Hoạt động dạy và học 1. ổn định lớp - KiÓm tra sÜ sè: Tæng sè: ............... V¾ng: ....................................... Cã phÐp: .............. Kh«ng phÐp: ............................ 2. TriÓn khai bµi míi Hoạt động của giáo viên I. Tãm t¾t lÝ thuyÕt. Hoạt động của học sinh - L¾ng nghe vµ ghi bµi. 1. C©u lÖnh rÏ nh¸nh. Lop11.com.

<span class='text_page_counter'>(2)</span> a. D¹ng thiÕu: If <®iÒu kiÖn > Then <c©u lÖnh>; b. Dạng đủ: If < ®iÒu kiÖn 1> Then <c©u lÖnh1> Else <c©u lÖnh 2>; 2. CÊu tróc lÆp a. Lặp với số lần chưa biết trước While <®iÒu kiÖn> Do <c©u lÖnh>; b. Lặp với số lần biết trước D¹ng tiÕn: For <biến đếm>:= <giá trị đầu> To <gi¸ trÞ cuèi> Do <c©u lÖnh>; D¹ng lïi: For <biến đếm> := <giá trị cuối> DownTo <gi¸ trÞ ®Çu> Do <c©u lÖnh>; Ch÷a bµi tËp: Bµi 1(Sgk_Tr50): Gäi mét häc sinh §Ò bµi: H·y cho biÕt sù gièng vµ kh¸c đọc đầu bài và trả lời câu hỏi đó?. nhau cña hai d¹ng c©u lÖnh If…then. - Gièng nhau: cïng lµ tæ chøc rÏ nhánh, khi gặp một điều kiện nào đó th× lùa chän thùc hiÖn thao t¸c thÝch hîp. - Kh¸c nhau: trong c©u lÖnh If…then d¹ng thiÕu, nÕu ®iÒu kiÖn kh«ng đúng thì thoát khỏi tổ chức rẽ nhánh, vµ thùc hiÖn c©u lÖnh tiÕp theo cña chương trình; còn trong câu lệnh. Lop11.com.

<span class='text_page_counter'>(3)</span> If…then dạng đủ, nếu điều kiện không đúng thì thực hiện lệnh thứ hai, sau đó mới thoát khỏi tổ chức rẽ nh¸nh vµ thùc hiÖn c©u lÖnh tiÕp theo của chương trình. - NhËn xÐt bµi lµm cña häc sinh sau đó nếu thấy chỉ có một ít học sinh làm đúng thì củng cố lại; Bµi 2(Sgk_Tr50): Gäi mét häc sinh TL: C©u lÖnh ghÐp lµ mét c©u lÖnh ®­îc h×nh thµnh tõ nhiÒu c©u lÖnh. đọc đầu bài và trả lời câu hỏi đó?. §Ò bµi: C©u lÖnh ghÐp lµ g×? T¹i sao thµnh phÇn. C©u lÖnh ghÐp nh»m thùc hiÖn thao t¸c gåm nhiÒu thao t¸c. ph¶i cã c©u lÖnh ghÐp?. - LÊy mét vÝ dô cô thÓ vÒ viÖc dïng thµnh phÇn. Mçi thao t¸c thµnh phÇn c©u lÖnh ghÐp cho häc sinh h×nh øng víi mét c©u lÖnh thµnh phÇn hoÆc c©u lÖnh ghÐp kh¸c. VÒ mÆt. dung ®­îc trùc quan h¬n:. VD: Chương trình tính nghiệm của ngôn ngữ lập trình, câu lệnh ghép là một trong các yếu tố để tạo khả năng. phương trình bậc 2. chương trình có cấu trúc. Bµi 3(Sgk_Tr51): Cã thÓ dïng c©u lệnh While…do để thay cho câu lệnh for…do ®­îc kh«ng? NÕu ®­îc, h·y thực hiện điều đó với chương trình Tong_1a. - Với thuật toán Tong_1a câu lệnh - Thể hiện ở bước 2 và 3. for…do được thể hiện ở bước nào và - Câu lệnh: câu lệnh đó như thế nào?. For N:=1 to 100 do S :=S +1.0/(a+N);. - Câu lệnh trên thể hiện vòng lặp với - Có thể thay thế đoạn chương trình. Lop11.com.

<span class='text_page_counter'>(4)</span> số lần biết trước, cụ thể là 100 lần chứa câu lệnh for…do (dạng tiến) bằng (câu lệnh for…do dạng tiến). Vậy ta đoạn chương trình chứa câu lệnh có thể dùng câu lệnh While…do thay While…do. Đoạn chương trình như sau cho ®o¹n c©u lÖnh For…do trªn ®­îc i := 1; không? Đoạn chương trình được sau While i<100 do Begin. khi thay thÕ nh­ thÕ nµo?. S :=S +1.0/(a+N); i := i + 1; end; Bài 4(Sgk_Tr51): Viết câu lệnh rẽ a) Câu lệnh rẽ nhánh dạng đủ: nh¸nh tÝnh:. if (sqr(x)+sqr(y))<=1 then z:=sqr(x)+sqr(y).  x 2  y 2 neu x 2  y 2  1  a) z   x  y neu x 2  y 2  1 va y  x 0.5 neu x 2  y 2  1 va y  x . else if y>=x then z:=x+y else z:=0.5; b) Câu lệnh rẽ nhánh dạng đủ:. | x |  | y | x  y. b) z  . if (sqr(x-a)+sqr(y-b))<=sqr(r) then. - Sö dông c©u lÖnh rÏ nh¸nh d¹ng nµo?. z:=abs(x) + abs(y) else z:= x+y;. - Thể hiện câu lệnh đó?. - Sö dông c©u lÖnh rÏ nh¸nh d¹ng thiÕu:. - Gäi 2 häc sinh lªn b¶ng thÓ hiÖn 2 a) If (sqr(x)+sqr(y)) <=1 then câu lệnh tương ứng với phần a) và b).. z:=sqr(x)+Sqr(y); If (sqr(x)+sqr(y)>1) and (y>=x) then z:= x+y; If (sqr(x)+sqr(y)>1) and (y<x) then z:=0.5; b) if (sqr(x-a)+sqr(y-b))<=sqr(r) then z:=abs(x) + abs(y);. Lop11.com.

<span class='text_page_counter'>(5)</span> if (sqr(x-a)+sqr(y-b))>sqr(r) then z:= x+y; - Nhận xét bài của hai em. Để từ đó chỉ ra đựơc những lỗi hay mắc phải cña HS. L­u ý: Lçi mµ HS hay m¾c ph¶i lµ: thiÕu ngoÆc ë trong tõng vÕ cña phÐp toán đặt trong câu lệnh If…then. - Gọi một em HS nhận xét để nhằm nªu bËt ®­îc tiÖn lîi khi dïng lÖnh dạng đủ và lệnh dạng thiếu với bài nµy vµ mét sè bµi kh¸c. Bµi 5(Sgk_Tr51): LËp tr×nh tÝnh: 50. n n 1 n  1. a) Y  . 1 1!. b) e(n)  1   khi. 1 1  ...   ... cho đến 2! n!. 1 < 2 x 10-6 n!. §­a gi¸ trÞ e(n) ra mµn h×nh. Gîi ý: 50. n 1 2 3 50     ...  2 3 4 51 n 1 n  1. a) Y  . - Xác định câu lệnh ở đây là câu lệnh - Câu lệnh lặp biết trước số lần lặp. gì? Số lần thực hiện của câu lệnh đó?. - LÆp víi sè lÇn n=50.. - Viết câu lệnh đó. - C©u lÖnh: For n:=1 to 50 do Y:=Y+n/(n+1);. - Gọi học sinh lên bảng viết chương Program Bai5_a;. Lop11.com.

<span class='text_page_counter'>(6)</span> tr×nh hoµn chØnh.. Var Y: real; n: byte; Begin Y:=0; For n:=1 to 50 do Y:=Y+n/(n+1); Writeln(‘Ket qua:’,Y:14:6); Readln End.. b) §iÒu kiÖn dõng cñ bµi to¸n. 1 < 2 - Câu lệnh lặp chưa biết trước số lần n!. - Sử dụng thêm biến s để lưu trữ giá. 1 x 10-6 hay <2*1E-6 n!. trÞ. - Xác định câu lệnh ở đây là câu lệnh gì? Số lần thực hiện của câu lệnh đó? - Viết câu lệnh đó. 1 n!. - C©u lÖnh: While s>=2*1E-6 do Begin n:=n+1; s:=s*(1/n); e:=e+s; end;. - Gọi học sinh lên bảng viết chương Program Bai5_b; tr×nh.. Var n : longint; e, s : real; Begin s := 1/2; n := 2; e := 2 + s; While s>=2*1E-6 do Begin. Lop11.com.

<span class='text_page_counter'>(7)</span> n:=n+1; s:=s*(1/n); e:=e+s; end; Writeln(‘Gia tri e(n) la:’,e:10:6); Readln End. - Nhận xét và hoàn thiện chương tr×nh cña häc sinh. Bµi 6(Sgk_Tr51): LËp tr×nh gi¶i bµi to¸n cæ: Võa gµ võa chã. Bã l¹i cho trßn. Ba mươi sáu con. Mét tr¨m ch©n ch½n. Hái cã bao nhiªu con mçi lo¹i? - Xác định Input, Output của bài toán - Input: tổng số gà, chó; tổng số chân - Output: sè gµ, sè chã. - V× gµ + chã = 36 con nªn biÕt sè gµ sÏ suy ra ®­îc sè chã. - Gäi sè gµ lµ x -> sè chã sÏ lµ 36–x, sè ch©n lµ: 2x+4(36-x) - Ta cÇn t×m nh÷ng gi¸ trÞ x tho¶ m·n 2x+4(36-x)=100 - VËy x cã thÓ nhËn nh÷ng gi¸ trÞ - TL: x cã thÓ nhËn c¸c gi¸ trÞ tõ 1 nào? Để thử điều kiện của bài toán có đến 35, hữu hạn nên ta có thể sử thể sử dụng câu lệnh nào để biểu dụng cấu trúc lặp xác định trước số. Lop11.com.

<span class='text_page_counter'>(8)</span> diÔn ®­îc?. lần để thử từng trường hợp của x. - C©u lÖnh: For x:=1 to 35 do If 2*x+4*(36-x)=100 then Writeln(‘So ga:’,x,’So cho:’,36-x);. - Gọi học sinh lên bảng viết chương Program Bai6; tr×nh hoµn chØnh.. Var x:byte; Begin For x:=1 to 35 do If 2*x+4*(36-x)=100 then Writeln(‘So ga:’,x,’So cho:’,36-x); Readln End.. - Trường hợp ngược lại nếu ta đặt số - Trường hợp nếu ta đặt số chó là x chã lµ x, vËy cã t×m ®­îc kÕt qu¶ th× sè gµ sÏ lµ 36-x. Hoµn toµn thu kh«ng? Vßng lÆp ë ®©y thùc hiÖn bao ®­îc kÕt qu¶ nh­ trªn. V× chã cã 4 nhiªu lÇn?. ch©n nªn x cã thÓ nhËn c¸c gi¸ trÞ tõ 1 đến 24. Vòng lặp giảm đi 10 lần. - VËy sö dông c¸ch nµo tèi ­u?. - Nên sử dụng cách đặt số chó là x sẽ tèi ­u v× gi¶m ®­îc sè lÇn lÆp, tiÕt kiÖm thêi gian vµ bé nhí.. IV. Cñng cè vµ dÆn dß Häc sinh - Gi¸o viªn nhËn xÐt kh©u chuÈn bÞ bµi vµ häc bµi cña c¸c em vµ nhÊn m¹nh nh÷ng ®iÓm mµ c¸c em hay m -Về nhà các em làm lại cho hoàn chỉnh các chương trình đã chữa và chuÈn bÞ c¸c bµi sau: bµi 7, 8 trang 51.. Lop11.com.

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

×