Mô tả:
CHÆÅNG VI
HAÌM VAÌ CÁÚU TRUÏC CHÆÅNG
TRÇNH
I.
1.
Haìm
Quy tàõc xáy dæûng mäüt haìm:
Haìm coï thãø xem laì mäüt âån vë âäüc láûp
cuía chæång trçnh. Caïc haìm coï vai troì
ngang nhau, vç váûy khäng cho pheïp xáy
dæûng mäüt haìm bãn trong mäüt haìm khaïc.
Doìng âáöu tiãn (cuía mäüt haìm) chæïa caïc
thäng tin vãö haìm:
-
Kiãøu giaï trë cuía haìm (nãúu haìm coï
giaï trë)
Tãn haìm
Danh saïch caïc âäúi säú (nãúu coï)
Caïc doìng tiãúp theo duìng âãø khai baïo
kiãøu giaï trë cuía âäúi säú.Vaì bàõt buäüc
phaíi khai baïo kiãøu giaï trë cho táút caí
caïc âäúi säú.
Tieïp theo laì thán haìm. Thán haìm laì näüi
dung chênh cuía haìm noï bàõt âáöu bàòng
dáúu { vaì kãút thuïc }
Trong thán haìm coï thãø duìng 1 hoàûc
nhiãöu lãûnh return hoàûc coï thãø khäng
duìng. Vaì coï thãø âàût chuïng åí báút kyì
chäù naìo nãúu tháúy thêch håüp.
Cuï phaïp chung cuía lãûnh return
return ([Biãøu thæïc]);
Giaï trë cuía biãøu thæïc trong ngoàûc
seî âæåüc
gaïn cho haìm.
2. Quy tàõc hoaût âäüng cuía haìm
Caïch goüi haìm:
tãn_haìm([Danh saïch tham säú
thæûc]);
Chuï yï:
- Säú tham säú thæûc phaíi bàòng våïi
säú tham säú hçnh thæïc (âäúi) vaì mäùi
tham säú thæûc phaíi coï cuìng kiãøu våïi
giaï trë nhæ kiãøu giaï trë cuía âäúi
tæång æïng cuía noï.
- Vãö nguyãn tàõc moüi haìm cáön
âæåüc khaïi baïo træåïc khi sæí duûng
noï. Noï hoaìn toaìn giäúng våïi viãûc khai
Vê duû:
Viãút chæång trçnh tçm säú låïn nháút vaì
nhoí nháút cuía tæìng cäüt trong ma tráûn, coï
sæí duûng haìm tçm max, tçm min.
#include "stdio.h"
int max(a,b)
int a,b;
{
int m;
m=a>b?a:b;
return (m);
}
int min(a,b)
int a,b;
{
int m;
m=a
[return ([Biãøu thæïc]);]
}
Chuï yï:
- Khi xáy dæûng haìm cáön nàõm væîng nhæîng
qui âënh vãö mäúi quan hãû giæîa: tham säú
thæûc vaì tham säú hçnh thæïc (âäúi) cuîng
nhæ caïc âäúi trong thán cuía haìm
- Âäúi våïi haìm khäng cho giaï trë thç
chuïng ta khäng cáön khai baïo kiãøu
giaï trë cuía noï.
- Âäúi våïi caïc haìm coï giaï trë maì ta
quãn khäng khai baïo kiãøu giaï trë cuía
noï, thç maïy seî coi haìm âoï coï giaï
trë nguyãn. Nhæ váûy âäúi våïi haìm coï
gaïi trë kiãøu nguyãn thç khäng cáön
khai baïo kiãøu giaï trë cho chuïng.
- Khi gàûp lãûnh return coï chæïa biãøu
thæïc, thç giaï trë cuía biãøu thæïc bao
giåì cuîng âæåüc chuyãøn vãö theo
Nguyãn tàõc hoaût âäüng cuía tham säú thæûc, caïc
âäúi vaì caïc biãún cuûc bäü
- Do âäúi vaì biãún cuûc bäü âãöu coï phaûm vi
hoaût âäüng trong cuìng mäüt haìm nãn âäúi vaì
biãún cuûc bäü cáön coï tãn khaïc nhau.
- Âäúi vaì biãún cuûc bäü âãöu laì biãún tæû âäüng.
Chuïng âæåüc cung cáúp bäü nhåï khi haìm âæåüc
khåíi âäüng vaì chuïng seî láûp tæïc biãún máút khi
maïy ra khoíi haìm. Nhæ váûy, khäng thãø mang
giaï trë cuía âäúi ra khoíi haìm. Âiãöu naìy coï
nghéa laì khäng thãø sæí duûng âäúi âãø laìm thay
âäøi giaï trë cuía báút kyì mäüt âaûi læåüng naìo åí
ngoaìi haìm.
- Khi mäüt haìm âæåüc goüi tåïi, viãûc âáöu tiãn laì
gaïi trë cuía caïc tham säú thæûc âæåüc gaïn cho
caïc âäúi. Nhæ váûy, caïc âäúi chênh laì baín sao
cuía caïc tham säú thæûc. Haìm chè laìm vcãûc
trãn caïc âäúi, tæïc laì chè laìm viãûc trãn caïc baín
II.
1.
Con troí vaì âëa chè
Âia chè
Liãn quan âãún mäüt biãún ta âaî coï caïc
khaïi niãûm:
- Tãn biãún
- Kiãøu giaï trë cuía biãún
- Giaï trë cuía biãún
Khi khai baïo mäüt biãún thç maïy seî cáúp
phaït cho biãún mäüt vuìng nhåï coï säú byte
bàòng våïi âäü låïn cuía kiãøu âoï.
Vê duû:
Kiãøu int laì 2 byte
Kiãøu float laì 4 byte
Chuïng ta cuîng coï thãø hiãøu: Âëa chè
cuía biãún laì säú thæï tæû cuía byte âáöu tiãn
trong mäüt daîy caïc byte liãn tiãúp nhau maì
maïy daình cho biãún.
Cáön chuï yï ràòng: Âëa chè cuía biãún laì
mäü säú nguyãn nhæng khäng âæåüc âaïnh
âäöng noï våïi caïc säú nguyãn thäng thæåìng
trong caïc pheïp tênh
Pheïp toaïn
&x
cho ta âëa chè cuía biãún x
2. Con troí
Con troí laì mäüt biãún duìng âãø chæïa âëa
chè. Vç coï nhiãöu loaûi âëa chè nãn cuîng
coï báúy nhiãu kiãøu con troí tæång æïng.
Vê duû:
Con troí kiãøu int duìng âãø chæïa âëa
chè caïc
biãún kiãøu int.
Cuîng nhæ biãún thç con troí cuîng cáön phaíi
âæûoc khai baïo træåïc khi sæí duûng.
Cuï phaïp khai baïo:
type *tãn_con_troí
Vê duû:
int x,y,*px,*py
Toaïn tæí: & vaì * laì caïc toaïn tæí mäüt ngäi, noï
chè taïc âäüng lãn biãún, pháön tæí cuía maíng
hoàûc chuäùi.
&: Toaïn tæí láúy âaûi chè cuía biãún
*: Toaïn tæí láúy giaï trë taûi âëa chè naìo
âoï.
Caïc toaïn tæí naìy coï âäü æu tiãn hån caïc toaïn
tæí säú hoüc vaì coï âäü æu tiãn tæång âæång våïi
toaïn tæí mäüt ngäi.
3. Caïc biãøu thæïc con troí:
a. Pheïp gaïn con troí:
Con troí cuîng laì mäüt biãún nãn ta cuîng coï thãø
aïp duûng pheïp gaïn lãn noï.
Vê duû:
int *p1, *p2,x;
Luïc âoï caïc pheïp toaïn sau laì håüp lãû:
b. Pheïp toaïn säú hoüc trãn con troí:
Caïc pheïp toaïn säú hoüc âæåüc aïp duûng trãn
biãún con troí cuîng nhæ giaï trë cuía noï laì 2 pheïp
toaïn cäüng vaì træì.
Vê duû:
int *p;
Thç ta coï thãø duìng:
p++: âãø troí âãún pháön tæí kãú tiãúp;
p--: troí âãún pháön tæí træåïc âoï
p= p+3: Nhaíy âãún âëa chè caïch p laì
3*Sizeof(p)
Trong biãøu thæïc ta coï thãø duìng caïc daûng sau
cuía mäüt biãún con troí p:
(*p)++,++(*p):Tàng giaï trë taûi p lãn 1
c. So saïnh con troí
Caïc pheïp toaïn so saïnh âëa chè cuía caïc
biãún con troí laì:
>,<, = =
4. Kiãøu giaï trë trong khai baïo:
Moüi thaình pháön cuía cuìng mäüt khai baïo
(biãún, pháön tæí maíng, haìm, con troí) khi
xuáút hiãûn trong biãøu thæïc âãöu coï cuìng
mäüt kiãøu giaï trë.
Vê duû:
int a, b[5], f(), *p;
Thç a, b[i], f(x) hoàû *p xuáút hiãûn trong
mäüt biãøu
thæïc thç chuïng luän luän
cho mäüt gia trë kiãøu
float.
5. Haìm coï âäúi con troí:
Nãúu âäúi laì con troí thç tham säú thæûc
tæång æïng phaíi laì âëa chè cuía biãún hoàûc
âëa chè cuía pháön tæí maíng coï kiãøu tæång
æïng.
Khi âoï âëa chè cuía biãún âæåüc truyãön cho
âäúi con troí tæång æïng.
Vê duû:
#include "stdio.h"
int swap(x,y)
int x,y;
{
int tem;
tem=x;
x=y;
y=tem;
return (x,y);
}
main()
{
int x,y,swap();
printf("Nhap x = \n y = ");
scanf("%d %d",&x,&y);
printf("x = %d y = %d",x,y);
swap(x,y);
printf("x = %d y = %d",x,y);
getch();
return 0;
}
- Xem thêm -