Tải bản đầy đủ (.ppt) (35 trang)

HÀM và cấu TRÚC CHƯƠNG TRÌNH (lập TRÌNH c TRONG WINDOW) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

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 (121.05 KB, 35 trang )

CHƯƠNG VI

HÀM VÀ CẤU TRÚC
CHƯƠNG TRÌNH


HAèM VAè CU TRUẽC CHặNG
TRầNH
I.
1.

Haỡm
Quy từc xỏy dổỷng mọỹt haỡm:
Haỡm cọ thãø xem l mäüt âån vë âäüc
láûp ca chỉång trỗnh. Caùc haỡm coù
vai troỡ ngang nhau, vỗ vỏỷy khọng cho
phẹp xáy dỉûng mäüt hm bãn trong
mäüt hm khạc.
Dng âáưu tiãn (ca mäüt hm) chỉïa
cạc thäng tin vãư hm:

-

Kiãøu giạ trë ca hm (nãúu hm
cọ giạ trë)


Cạc dng tiãúp theo dng âãø khai bạo
kiãøu giạ trë ca âäúi säú.V bàõt
büc phi khai bạo kiãøu giạ trë cho
táút c cạc âäúi säú.


Tiẹp theo l thán hm. Thán hm l
näüi dung chênh ca hm nọ bàõt âáưu
bàịng dáúu { v kãút thục }
Trong thán hm cọ thãø dng 1 hồûc
nhiãưu lãûnh return hồûc cọ thãø khäng
dng. V cọ thãø âàût chụng åí báút k
chäù no nãúu tháúy thêch håüp.
Cụ phạp chung ca lãûnh return
return ([Biãøu thỉïc]);
Giạ trë ca biãøu thỉïc trong ngồûc s
âỉåüc gạn cho hm.


