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

Chương trình con - Hàm và thủ tục

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 (114.19 KB, 9 trang )

– Giạo trçnh Láûp trçnh Pascal càn bn —


43


Trang 43
End.

_________ o
²
o _________

BI 7. CHỈÅNG TRÇNH CON: HM V TH TỦC


Khi láûp trçnh, cọ nhỉỵng âoản chỉång trçnh cáưn dng nhiãưu láưn. Âãø trạnh viãûc viãút
lải âoản ny, ta nãn chuøn âoản chỉång trçnh ny thnh mäüt chỉång trçnh con v
mäùi láưn cáưn thỉûc hiãûn cäng viãûc âọ thç ta gi nọ thäng qua tãn.
Chỉång trçnh con cn âãø máùu hoạ mäüt chỉång trçnh lm cäng viãûc no âọ.
Ngỉåìi khạc dng chỉång trçnh con
chè cáưn biãút truưn säú liãûu vo v láúy kãút qa ra
nhỉ thãú no m khäng cáưn phi quan tám âãún thût toạn trong chỉång trçnh con nhỉ
thãú no
.
Khi viãút nhỉỵng chỉång trçnh låïn, âãø dãù dng qun l, gåỵ räúi v hiãûu chènh
chỉång trçnh, ta nãn phán chỉång trçnh thnh nhiãưu
cäng viãûc âäüc láûp
, mäùi cäng
viãûc l mäüt chỉång trçnh con. Chỉång trçnh con gäưm cọ hai loải l
HM (Function)


v
TH TỦC (Procedure).
I. Hm v th tủc:
Cáúu trục ca hm cọ dảng:
FUNCTION Tãn
_
Hm(ThamSäú1: Kiãøu; TS2: Kiãøu;... ) : Kiãøu;
Var Cạc
_
biãún
_
củc
_
bäü;

Begin
Cạc lãûnh tênh toạn;
...;
Tãn_Hm := Giạ_trë;
End;
Phỉång phạp gi hm:

ta gi hm thäng qua tãn km theo tham säú ca hm nhỉ
sau:
Tãn
_
hm(Danh sạch cạc tham säú thỉûc sỉû);
Cáúu trục ca th tủc cọ dảng:
PROCEDURE Tãn
_

Th
_
tủc(TS1: Kiãøu; TS2: Kiãøu;...; Var TS3: Kiãøu; Var TS4:
Kiãøu;... );
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


44


Trang 44
Var caùc bióỳn cuỷc bọỹ;
Begin
Caùc lóỷnh;
...;
End;
Phổồng phaùp goỹi thuớ tuỷc:
Tón
_
haỡm(Danh saùch caùc tham sọỳ thổỷc sổỷ);
Sổỷ
khaùc nhau cồ baớn giổợa haỡm vaỡ thuớ tuỷc laỡ haỡm traớ vóử mọỹt giaù trở thọng qua tón
haỡm, haỡm coù thóứ tham gia vaỡo caùc bióứu thổùc tờnh toaùn
coỡn
thuớ tuỷc khọng cho giaù trở
naỡo caớ
. Khi taỷo haỡm,
trong thỏn haỡm bao giồỡ cuợng coù giaù trở gaùn cho tón haỡm õóứ
haỡm traớ vóử giaù trở naỡy khi õổồỹc goỹi.


Caùc tham sọỳ khaùc sau tón haỡm vaỡ tón thuớ tuỷc goỹi laỡ caùc tham sọỳ hỗnh thổùc
(hay
coỡn goỹi laỡ õọỳi). Trong thuớ tuỷc, caùc tham sọỳ hỗnh thổùc coù hai loaỷi: caùc tham sọỳ õổồỹc
khai baùo sau tổỡ khoaù Var goỹi laỡ tham sọỳ bióỳn, caùc sọỳ khai baùo khọng coù tổỡ khoaù Var
ồớ trổồùc goỹi laỡ tham sọỳ giaù trở. Trong haỡm chố coù tham sọỳ giaù trở,
tổùc khai baùo maỡ
khọng coù tổỡ khoaù
Var.

