Professional Documents
Culture Documents
11 Ham
11 Ham
TIN HC I CNG
Phn 3. Lp trnh C
Bi 11. Hm
Ni dung
Khi nim
L mt chng trnh nm trong mt chng
trnh ln hn nhm thc hin mt nhim v c
th
Vai tr
Chia nh chng trnh ra thnh tng phn
qun l => Phng php lp trnh c cu trc
C th s dng li nhiu ln: printf, scanf
Chng trnh d dng c v bo tr hn
3
Phn loi hm
Th tc
(procedure)
Hm chun
(C trong th vin)
Trong C:
Hm t vit
(Ngi dng nh ngha)
11.2.1. Khai bo hm
11.2.1. Khai bo hm
11.2.2. S dng hm
V d:
Chng trnh in ra bnh phng ca cc s t
nhin t 1 n 10
Gm 2 hm:
Hm binhphuong(int x): tr v bnh phng
ca x
11.2.1. Khai bo hm
Khai bo hm
Gi hm
#include<stdio.h>
#include<conio.h>
int binhphuong(int x){
int y;
y = x * x;
return y;
}
void main(){
int i;
for (i=0; i<= 10; i++)
printf(%d , binhphuong(i));
getch();
}
11.2.1. Khai bo hm
[<kiu_gi_tr_tr_v>] tn_hm ([danh_sch_tham_s])
{
[<Cc_khai_bo>]
[<Cc_cu_lnh>]
}
Dng u hm
L thng tin trao i gia cc hm. Phn bit
gia cc hm vi nhau.
Kiu gi tr tr v: kiu d liu bt k, khng
c l kiu d liu mng.
Tn hm: l tn hp l, trong C tn hm l duy
nht
11.2.1. Khai bo hm
V d khai bo hm
Tham s
V d:
int giai_thua(int a)
{
int ket_qua;
int i;
Thn hm
ket_qua = 1;
for(i = 1;i<a;i++)
ket_qua = ket_qua * i;
if(a < 0) ket_qua = -1;
if(a == 0) ket_qua = 1;
return ket_qua;
return
Gi hm thng qua tn hm v cc tham s thc cung
cp cho hm.
Sau khi thc hin xong, tr v im m hm c gi
thng qua cu lnh return hoc kt thc hm.
C php chung: return biu_thc;
10
}
11
12
11.2.1. Khai bo hm
Nguyn mu hm
(function
prototype)
nh ngha hm
11.2.1. Khai bo hm
#include<stdio.h>
#include<conio.h>
int binhphuong(int x);
void main(){
int i;
for (i=0; i<= 10; i++)
printf(%d ,
binhphuong(i));
getch();
}
int binhphuong(int x){
int y; y = x * x; return y;
}
ngha ca nguyn mu hm
Cho php nh ngha sau khi s dng. Nhng
phi khai bo trc
Cho php a ra li gi n mt hm m khng
cn bit nh ngha
V d: khi gi printf, scanf chng ta ch cn quan tm
cc tham s truyn cho hm
Tp stdio.h cha nguyn mu hm ca printf v scanf
14
11.2.1. Khai bo hm
11.2.2. S dng hm
Cc hm th vin
Ngn ng C cung cp mt s hm th vin
nh: x l vo ra, hm ton hc, hm x l
xu
s dng cc hm ny chng ta ch cn
khai bo nguyn mu ca chng trc khi
s dng.
C php:
tn_hm (danh_sch_tham_s);
V d: binhphuong(0), binhphuong(1)
Lu :
15
V d phm vi bin
V d 1:
18
#include <stdio.h>
void main()
{
int a = 1;
printf(\n a = %d,a);
{
int a = 2;
printf(\n a = %d,a);
}
printf(\n a = %d,a);
Ghi nh
Hm main() cng l mt chng trnh con
nhng l ni chng trnh c bt u cng
nh kt thc
Bin khai bo trong hm main() cng l bin
cc b, ch c phm vi trong hm main().
#include<stdio.h>
#include<conio.h>
int i;
int binhphuong(int x){
int y;
y = x * x;
return y;
}
void main(){
int y;
for (i=0; i<= 10; i++){
y = binhphuong(i);
printf(%d , y);
}
}
}
{
int a = 3;
printf(\n a = %d,a);
}
}
19
20
V d 2
#include <stdio.h>
#include <conio.h>
int a, b, c;
int tich()
{
printf("\n Gia tri cac bien tong the
a, b, c: ");
printf(" a = %-5d b = %-5d c = %5d,a,b,c);
return a*b*c;
}
21
void main()
{
clrscr();
printf("\n Nhap gia tri cho 3
so nguyen a, b, c: ");
scanf("%d %d %d",&a,&b,&c);
printf("\n Tich cua 3 so la
%d",tich());
getch();
}
22
23
24
# include <stdio.h>
# include <conio.h>
void fct() {
static int count = 1;
printf("\n Day la lan goi ham fct lan thu
%2d", count++);
}
void main(){
int i;
for(i = 0;
fct();
getch();
}
25
26
Bi tp
Bin register
int i=10;
printf ( Gia tri cua i %d, ++i);
printf( Gia tri cua i %d, i++);
printf (Gia tri cua i %d , i--);
printf (Gia tri cua i %d , --i);
27
28
Bi tp
int a =10;
int b, c;
b = ++a *2;
c= a++ *2;
printf ( b= %d ,b);
printf ( c= %d , c);
29
30