Bai 18 vi du ve cach viet va su dung ctc

27
Ngöôøi thöïc hieän: TRAÀN VAÊN Toå: Toaùn – Tin. SÔÛ GIAÙO DUÏC VAØ ÑAØO TAÏO HAØ GIANG Tröôøng THPT Ñoàng Yeân

Transcript of Bai 18 vi du ve cach viet va su dung ctc

Page 1: Bai 18 vi du ve cach viet va su dung ctc

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

Page 2: Bai 18 vi du ve cach viet va su dung ctc
Page 3: Bai 18 vi du ve cach viet va su dung ctc

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 ?

Page 4: Bai 18 vi du ve cach viet va su dung ctc

•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

Page 5: Bai 18 vi du ve cach viet va su dung ctc

• 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(‘* * * * * * *’);

Page 6: Bai 18 vi du ve cach viet va su dung ctc

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}

Page 7: Bai 18 vi du ve cach viet va su dung ctc

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

;

Page 8: Bai 18 vi du ve cach viet va su dung ctc

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öï)];

Page 9: Bai 18 vi du ve cach viet va su dung ctc

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

Page 10: Bai 18 vi du ve cach viet va su dung ctc

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

Page 11: Bai 18 vi du ve cach viet va su dung ctc

• 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?

Page 12: Bai 18 vi du ve cach viet va su dung ctc

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

Page 13: Bai 18 vi du ve cach viet va su dung ctc

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

Page 14: Bai 18 vi du ve cach viet va su dung ctc

•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

Page 15: Bai 18 vi du ve cach viet va su dung ctc

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

Page 16: Bai 18 vi du ve cach viet va su dung ctc

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

Page 17: Bai 18 vi du ve cach viet va su dung ctc

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

Page 18: Bai 18 vi du ve cach viet va su dung ctc

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 ?

Page 19: Bai 18 vi du ve cach viet va su dung ctc

* 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

Page 20: Bai 18 vi du ve cach viet va su dung ctc

* 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

Page 21: Bai 18 vi du ve cach viet va su dung ctc

-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

Page 22: Bai 18 vi du ve cach viet va su dung ctc

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Á

Page 23: Bai 18 vi du ve cach viet va su dung ctc

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Á

Page 24: Bai 18 vi du ve cach viet va su dung ctc

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Á

Page 25: Bai 18 vi du ve cach viet va su dung ctc

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Á

Page 26: Bai 18 vi du ve cach viet va su dung ctc

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.

Page 27: Bai 18 vi du ve cach viet va su dung ctc

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!