2. Quy tàõc hoảt âäüng ca hm
Cạch gi hm:
tãn_hm([Danh sạch tham säú thỉûc]);
Chụ :
- Säú tham säú thỉûc phi bàịng
våïi sọỳ tham sọỳ hỗnh thổùc (õọỳi)
vaỡ mọựi tham sọỳ thổỷc phi cọ
cng kiãøu våïi giạ trë nhỉ kiãøu giạ
trë ca âäúi tỉång ỉïng ca nọ.
- Vãư ngun tàõc mi hm cáưn
âỉåüc khại bạo trỉåïc khi sỉí dủng
nọ. Nọ hon ton giäúng våïi viãûc
khai baïo mäüt biãún.


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=areturn (m);
}
main()
{
int s,k,i,j,ma,mi,max(),min(),temp;
int a[3][3];
clrscr();


for (i=0;i<3;++i)
for (j=0;j<3;++j)
{
printf("a[%d,%d] ",i,j);

scanf("%d",&temp);
a[i][j]=temp;
}
for (i=0;i<3;++i)
{
for (j=0; j<3;++j) printf(" %10d",a[i][j]);
printf("\n");
}


for (j=0;j<3;++j)
{
ma=mi=a[0][j];
for (i=0; i<3;++i)
{
mi=min(a[i][j],mi);
ma=max(a[i][j],ma);
}
printf("\n Cot %d Max = %d \Min =
%d",i,ma,mi);
}
getch();
return 0;
}


3. Cạc khại niãûm liãn quan âãún hm:
- Tãn hm
- Kióứu giaù trở cuớa haỡm
- ọỳi hay tham sọỳ hỗnh thỉïc

- Thán hm
- Khại bạo hm
- Låìi gi hm
- Tham säú thæûc


4. Cạch xáy dỉûng hm
[type] tãn_hm([Danh sạch âäúi säú])
[Khai bạo kiãøu giạ trë cho táút c cạc âäúi]
{
[Cạc khai bạo kiãøu giạ trë cho cạc biãún củc
bäü v
cạc hm nọ sỉí dủng]
<Cạc cáu lãûnh>
[return ([Biãøu thỉïc]);]
}
Chụ :
- Khi xáy dỉûng hm 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ổ cạc âäúi trong thán ca
hm


- ọỳi vồùi haỡm khọng cho giaù trở thỗ
chuùng ta khäng cáưn khai bạo kiãøu giạ
trë ca nọ.
- Âäúi våïi cạc hm cọ giạ trë m ta qn
khäng khai bạo kióứu giaù trở cuớa noù, thỗ
maùy seợ coi haỡm õoù cọ giạ trë ngun.

Nhỉ váûy âäúi våïi hm cọ gạ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ë ca biãøu thỉïc bao
giåì cng âỉåüc chuøn vãư theo kiãøu
giạ trë ca hm trỉåïc khi nọ âỉåüc
gạn cho hm.


 Ngun tàõc hoảt âäüng ca tham säú thỉûc, cạc
âäúi v cạc biãún củc bäü
- Do âäúi v biãún củc bäü âãưu cọ phảm vi hoảt
âäüng trong cng mäüt hm nãn âäúi v biãún củc
bäü cáưn cọ tãn khạc nhau.
- Âäúi v biãún củc bäü âãưu l biãún tỉû âäüng.
Chụng âỉåüc cung cáúp bäü nhåï khi hm âỉåüc
khåíi âäüng v chụng s láûp tỉïc biãún máút khi
mạy ra khi hm. Nhỉ váûy, khäng thãø mang giạ
trë ca âäúi ra khi hm. Âiãưu ny cọ nghéa l
khäng thãø sỉí dủng âäúi âãø lm thay âäøi giạ trë
ca báút k mäüt âải lỉåüng no åí ngoi hm.
- Khi mäüt hm âỉåüc gi tåïi, viãûc âáưu tiãn l
gại trë ca cạc tham säú thỉûc âỉåüc gạn cho
cạc âäúi. Nhỉ váûy, cạc âäúi chênh l bn sao ca
cạc tham säú thỉûc. Hm chè lm vcãûc trãn cạc
âäúi, tỉïc l chè lm viãûc trãn cạc bn sao ny.
Cạc âäúi cọ tãø bë biãún âäøi nhỉng cạc tham säú
thỉûc (cạc bn chênh) khäng hãư bë thay âäøi



II.
1.

Con tr v âëa chè
Âia chè
Liãn quan âãún mäüt biãún ta â cọ cạc
khại niãûm:
- Tãn biãún
- Kiãøu giạ trë ca biãún
- Giạ trë ca biãún
Khi khai bạ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 ca kiãøu
âọ.
Vê dủ:
Kiãøu int l 2 byte
Kiãøu float laì 4 byte


Chụng ta cng cọ thãø hiãøu: Âëa
chè ca biãún l säú thỉï tỉû ca byte
âáưu tiãn trong mäüt dy cạc byte liãn
tiãúp nhau m mạy dnh cho biãún.
Cáưn chụ ràịng: Âëa chè ca biãún
l mäü säú ngun nhỉng khäng âỉåüc
âạnh âäưng nọ våïi cạc säú ngun
thäng thỉåìng trong cạc phẹp tênh
Phẹp toạn
&x

cho ta âëa chè ca biãún x


2. Con tr
Con tr l mäüt biãún dng âãø chỉïa õởa
chố. Vỗ coù nhióửu loaỷi õởa chố nón cuợng
coù bỏỳy nhiãu kiãøu con tr tỉång ỉïng.
Vê dủ:
Con tr kiãøu int dng âãø chỉïa âëa chè
cạc biãún kiãøu int.
Cng nhỉ biãún thỗ con troớ cuợng cỏửn
phaới õổỷoc khai baùo trổồùc khi sỉí dủng.
Cụ phạp khai bạo:
type *tãn_con_tr
Vê dủ:
int x,y,*px,*py


Toạn tỉí: & v * l cạc toạn tỉí mäüt ngäi, nọ
chè tạc âäüng lãn biãún, pháưn tỉí ca mng
hồûc chùi.
&: Toạn tỉí láúy âải chè ca biãún
*: Toạn tỉí láúy giạ trë tải âëa chè no âọ.
Cạc toạn tỉí ny cọ âäü ỉu tiãn hån cạc toạn
tỉí säú hc v cọ âäü ỉu tiãn tỉång âỉång våïi
toạn tỉí mäüt ngäi.
3. Cạc biãøu thỉïc con tr:
a. Phẹp gạn con tr:
Con tr cng l mäüt biãún nãn ta cng cọ thãø
ạp dủng phẹp gạn lãn nọ.

Vê dủ:
int *p1, *p2,x;
Lục âọ cạc phẹp toạn sau l håüp lãû:
p1=&x;
p2=p1;


b. Phẹp toạn säú hc trãn con tr:
Cạc phẹp toạn säú hc âỉåüc ạp dủng trãn
biãún con tr cng nhỉ giạ trë ca nọ l 2 phẹp
toạn cäüng v trỉì.
Vê duỷ:
int *p;
Thỗ ta coù thóứ duỡng:
p++: õóứ troớ õóỳn phỏửn tỉí kãú tiãúp;
p--: tr âãún pháưn tỉí trỉåïc âọ
p= p+3: Nhy âãún âëa chè cạch p l 3*Sizeof(p)
Trong biãøu thỉïc ta cọ thãø dng cạc dảng sau
ca mäüt biãún con tr p:
(*p)++,++(*p):Tàng giạ trë tải p lãn 1
*(p++): láúy gêa trë pháưn tỉí kãú tiãúp tr båíi
p,...


c. So sạnh con tr
Cạc phẹp toạn so sạnh âëa chè ca
cạc biãún con tr l:
>,<, = =
4. Kiãøu giạ trë trong khai bạo:
Mi thnh pháưn ca cng mäüt khai

bạo (biãún, pháưn tỉí mng, hm, con
tr) khi xút hiãûn trong biãøu thỉïc
âãưu cọ cng mäüt kiãøu giạ trë.
Vê dủ:
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. Hm cọ âäúi con tr:
Nãúu âäúi l con tr thỗ tham sọỳ thổỷc
tổồng ổùng phaới laỡ õởa chố cuớa biãún
hồûc âëa chè ca pháưn tỉí mng cọ
kiãøu tỉång ỉïng.
Khi âọ âëa chè ca biãún âỉåüc truưn
cho âäúi con tr tỉång ỉïng.
Vê dủ:


#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;
}