Tham sọỳ thổỷc sổỷ laỡ caùc tham sọỳ duỡng trong lồỡi goỹi haỡm hay thuớ tuỷc. Danh saùch
caùc tham sọỳ thổỷc sổỷ trong lồỡi goỹi haỡm phaới tổồng ổùng vồùi danh saùch caùc tham sọỳ
hỗnh thổùc trong phỏửn khai baùo chổồng trỗnh con vaỡ chuùng phaới tổồng ổùng vóử kióứu.
Trong thuớ tuỷc,
caùc tham sọỳ giaù trở thổồỡng laỡ caùc bióỳn õóứ chổùa dổợ lióỷu õổa vaỡo thuớ
tuỷc;
caùc
tham sọỳ bióỳn laỡ caùc bióỳn maỡ kóỳt quaớ tờnh toaùn cuớa thuớ tuỷc seợ chổùa vaỡo õoù
khi ra khoới thuớ tuỷc, ta coù thóứ duỡng chuùng õóứ tờnh toaùn tióỳp.

4 Vờ duỷ caùch sổớ duỷng tham sọỳ giaù trở vaỡ tham sọỳ bióỳn:
Var a, b, c, d : Integer;
Procedure Chuyen(x, y: Integr; Var u, v: Integer);
Begin { Tổỡ khoaù bừt õỏửu thuớ tuỷc Chuyen }
x := 2 * x;
y := 3 * y;
u := 4 * u;
v := 5 * v;
End;
Begin { Tổỡ khoaù bừt õỏửu chổồng trỗnh chờnh }
a := 10;

– Giạo trçnh Láûp trçnh Pascal càn bn —


45


Trang 45
b := 10;
c := 10;
d := 10;
Chuyen(a, b, c, d);
Write( ‘ a = ‘ , a, ‘. b = ‘ , b, ‘. c = ‘, c, ‘. d = ‘ , d );
Readln;
End.

1 Kãút qu khi chảy chỉång trçnh:
a = 10. b = 10. c = 40. d =50

II. Biãún ton củc, biãún củc bäü v viãûc truưn dỉỵ liãûu:
Biãún ton củc
l biãún khai bạo åí âáưu chỉång trçnh chênh, täưn tải trong sút thåìi
gian lm viãûc ca chỉång trçnh. Ta cọ thãø sỉí dủng v lm thay âäøi giạ trë ca biãún
ton củc nhåì cạc cáu lãûnh trong chỉång trçnh chênh cng nhỉ trong táút c cạc
chỉång trçnh con.
Biãún củc bäü
l biãún l biãún khai bạo åí âáưu chỉång trçnh con. Chụng âỉåüc cáúp
phạt bäü nhåï khi chỉång trçnh con âỉåc gi âãún v bë xoạ khi mạy thoạt khi chỉång
trçnh con âọ. Biãún củc bäü cọ giạ trë trong chỉång trçnh con v táút c cạc chỉång
trçnh con khạc nàòm trong chỉång trçnh con ny.
Nãúu tãn biãún củc bäü ca mäüt chỉång trçnh con trng våïi mäüt tãn biãún ton củc

thç mạy khäng bë nháưm láùn, mạy s dng hai ä nhåï khạc nhau âãø lỉu trỉỵ hai biãún,
khi ra khi chỉång trçnh con, biãún củc bäü tỉû âäüng âỉåüc xoạ.
Khi gàûp mäüt låìi gi âãún chỉång trçnh con, mạy s thỉûc hiãûn cạc bỉåïc sau:
- Cáúp phạt bäü nhåï cho cạc âäúi, cạc biãún củc bäü.
- Truưn giạ trë ca cạc tham säú thỉûc sỉû cho cạc tham säú giạ trë tỉång ỉïng, truưn
âëa chè cạc tham säú thỉûc sỉû ỉïng våïi tham säú biãún cho cạc tham säú biãún ca th tủc.
- Thỉûc hiãûn cạc lãûnh trong chỉång trçnh con, trong khi thỉûc hiãûn chỉång trçnh
con, cạc biãún củc bäü v cạc tham säú giạ trë cọ thãø bë biãún âäøi nhỉng khäng nh
hỉåíng âãún cạc biãún bãn ngoi. Trại lải,
mi thay âäøi ca tham säú biãún trong chỉång
trçnh con s kẹo theo sỉû thay âäøi ca tham säú thỉûc sỉû tỉång ỉïng (vç cọ sỉû truưn
theo âëa chè).
Do âọ,
khi thoạt khi chỉång trçnh con, cạc tham säú thỉûc sỉû ỉïng våïi
tham säú biãún váùn giỉỵ âỉåüc giạ trë måïi nháút do chỉång trçnh con tảo ra.

