bai 18 vi du ve cach viet va su dung ctc
TRANSCRIPT
Ngöôøi thöïc hieän: TRAÀN VAÊN SÓToå: Toaùn – Tin.
Taäp theå lôùp 11B4 - Kính chaøo quyù Thaày coâ.
SÔÛ GIAÙO DUÏC VAØ ÑAØO TAÏO HAØ GIANG
Tröôøng THPT Ñoàng Yeân
Chöông 6: CHÖÔNG TRÌNH CON VAØ
LAÄP TRÌNH COÙ CAÁU TRUÙC
Chöông trình con laø gì ?
Phaân loaïi chöông trình con ?
Ñieåm khaùc nhau cô baûn giöõa haøm vaø thuû tuïc ?
•1. Caùch vieát vaø söû duïng thuû tuïc
• a. Caáu truùc cuûa thuû tuïc• b. Ví duï veà thuû tuïc•2. Caùch vieát vaø söû duïng
haøm
• Xeùt ví duï veõ hình chöõ nhaät coù daïng sau:
• * * * * * * *• * *• * * * * * * *
•1. Caùch vieát vaø söû duïng thuû tuïc
Ñeå veõ hình chöõ nhaät treân, ta caàn duøng
nhöõng caâu leänh naøo?
writeln(‘* * * * * * *’);writeln(‘* *’);writeln(‘* * * * * * *’);
procedure Ve_Hcn;• begin
writeln(‘* * * * * * *’);writeln(‘* *’);writeln(‘* * * * * * *’);
• end;
•1. Caùch vieát vaø söû duïng thuû tuïc
{baét ñaàu thuû tuïc}
{keát thuùc thuû tuïc}
procedure <teân thuû tuïc> [(<danh saùch tham soá>)];
• [<phaàn khai baùo>]begin
[<daõy caùc leänh>]end;
•1. Caùch vieát vaø söû duïng thuû tuïc•a. Caáu truùc cuûa thuû tuïc:
procedure
;
Chuù yù:
Khaùc vôùi chöông trình chính keát thuùc laø daáu chaám (.) sau töø khoaù End coøn sau end keát thuùc thuû tuïc laø daáu chaám phaåy (;).
Khi thöïc hieän, ta phaûi vieát leänh goïi thuû tuïc töông töï nhö caùc thuû tuïc chuaån. Trong Pascal leänh goïi thöïc hieän thuû tuïc nhö sau:
<teân thuû tuïc>[(caùc tham soá thöïc söï)];
program VD_thutuc1;procedure Ve_Hcn; begin
writeln('* * * * * * *'); writeln('* *'); writeln('* * * * * * *'); end;begin Ve_Hcn; writeln;writeln; Ve_Hcn; writeln;writeln; Ve_Hcn; readlnend.
•1. Caùch vieát vaø söû duïng thuû tuïc
Thuû tuïc Ve_Hcn(chöông trình con
Ve_Hcn)
Leänh goïi chöông trình con
program VD_thutuc1;procedure Ve_Hcn; begin writeln('* * * * * * *'); writeln('* *'); writeln('* * * * * * *'); end;Begin Ve_Hcn; writeln;writeln; Ve_Hcn; writeln;writeln; Ve_Hcn; readlnend.
Giaû söû ta caàn veõ nhieàu hình chöõ nhaät vôùi kích
thöôùc khaùc nhau (25x10; 5x10; 4x2), thuû tuïc naøy coù
thöïc hieän ñöôïc khoâng ?
Ñeå giaûi quyeát baøi toaùn treân, thuû tuïc Ve_Hcn ñöôïc
vieát laïi nhö theá naøo ?
•1. Caùch vieát vaø söû duïng thuû tuïc
• Ví duï 1: Chöông trình veõ caùc hình chöõ nhaät coù kích thöôùc khaùc nhau baèng caùch duøng thuû tuïc Ve_Hcn vôùi caùc tham soá chdai, chrong. Giaù trò cuûa caùc tham soá chdai, chrong laø nguyeân (integer).
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
Khi ñoù phaàn ñaàu cuûa thuû tuïc ñöôïc vieát nhö sau: procedure Ve_hcn(chdai, chrong: integer);
Khi ñoù phaàn ñaàu cuûa thuû tuïc Ve_Hcn ñöôïc vieát
nhö theá naøo?
1. procedure Ve_Hcn(chdai, chrong: integer);2. var i, j: integer;3. begin4. for i:=1 to chdai do write('*');5. writeln;6. for j:=1 to chrong-2 do
begin write('*');
for i:=1 to chdai-2 do write(' '); writeln('*'); end;
7. for i:=1 to chdai do write('*');8. writeln;9. end;
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
Tham soá hình thöùc
Veõ caïnh treân cuûa hình chöõ nhaät
Veõ hai caïnh beân
Veõ caïnh döôùi
begin clrscr; Ve_Hcn(25,10); writeln;writeln; Ve_Hcn(5,10); readln; clrscr; a:=4; b:=2; for i:=1 to 4 do begin Ve_Hcn(a,b); readln; clrscr; a:=a*2; b:=b*2; end; readln;end.
* Trong leänh goïi thuû tuïc, caùc tham soá hình thöùc ñöôïc thay baèng caùc tham soá thöïc söï töông öùng laø caùc giaù trò cuï theå ñöôïc goïi laø tham soá giaù trò (tham trò).•Caâu leänh goïi thuû tuïc coù daïng:•<teân thuû tuïc>[(caùc tham soá thöïc söï)];
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
• Ví duï 2: Chöông trình hoaùn ñoåi giaù trò cuûa hai bieán, baèng caùch duøng thuû tuïc Hoan_doi.
x yTG
TG
TG
x yTG
x y
TG := x (1)
x := y (2)
y := TG (3)
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
1. program VD_thambien1;2. uses crt;3. var a, b: integer;4. procedure Hoan_doi(var x,y: integer);5. var TG: integer;6. begin TG:= x; x:= y; y:= TG; end;7. begin8. clrscr;9. a:=5; b:=10;10. writeln(a:6, b:6);11. Hoan_doi(a,b);12. writeln(a:6, b:6);13. readln;14. end.
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
Tham soá hình thöùc laø caùc tham soá bieán
Leänh goïi thuû tuïc Hoan_doi vôùi caùc tham soá ñöôïc thay
baèng caùc bieán
Thay ñoåi giaù trò cuûa caùc bieán
program VD_thambien1;uses crt;var a, b: integer;procedure Hoan_doi(var x,y: integer); var TG: integer; begin TG:= x; x:= y; y:= TG; end;begin clrscr; a:=5; b:=10; writeln(a:6, b:6); Hoan_doi(a,b); writeln(a:6, b:6); readln;end.
•Trong leänh goïi thuû tuïc, caùc tham soá hình thöùc ñöôïc thay baèng caùc tham soá thöïc söï töông öùng laø teân caùc bieán chöùa döõ lieäu ra ñöôïc goïi laø caùc tham soá bieán (tham bieán).•Ñeå phaân bieät tham bieán vaø tham trò, Pascal söû duïng töø khoùa var ñeå khai baùo cho nhöõng tham soá bieán.
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
program VD_thambien2;uses crt;var a, b: integer;procedure Hoan_doi(x: integer; var y: integer); var TG: integer; begin TG:= x; x:= y; y:= TG; end;begin clrscr; a:=5; b:=10; writeln(a:6, b:6); Hoan_doi(a,b); writeln(a:6, b:6); readln;end.
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
Khaùc nhau trong khai baùo tham soá hình thöùc
Khaùc nhau ôû keát quaû sau khi thöïc hieän thuû tuïc
Ñieåm khaùc nhau giöõa tham trò vaø
tham bieán ?
•* Tham soá bieán ñöôïc duøng ñeå ghi laïi•döõ lieäu keát quaû cuûa vieäc thöïc hieän•thuû tuïc.•* Tham soá giaù trò chæ ñeå ñöa döõ lieäu•vaøo cho thuû tuïc khi baét ñaàu thöïc hieän•thuû tuïc.
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
1. program VD_thambien2;2. uses crt;3. var a, b: integer;4. procedure Hoan_doi(x: integer; var y: integer);5. var TG: integer;6. begin
TG:= x; x:= y; y:= TG; end;
7. begin8. clrscr;9. a:=5; b:=10;10. writeln(a:6, b:6);11. Hoan_doi(a,b);12. writeln(a:6, b:6);13. readln;14.end.
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
procedure Hoan_doi(var x: integer; y: integer);
Keát quaû nhaän ñöôïc (treân maøn hình) nhö theá naøo
khi thöïc hieän chöông trình ?
* Chuù yù:• - Khi khai baùo caùc tham soá hình
thöùc, neáu coù kieåu khaùc nhau thì caùc tham soá seõ caùch nhau baèng daáu chaám phaåy, neáu coù cuøng kieåu thì caùch nhau baèng daáu phaåy.
• Ví duï: • procedure CTC(x, y, z: integer; r:
real);
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
* Chuù yù:• - Khi khai baùo döõ lieäu cho caùc tham
soá hình thöùc chæ ñöôïc duøng teân kieåu. Teân kieåu laø teân chuaån hoaëc teân do ngöôøi laäp trình ñaët.
• Ví duï: Khai baùo hôïp leä:
procedure Alpha(N: integer; var s: string);
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
-Khai baùo khoâng hôïp leä:procedure Delta(M: array[1..10] of byte; var X:
string[25]);
-Khai baùo hôïp leä:type mang = array[1..10] of byte; xau = string[25];
procedure Delta(M: mang; var X: xau);
•b. Ví duï veà thuû tuïc•1. Caùch vieát vaø söû duïng thuû tuïc
CUÛNG COÁ VAØ LUYEÄN TAÄPCUÛNG COÁ VAØ LUYEÄN TAÄP
Caùch vieát moät thuû tuïc trong ngoân ngöõ laäp trình Pascal. Hieåu moái lieân quan giöõa chöông trình chính vaø thuû tuïc; Leänh goïi thöïc hieän thuû tuïc trong chöông trình chính;
Tham soá bieán vaø tham soá giaù trò;
CUÛNG COÁCUÛNG COÁ
1. Töø khoùa ñeå khai baùo thuû tuïc laø:A. Program B. ProcedureC. Function D. Processor
2. Muoán khai baùo x, y laø tham soá giaù trò (x, y thuoäc kieåu integer) trong thuû tuïc coù teân laø “ABC” thì khai baùo naøo sau ñaây laø ñuùng?A. Procedure ABC(x, y: integer);B. Procedure ABC(var x, y: integer);C. Procedure ABC(x: integer; var y: integer);D. Procedure ABC(var x: integer; y: integer);
CUÛNG COÁ
3. Muoán khai baùo x laø tham soá giaù trò, y vaø z laø tham soá bieán (x, y, z thuoäc kieåu integer) trong thuû tuïc coù teân laø “CTC” thì khai baùo naøo sau ñaây laø ñuùng?A. Procedure CTC(x, y, z: integer);B. Procedure CTC(var x, y, z: integer);C. Procedure CTC(var x:integer; y, z: integer);D. Procedure CTC(x: integer; var y, z: integer);
CUÛNG COÁ
4. Cho chöông trình sau:var a, b, c: integer; procedure Hoan_doi(var a, b: integer); var TG: integer; begin TG:= a; a:= b; b:= TG; end; begin clrscr; a:= 10; b:= 11; c:= 12; Hoan_doi(b,c); Hoan_doi(a,b); Hoan_doi(b,c); writeln(a, ‘ ’, b ‘ ’, c);end.
Keát quaû nhaän ñöôïc (treân maøn hình) sau khi thöïc hieän chöông trình laø:A. 10 11 12B. 11 10 12C. 12 11 10D. 12 10 11
CUÛNG COÁCUÛNG COÁ
DAËN DOØ VAØ HÖÔÙNG DAÃN TÖÏ DAËN DOØ VAØ HÖÔÙNG DAÃN TÖÏ HOÏCHOÏC
Veà nhaø hoïc laïi toaøn boä kieán thöùc baøi hoïc.
Ñoïc tröôùc muïc 2. Caùch vieát vaø söû duïng haøm
Laøm vaø traû lôøi caùc caâu hoûi vaø baøi taäp trong saùch giaùo khoa vaø laøm theâm caùc baøi taäp 6.1, 6.1, 6.3 tr. 55; Baøi 6.13, 6.14, 6.17, 6.18 trang 58,60.
Tieát hoïc ñeán ñaây laø heát.
• Xin chuùc quyù Thaày (Coâ) cuøng caùc em
hoïc sinh•Vui - Khoeû vaø Thaønh
coâng.• Xin caùm ôn!