#include "stdio.h"
swap(x,y)
int *x,*y;
{
int tem;
tem=*x;
*x=*y;
*y=tem;
}


main()
{
int x,y;

clrscr();
printf("Nhap x = ");
scanf("%d",&x);
printf("\nNhap y = ");
scanf("%d",&y);
printf("x = %d y = %d",x,y);
swap(&x,&y);
printf("\nx = %d y = %d",x,y);
getch();
return 0;
}


6. Sỉí dủng biãún con tr:
Trong cạc âäúi ca hm, ta cọ thãø
chia thnh 2 loải:
- Gäưm cạc âäúi dng âãø chỉïa
cạc giạ trë â biãút.(Tham trë)
- Gäưm cạc âäúi dng âãø chỉïa
cạc kãút qu måïi nháûn âỉåüc
(Tham biãún)
Vê dủ:
Viãút chổồng trỗnh giaới phuồng trỗnh
bỏỷc hai coù sổớ
duỷng con troớ õóứ
xỏy dổỷng haỡm giaới phổồng trỗnh


#include "stdio.h"
#include "math.h"

int ptb2(a,b,c,x1,x2)
float a,b,c,*x1,*x2;
{
float delta;
if (a==0) return (0);
delta=pow(b,2)-4*a*c;
if (delta<0) return (-1);
*x1=(-b+sqrt(delta))/(2*a);
*x2=(-b-sqrt(delta))/(2*a);
return (1);
}


×