Tải bản đầy đủ (.pdf) (5 trang)

Thực Hành Tin Học Đại Cương 7

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 (156.14 KB, 5 trang )

TRNG I HC CÔNG NGH THÔNG TI N THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm


THC HÀNH MÔN TIN HC I CNG
Bài 7. CU TRÚC CHNG TRÌNH VÀ HÀM

I. TÓM TT BÀI THC HÀNH
1.1. Yêu cu lý thuyt
Sinh viên đã đc trang b kin thc v hàm.
1.2. Ni dung
¬ Thc hành s dng hàm .
¬ Vit đc các chng trình sau:
̇ Vit hàm xác đnh s nguyên t
̇ Vit 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 TNG BC
2.1.
Vit 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 ht cho 1 và n.
//Hàm kim tra s nguyên n có phi là s nguyên t hay không
int SoNT(int n)
{


int t = floor(sqrt(n)); //làm tròn cn bc 2 ca 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 ca 2 s nguyên a, b:
//Hàm tìm c s chung ln nht ca 2 s nguyên a và b
int USCLN(int a,int b)
{

while(a!=b)

if(a>b)
a=a-b;

1
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm


else
b=b-a;

return a;

}
//Hàm tìm bi s chung nh nht ca 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 bt k, kt qu lu vào mng 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
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm


2.2. Các hàm trên đc gi 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 khi vòng lp do while()
return;

break;

case 1://Kim tra n có phi là s nguyên t hay không
int n;
printf(
"\nNhap n:");
scanf(
" ; %d",&n)

int kt=SoNT(n); // gi hàm SoNT(n)đ kim tra n có
// phi 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 ln nht ca 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));
//gi hàm USCLN(a,b)đ tìm
// c s chung ln nht ca 2 s nguyên a,b
break;

case 3://Tìm bi s chung nh nht ca 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));
//gi hàm BSCNN(a,b)đ tìm bi s
// chung nh nht ca 2 s nguyên a,b
break
;

case 4://i s h 10 ra h c s bt k
int du[8]={0,0,0,0,0,0,0,0};//mng lu kt qu
printf("\nNhap so he 10:");
scanf(
"%d",&n);
printf(
"\nNhap he co so muon doi:");
scanf(

"%d",&coso);
Doicoso(n,coso,du);
//Gi 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
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng 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);
//Gi hàm XmuN(x,n) đ tính x^n
printf("%d mu %d = %d",x,n,XmuN(x,n));


break;
}
}
while(1);
}
//Kt thúc hàm main()
2.3. Kt qu chy chng trình nh sau:


III. BÀI TP LÀM TI LP
̇ Chuyn các chng trình trong bài thc hành 7 sang dng có s dng hàm (ví
d: hàm nhp mng mt (hai) chiu, hàm xut mng mt (hai) chiu, hàm
kim tra ma trn tam giác trên/di, hàm sp xp mng …)
̇ Vit hàm xóa phn t x trong mng mt chiu
̇ Vit hàm in ra n s nguyên t đu tiên/ in ra các s nguyên t nh hn n.
̇ Vit hàm in ra n s Fibonaci đu tiên/ in ra các s Fibonaci nh hn n.
̇ Vit hàm tính giá tr
 ca biu thc sau :
S =
1
1
x
-
2
2
x
+
3
3
x

- … +
n
x
n

IV. BÀI TP V NHÀ
̇ Vit hàm tính n giai tha (n!)
̇ Bài toán đc s s dng hàm
̇ Chuyn các chng trình trong các bài thc hành trc sang dng có s dng
hàm.

4
TRNG I HC CÔNG NGH THÔNG TIN THC HÀNH MÔN TIN HC I CNG
Khoa Khoa Hc Máy Tính Bài 7. Cu trúc chng trình và hàm


V. CÁC CÂU HI THNG GP
̇ C ch gi hàm
̇ Hàm và con tr
̇ …


5

×