TRNG I HC CÔNG NGH THÔNG TI N THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm
THC HÀNH MÔN TIN HC I CNG
Bài 7. CU TRÚC CHNG TRÌNH VÀ HÀM
I. TÓM TT BÀI THC HÀNH
1.1. Yêu cu lý thuyt
Sinh viên đã đc trang b kin thc v hàm.
1.2. Ni dung
¬ Thc hành s dng hàm .
¬ Vit đc các chng trình sau:
̇ Vit hàm xác đnh s nguyên t
̇ Vit hàm tìm USCLN, BSCNN
̇ Hàm đi c s 10,2,8,16
̇ Tính x
n
¬ Chú ý:
̇ Tham s
II. THAO TÁC TNG BC
2.1.
Vit các hàm
2.1.1.
Hàm xác đnh s nguyên t:
̇ S nguyên n là s nguyên t = > n ch chia ht cho 1 và n.
//Hàm kim tra s nguyên n có phi là s nguyên t hay không
int SoNT(int n)
{
int t = floor(sqrt(n)); //làm tròn cn bc 2 ca n
for(int i=2;i<=t;i++)
if(n%i == 0)
return 0; //tr v giá tr 0 khi n
//không là s nguyên t
return 1;//tr v giá tr 1 khi n là s nguyên t
}
2.1.2.
Hàm tìm USCLN, BSCNN ca 2 s nguyên a, b:
//Hàm tìm c s chung ln nht ca 2 s nguyên a và b
int USCLN(int a,int b)
{
while(a!=b)
if(a>b)
a=a-b;
1
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm
else
b=b-a;
return a;
}
//Hàm tìm bi s chung nh nht ca 2 s nguyên a và b
int BSCNN(int a,int b)
{
int bsc;
if(a==b)
return a;
else
if(a>b)
{
bsc=a;
while(bsc%b != 0)
bsc=bsc+a;
}
else
{
bsc=b;
while(bsc%a != 0)
bsc=bsc+b;
}
return bsc;
}
2.1.3.
Hàm đi c s h 10 sang h 2,8,16…
// Hàm đi s h 10 sang h coso bt k, kt qu lu vào mng du[]
void Doicoso(int n, int coso,int du[])
{
int i=0;
while(n>0)
{
du[i]=n%coso;
n=n/coso;
i++;
}
}
2.1.4.
Hàm tính x
n
:
//Hàm tính x m n
int XmuN(int x,int n)
{
int X=1;
for(int i=0;i<n;i++)
X=X*x;
return X;
}
2
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm
2.2. Các hàm trên đc gi trong hàm main() nh sau:
void main()
{
clrscr();
int a,b,n,x,coso;
do{
printf(
"\n0: Thoat.");
printf(
"\n1: Kiem tra n co phai la so nguyen to hay khong.");
printf(
"\n2: Tim USCLN cua 2 so nguyen a,b.");
printf(
"\n3: Tim BSCNN cua 2 so nguyen a,b.");
printf(
"\n4: Doi co so.");
printf(
"\n5: Tinh x mu n.");
printf(
"\nBan hay chon chuc nang:");
int c;
scanf(
"%d",&c);
switch(c)
{
case 0://Thoát khi vòng lp do while()
return;
break;
case 1://Kim tra n có phi là s nguyên t hay không
int n;
printf(
"\nNhap n:");
scanf(
" ; %d",&n)
int kt=SoNT(n); // gi hàm SoNT(n)đ kim tra n có
// phi là s nguyên t hay không
if(kt==1)
printf(
"%d la so nguyen to",n);
else
printf("%d khong la so nguyen to",n);
break;
case 2://Tìm c s chung ln nht ca 2 s nguyên a,b
printf("\nNhap 2 so nguyen a, b:");
scanf(
"%d %d",&a,&b);
printf(
"\nUSCLN cua %d va %d la %d", a, b,
USCLN(a,b));
//gi hàm USCLN(a,b)đ tìm
// c s chung ln nht ca 2 s nguyên a,b
break;
case 3://Tìm bi s chung nh nht ca 2 s nguyên a,b
printf("\nNhap 2 so nguyen a, b:");
scanf(
"%d %d",&a,&b);
printf(
"\nBSCNN cua %d va %d la %d", a, b,
BSCNN(a,b));
//gi hàm BSCNN(a,b)đ tìm bi s
// chung nh nht ca 2 s nguyên a,b
break
;
case 4://i s h 10 ra h c s bt k
int du[8]={0,0,0,0,0,0,0,0};//mng lu kt qu
printf("\nNhap so he 10:");
scanf(
"%d",&n);
printf(
"\nNhap he co so muon doi:");
scanf(
"%d",&coso);
Doicoso(n,coso,du);
//Gi hàm Doicoso(n,coso,du)
//đ đi s h 10 n sang s h coso
printf("\nSo he %d la:",coso);
//In s h coso ra màn hình
for(int i=7;i>=0;i )
if(du[i]>=10)
//in ra các s h 16 nh A,B,C
printf("%c",(char)(du[i]+55));
3
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm
else
printf("%d",du[i]);
break;
case 5://Tính x^n
printf("\nNhap x va n:");
scanf(
"%d %d",&x,&n);
//Gi hàm XmuN(x,n) đ tính x^n
printf("%d mu %d = %d",x,n,XmuN(x,n));
break;
}
}
while(1);
}
//Kt thúc hàm main()
2.3. Kt qu chy chng trình nh sau:
III. BÀI TP LÀM TI LP
̇ Chuyn các chng trình trong bài thc hành 7 sang dng có s dng hàm (ví
d: hàm nhp mng mt (hai) chiu, hàm xut mng mt (hai) chiu, hàm
kim tra ma trn tam giác trên/di, hàm sp xp mng …)
̇ Vit hàm xóa phn t x trong mng mt chiu
̇ Vit hàm in ra n s nguyên t đu tiên/ in ra các s nguyên t nh hn n.
̇ Vit hàm in ra n s Fibonaci đu tiên/ in ra các s Fibonaci nh hn n.
̇ Vit hàm tính giá tr
ca biu thc sau :
S =
1
1
x
-
2
2
x
+
3
3
x
- … +
n
x
n
IV. BÀI TP V NHÀ
̇ Vit hàm tính n giai tha (n!)
̇ Bài toán đc s s dng hàm
̇ Chuyn các chng trình trong các bài thc hành trc sang dng có s dng
hàm.
4
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm
V. CÁC CÂU HI THNG GP
̇ C ch gi hàm
̇ Hàm và con tr
̇ …
5