Professional Documents
Culture Documents
Functions 120630044552 Phpapp01 PDF
Functions 120630044552 Phpapp01 PDF
VN
Ti liu lu hnh ni b
FUNCTIONS HM
Hc xong chng ny, sinh vin s nm c cc vn sau:
Khi nim v hm (function) trong C.
Cch xy dng v cch s dng hm trong C.
MOBIPRO.VN
Ti liu lu hnh ni b
I.1. Hm th vin
Hm th vin l nhng hm c nh ngha sn trong mt th vin no ,
mun s dng cc hm th vin th phi khai bo th vin trc khi s dng bng lnh
#include <tn th vin.h>
Mt s th vin:
alloc.h
assert.h
bcd.h
bios.h
complex.h
conio.h
ctype.h
dir.h
dirent.h
dos.h
errno.h
fcntl.h
float.h
fstream.h grneric.h
graphics.h io.h
iomanip.h iostream.h limits.h
locale.h
malloc.h
math.h
mem.h
process.h
setjmp.h
share.h
signal.h
stdarg.h
stddef.h
stdio.h
stdiostr.h stdlib.h
stream.h
string.h
strstrea.h sys\stat.h sys\timeb.h sys\types.h time.h
values.h
ngha ca mt s th vin thng dng:
1. stdio.h : Th vin cha cc hm vo/ ra chun (standard input/output). Gm
cc hm printf(), scanf(), getc(), putc(), gets(), puts(), fflush(), fopen(), fclose(),
fread(), fwrite(), getchar(), putchar(), getw(), putw()
2. conio.h : Th vin cha cc hm vo ra trong ch DOS (DOS console).
Gm cc hm clrscr(), getch(), getche(), getpass(), cgets(), cputs(), putch(),
clreol(),
3. math.h: Th vin cha cc hm tnh ton gm cc hm abs(), sqrt(), log().
log10(), sin(), cos(), tan(), acos(), asin(), atan(), pow(), exp(),
4. alloc.h: Th vin cha cc hm lin quan n vic qun l b nh. Gm cc
hm calloc(), realloc(), malloc(), free(), farmalloc(), farcalloc(), farfree(),
5. io.h: Th vin cha cc hm vo ra cp thp. Gm cc hm open(), _open(),
read(), _read(), close(), _close(), creat(), _creat(), creatnew(), eof(), filelength(),
lock(),
6. graphics.h: Th vin cha cc hm lin quan n ha. Gm initgraph(),
line(), circle(), putpixel(), getpixel(), setcolor(),
...
Mun s dng cc hm th vin th ta phi xem c php ca cc hm v s
dng theo ng c php (xem trong phn tr gip ca Turbo C).
II. XY DNG MT HM
II.1 nh ngha hm
Cu trc ca mt hm t thit k:
<kiu kt qu> Tn hm ([<kiu t s> <tham s>][,<kiu t s><tham s>][])
{
[Khai bo bin cc b v cc cu lnh thc hin hm]
[return [<Biu thc>];]
}
Gii thch:
- Kiu kt qu: l kiu d liu ca kt qu tr v, c th l : int, byte, char, float,
void Mt hm c th c hoc khng c kt qu tr v. Trong trng hp hm khng
c kt qu tr v ta nn s dng kiu kt qu l void.
- Kiu t s: l kiu d liu ca tham s.
- Tham s: l tham s truyn d liu vo cho hm, mt hm c th c hoc
khng c tham s. Tham s ny gi l tham s hnh thc, khi gi hm chng ta phi
truyn cho n cc tham s thc t. Nu c nhiu tham s, mi tham s phn cch
nhau du phy (,).
- Bn trong thn hm (phn gii hn bi cp du {}) l cc khai bo cng cc
cu lnh x l. Cc khai bo bn trong hm c gi l cc khai bo cc b trong hm
v cc khai bo ny ch tn ti bn trong hm m thi.
- Khi nh ngha hm, ta thng s dng cu lnh return tr v kt qu thng
qua tn hm.
II.2 S dng hm
Mt hm khi nh ngha th chng vn cha c thc thi tr khi ta c mt li
gi n hm .
C php gi hm: <Tn hm>([Danh sch cc tham s])
V d: Vit chng trnh cho php tm c s chung ln nht ca hai s t
nhin.
#include<stdio.h>
unsigned int ucln(unsigned int a, unsigned int b)
{
unsigned int u;
if (a<b)
u=a;
else
u=b;
while ((a%u !=0) || (b%u!=0))
u--;
return u;
}
int main()
{
unsigned int a, b, UC;
printf(Nhap a,b: );scanf(%d%d,&a,&b);
UC = ucln(a,b);
printf(Uoc chung lon nhat la: , UC);
return 0;
}
Lu :
- Trong hm InKT trn, bin ch gi l tham s hnh thc c truyn bng gi
tr (gi l tham tr ca hm). Cc tham tr ca hm coi nh l mt bin cc b trong
hm v chng c s dng nh l d liu u vo ca hm.
- Khi chng trnh con c gi thi hnh, tham tr c cp nh v nhn
gi tr l bn sao gi tr ca tham s thc. Do , mc d tham tr cng l bin, nhng
vic thay i gi tr ca chng khng c ngha g i vi bn ngoi hm, khng nh
hng n chng trnh chnh, ngha l khng lm nh hng n tham s thc tng
ng.
V d 2: Ta xt chng trnh sau y:
#include <stdio.h>
#include <conio.h>
int hoanvi(int a, int b)
{
int t;
t=a; /*on ny hon v gi tr ca 2 bin a, b*/
a=b;
b=t;
printf("\Ben trong ham a=%d , b=%d",a,b);
return 0;
}
int main()
{
int a, b;
clrscr();
printf("\n Nhap vao 2 so nguyen a, b:");
scanf("%d%d",&a,&b);
printf("\n Truoc khi goi ham hoan vi a=%d
,b=%d",a,b);
hoanvi(a,b);
printf("\n Sau khi goi ham hoan vi a=%d
getch();
return 0;
,b=%d",a,b);
Gii thch:
- Nhp vo 2 s 6 v 5 (a=6, b=5)
- Trc khi gi hm hon v th a=6, b=5
- Bn trong hm hon v a=5, b=6
- Khi ra khi hm hon v th a=6, b=5
* Lu
Trong on chng trnh trn, nu ta mun sau khi kt thc chng trnh con
gi tr ca a, b thay i th ta phi t tham s hnh thc l cc con tr, cn tham s
thc t l a ch ca cc bin.
Lc ny mi s thay i trn vng nh c qun l bi con tr l cc tham s
hnh thc ca hm th s nh hng n vng nh ang c qun l bi tham s thc
t tng ng (cn rng vng nh ny chnh l cc bin ta cn thay i gi tr).
Ngi ta thng p dng cch ny i vi cc d liu u ra ca hm.
V d: Xt chng trnh sau y:
#include <stdio.h>
#include <conio.h>
long hoanvi(long *a, long *b)
/* Khai bo tham s hnh thc *a, *b
{
long t;
t=*a;
/*gn ni dung ca x
*a=*b;
/*Gn ni dung ca b
*b=t;
/*Gn ni dung ca t
printf("\n Ben trong ham a=%ld
/*In ra ni dung ca a, b*/
return 0;
}
int main()
{
long a, b;
clrscr();
printf("\n Nhap vao 2 so nguyen a, b:");
scanf("%ld%ld",&a,&b);
printf("\n Truoc khi goi ham hoan vi a=%ld ,b=%ld",a,b);
hoanvi(&a,&b); /* Phi l a ch ca a v b */
printf("\n Sau khi goi ham hoan vi a=%ld ,b=%ld",a,b);
getch();
return 0;
}
Gii thch:
- Nhp vo 2 s 5, 6 (a=5, b=6)
- Trc khi gi hm hoanvi th a=5, b=6
CHUI K T
Hc xong chng ny, sinh vin s nm c cc vn sau:
Khi nim v chui k t.
Mt s hm x l chui v ng dng ca chng trong thc t.
I. KHI NIM
Chui k t l mt dy gm cc k t hoc mt mng cc k t c kt thc
bng k t \0 (cn c gi l k t NULL trong bng m Ascii).
Cc hng chui k t c t trong cp du nhy kp .
II. KHAI BO
II.1 Khai bo theo mng
C php:
char *<Bin>
II.3 Va khai bo va gn gi tr
C php:
V d:
#include<stdio.h>
#include<conio.h>
int main()
{
char Chuoi[]="Mau nang hay la mau mat em ;
printf("Vua khai bao vua gan tr : %s,Chuoi) ;
getch();
return 0;
}
gets(<Bin chui>)
V d:
char Ten[20];
gets(Ten);
Ta cng c th s dng hm scanf() nhp d liu cho bin chui, tuy nhin
lc ny ta ch c th nhp c mt chui khng c du khong trng.
Ngoi ra, hm cgets() (trong conio.h) cng c s dng nhp chui.
III.1.2 Xut chui ln mn hnh
xut mt chui (biu thc chui) ln mn hnh, ta s dng hm puts().
C php:
int main()
{
char HoLot[30], Ten[12];
printf("Nhap Ho Lot: ");gets(HoLot);
printf("Nhap Ten: ");gets(Ten);
strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/
printf("Ho ten la: ");puts(HoLot);
getch();
return 0;
}
char toupper(char c)