- Thỉûc hiãûn xong cạc lãûnh ca chỉång trçnh con, mạy xoạ táút c cạc âäúi v cạc
biãún củc bäü v tråí vãư lãûnh kãú sau nåi gi nọ.
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


46


Trang 46
Vióỷc lỏỳy kóỳt quaớ thổỷc hióỷn chổồng trỗnh con nhổ sau: nóỳu laỡ
haỡm
thỗ lỏỳy kóỳt quaớ
thọng qua tón haỡm, nóỳu laỡ
thuớ tuỷc

thỗ kóỳt quaớ ồớ tham sọỳ thổỷc sổỷ ổùng vồùi tham sọỳ
bióỳn. Khi cỏửn lỏỳy duy nhỏỳt mọỹt giaù trở tổỡ chổồng trỗnh con thỗ ta lỏỷp mọỹt
FUNCTION
, khi cỏửn lỏỳy tổỡ hai giaù trở trồớ lón tổỡ chổồng trỗnh con hoỷc khọng lỏỳy
giaù trở naỡo thỗ ta phaới lỏỷp
PROCEDURE.

4 Vờ duỷ 1: Lỏỷp haỡm tờnh dióỷn tờch hỗnh thang. Nhỏỷp dổợ lióỷu cuớa hai thổớa ruọỹng
hỗnh thang vaỡ tờnh tọứng dióỷn tờch hai thổớa ruọỹng.
Var a1, b1, h1, a2, b2 , h2, s : Real;
(************* Bat dau Function **************)
Function DTHinhThang(a, b, h) : Real;
Begin
DTHinhThang := (a + b) * h / 2;
End;
(********* Bat dau chuong trinh chinh **********)
Begin
Write( Canh dai, ngan va cao cua thua ruong thu nhat: );
Readln(a1, b1, h1);
Write( Canh dai, ngan va cao cua thua ruong thu hai: );
Readln(a2, b2, h2);
s := DTHinhThang(a1, b1, h1) + DTHinhThang(a2, b2, h2);
Writeln( Tong dien tich hai thua ruong = , s : 0 : 3);
Readln;
End.
4 Vờ duỷ 2: Lỏỷp haỡm tờnh ổồùc sọỳ chung lồùn nhỏỳt
(USCLN).
Sau õoù, duỡng haỡm naỡy
õóứ tờnh
USCLN

vaỡ bọỹi sọỳ chung nhoớ nhỏỳt
(BSCNN)
cuớa hai sọỳ õổồỹc nhỏỷp tổỡ baỡn
phờm.
Var m, n, usc, bsc: Integer;
(************ Function USCLN *************)
Function USCLN(a, b : Integer): Integer;
Var r : Integer;
Begin
While b < > 0 do
Begin
r := a mod b;
Giaùo trỗnh Lỏỷp trỗnh Pascal cn baớn


47


Trang 47
a := b;
b := r;
End; { a hien tai la USCLN cua a va b ban dau }
USCLN := a;
End;
(********* bat dau chuong trinh chinh *********)
Begin
Write( ' Nhap so thu nhat : ' );
Readln(m);
Write( ' Nhap so thu hai: ' );
Readln(n);

usc := USCLN(m, n);
bsc := m * n div USCLN(m, n);
Writeln( ' Uoc so chung lon nhat cua ', m, ' va ', n, ' la : ', usc);
Writeln( ' Boi so chung nho nhat cua ', m, ' va ', n, ' la :', bsc);
Readln;
End.
4
Vờ duỷ 3: Lỏỷp mọỹt thuớ tuỷc õóứ tờnh õọửng thồỡi dióỷn tờch vaỡ thóứ tờch hỗnh cỏửu.
Var r, s, v : Real;
Reply : Char;
(************** Function ***************)
Procedure SVHinhCau( r : Real; Var s, v :Real);
Begin
s := 4 * pi * r * r;
v := 4 * pi * r * r * r / 3;
End;
(******** bat dau chuong trinh chinh ********)
Begin
Repeat
Write( Nhap ban kinh hinh cau : );
Readln(r);
SVHinhCau(r, s, v);
Writeln( Dien tich = , s : 0 : 4, . The tich = , v : 0 :4 );
Write( Ban co tiep tuc khong ?(C/K) );
Readln(Reply);

×