Khai bâo ch ng trình con

Một phần của tài liệu Kỹ thuật lập trình turbo pascal (Trang 46 - 48)

IV. CU TRÚC KI UB NGHI (RECORD)

I.3. Khai bâo ch ng trình con

NSD có th t xđy d ng câc CTC b ng câc khai bâo nh sau :

I.3.1.Khai bâo th t c

Procedure <proc_name> [(<param_list>)]; { Câc khai bâo trong th t c n u có } begin

{ Thđn th t c } end;

u th t c g m tín th t c (<proc_name>) vă danh sâch câc tham đ i đ t trong c p d u ngo c câch nhau d u ph y (<param_list>) đi sau t khoâ Procedure.

Thđn th t c n m gi a begin vă end. K t thúc th t c lă d u ch m ph y.

Ví d :

Th t c tính n!

program Tính_giai_th a; var n : integer; G1 : real;

procedure giaith a (m : intger; var gt: real); var i : integer; begin gt:= 1; for i := 1 to m do gt:= gt*i end; begin {program} write ('n = '); readln (n); while n>0 do begin giaith a (n, G1); { l nh g i th t c } writeln (n:2, '! =', G1:10); write ('n ='); readln (n) end end.

Trong ví d trín, khai bâo th t c đ c đ t sau câc ph n khai bâo (Label, Const, Type vă Var) c a ch ng trình chính. Tuy nhiín, Turbo Pascal cho phĩp thay đ i tr t t trín, ch ng h n khai bâo th t c có th đ t tr c khai bâo bi n.

L i g i th t c : giaith a(n, G1);

đ t giâ tr k t qu tính n! văo bi n G1. Vòng l p trong ch ng trình chính k t thúc khi s n gõ văo có giâ tr ≤ 0.

I.3.2.Khai bâo hăm

Function <func_name> [(<param_list>)]: <type_name>; { Câc khai bâo trong hăm n u có }

{ Thđn hăm } end;

u khai bâo hăm g m tín hăm (<func_name>), danh sâch câc tham đ i đ t trong c p d u ngo c câch nhau d u ph y vă ki u giâ tr tr v c a hăm đi sau t khoâ Function.

Thđn hăm n m gi a begin vă end. K t thúc hăm lă d u ch m ph y.

Ví d :

Hăm tính giai th a n! program Tính_giai_th a; var n : integer;

function giaith a (m: integer): real; var i: integer;

g: real; begin

g:=1;

for i:= 1 to m do g:= g*i;

giaith a:= g {gân tr k t qu cho hăm } end;

begin {program}

write ('n ='); readln (n); while n > 0 do begin

writeln (n:2, '! =', giaith a(n):10); write ('n ='); readln (n)

end end.

Trong ví d trín, l i g i hăm giaith a(n)có vai trò lă m t bi u th c trong th t c writeln mă không ph i lă m t l nh.

Tr c khi k t thúc hăm, tín hăm ph i có giâ tr b i l nh gân giaith a:= g;

I.3.3.Tham đ i hình th c vă tham đ i th c s

Trong khai bâo CTC, câc tham đ i li t kí sau tín th t c ho c sau tín hăm có th v ng m t, chúng đ c g i lă câc tham đ i hình th c (formal parameter).

Câc tham đ i trong l i g i th t c đ c g i lă câc tham đ i th c s (actual parameter), phù h p t ng ng theo th t xu t hi n c a chúng trong danh sâch tham đ i hình th c (T HT).

Chú ý : Do câc T HT ch có giâ tr bín trong CTC nín tín c a chúng có th trùng v i tín bi n c a CHTR chính (ngoăi CTC).

Ví d : Trong ch ng trình tính giai th a trín có th dùng l i tín bi n n : program Tính_giai_th a;

var n : integer;

function giaith a(n: integer): real; {Dùng l i tín bi n n }

. . .

Câc bi n khai bâo b i var trong CTC đ c g i lă câc bi n c c b (local variable) c a CTC đó. Ví d trong khai bâo :

procedure giaith a (m : intger; var gt: real); var i : integer;

thì i lă bi n c c b c a CTC giaith a.

I.3.4.T HT tr vă T HT bi n

i v i th t c, nh ng T HT không đ ng sau t khoâ var đ c g i lă T HT tr (value parmeter). Nh ng T HT đ ng sau var đ c g i lă T HT bi n (variable parmeter). Ví d trong khai bâo :

procedure giaith a (m : intger; var gt: real); thì m lă T HT tr , còn gt lă T HT bi n.

Trong l i g i th t c, danh sâch tham đ i th c s (T TS) đ c đ t t ng ng v i danh sâch T HT nh d i đđy :

giaith a(n, G1);

giaith a(m: intger; var gt: real);

Phđn bi t T HT tr vă T HT bi n

a) T HT tr

− Không đ t sau t khoâ var trong danh sâch T HT đ u th t c.

− c c p vùng nh riíng khi CTC đ c g i vă b lo i b sau khi ra kh i CTC.

− T TS t ng ng lă m t bi u th c.

− T HT th c ch t lă bi n c c b c a CTC nh n giâ tr ban đ u lă tr c a T TS t ng ng.

− Nh ng thay đ i c a T HT tr không nh h ng gì đ i v i ch ng trình g i.

b) T HT bi n

− t sau ch var trong danh sâch T HT đ u th t c.

− T TS t ng ng lă m t bi n.

− M i thay đ i trín T HT bi n c ng lă thay đ i trín T TS t ng ng.

− Th c ch t c a truy n tham đ i đ i v i T HT bi n lă truy n đa ch .

Một phần của tài liệu Kỹ thuật lập trình turbo pascal (Trang 46 - 48)

Tải bản đầy đủ (PDF)

(117 trang)