Professional Documents
Culture Documents
Nội dung
1
11/11/2010
Hàm (function) cung cấp cơ chế cho phép các chương trình
dễ dàng viết, đọc, hiểu, debug (bắt lỗi), sửa đổi và bảo trì.
2
11/11/2010
3
11/11/2010
4
11/11/2010
#include <stdio.h>
#include <stdlib.h> //cho ham system()
#include <math.h>
void CircleArea(float r)
{
float S; 5.2. Tham số và
S= M_PI*r*r;
biến cục bộ
printf("%.2f co dien tich la: %.2f\n",r,S);
}
int main()
{
CircleArea(5);
CircleArea(45);
return 0;
}
5
11/11/2010
printf("%d!= %ld\n",n,gt);
}
6
11/11/2010
7
11/11/2010
8
11/11/2010
9
11/11/2010
result = USCLN(1026, 405); Hàm khai báo với từ khóa void thì không có giá trị trả
printf ("USCLN cua 1026 va 405 la %i\n", result); về. Mọi cách thử dùng hàm này như một biểu thức đều
gây ra lỗi biên dịch.
printf ("USCLN cua 83 va 240 la %i\n", USCLN(83,240)); Ví dụ. Với hàm void giaiThua(int n) ta không thể
return 0; dùng
}
int n=giaiThua(10);
10
11/11/2010
11
11/11/2010
12
11/11/2010
c=n%10; n=n/10;
5.4. Hàm gọi hàm b=n%10; n=n/10;
a=n%10;
if(a>0){ docChuSo(a); printf(" tram ");}
Hàm đọc số if(a>0 && b==0)printf("le ");
void docSo(int n) if(b==1){ printf("muoi ");}
{ if(b>1){ docChuSo(b);printf(" muoi ");}
int a,b,c; docChuSo(c); printf("\n"); }
if(kiemTra(n)==-1) }
printf("Loi! So khong hop le.\n");
else int main(void)
{ {
if(n<0){ docSo(-115);
printf("am "); docSo(-125);
n=-n; docSo(-105);
} docSo(-5);
return 0;
}
13
11/11/2010
14
11/11/2010
Hàm tìm giá trị lớn nhất trong một mảng số thực.
Hàm in giá trị của các phần tử trong một mảng số thực
gồm 10 phần tử float maximum(float A[], int size)
{
float maxVal=A[0];
void display(float A[10])
int i;
{
for(i=0;i<size;i++)
int i;
if(A[i]>max) maxVal=A[i];
for(i=0;i<10;i++)
printf("%.2f ",A[i]);
return maxVal;
printf("\n");
}
}
15
11/11/2010
return 0;
}
16
11/11/2010
lần lặp 2 5 3 7 4 2 5 3 7 4 2
Hàm sắp xếp giá trị các phần tử trong mảng theo thứ tự
giảm dần
5 7 3 4 2 5 7 3 4 2
Thuật toán sắp xếp mảng đơn giản:
Dãy ban đầu 3 5 2 7 4 5 7 4 3 2 5 7 4 3 2
5 3 2 7 4 5 3 2 7 4
7 5 4 3 2 7 5 4 3 2
5 3 7 2 4 5 3 7 2 4
lần lặp 4 7 5 4 3 2 7 5 4 3 2
5 3 7 4 2 5 3 7 4 2
Dãy kết quả 7 5 4 3 2
17
11/11/2010
18
11/11/2010
19
11/11/2010
int main(void)
5.5 Tham số là mảng, xâu ký tự {
int i;
int Matrix[3][5] = { 34, -5, 6, 0, 12,
Hàm nhân đôi giá trị các phần tử trong mảng 100, 56, 22, 44, -3,
-9, 12, 17, 22, 6};
system("pause");
return 0;
}
20
11/11/2010
21
11/11/2010
22
11/11/2010
23
11/11/2010
24
11/11/2010
int main(void)
{
staticVariable();
staticVariable(); 5.7. Hàm đệ quy
staticVariable();
staticVariable();
return 0;
}
25
11/11/2010
Hàm đệ quy trong toán học Hàm đệ quy là hàm mà trong lời định nghĩa hàm nhắc lại
chính nó.
f 0 0 Ví dụ. Hàm tính giai thừa n!=n*(n-1)!
f ( x) 2 f ( x 1) x 2 neu x 0
Cài đặt hàm đệ quy tính f(x)
Từ định nghĩa ta tính được
int f( int x )
f(3) = 2*f(2)+3*3 {
= 2*(2*f(1) + 2*2)+3*3 if( x == 0 )
= 2*(2*(2*f(0) +1*1) + 2*2) + 3*3 return 0;
= 2*(2*(2*0+1*1) + 2*2) + 3*3 else
= 2*(2*1+ 2*2) + 3*3 return 2 * f( x - 1) + x*x;
= 2*6+ 3*3 }
= 21
26
11/11/2010
27