i th c hành s 2:
L p trình đ n gi n v i các toán t và các ki u d li u c s (tt) ơ ơ
A. M c tiêu
Ti p t c t o ế project Console application trên Microsoft Visual Studio
2005 g m 1 t p tin ch ng trình *.cpp v i nhi u hàm. ươ
Đ nh nghĩa hàm, g i hàm thu n th c.
B. Ôn t p:
C u trúc hàm
L i g i hàm
S d ng l i g i hàm
Khai báo nguyên m u c a hàm
1. C u trúc hàm:
[Kdl] Ten_Ham ([danh_sách_ki u_và_Đ i]) // Dòng tiêu đ
{
// Các ch th v ki u
// Các câu l nh;
[return [bi u_th c];]
}
2. L i g i hàm
Ten_Ham([Danh sách các tham s th c])
3. S d ng hàm
N u m tr v ki u void, Vi t l i g i hàm nh câu l nh ( thêm d u ; cu iế ế ư
ng), t c là:
Ten_Ham([Danh sách các tham s th c]);
N u hàm tr v khác ki u void, l i g i hàm đ c s d ng:ế ượ
Nh m t toán h ng trong bi u th c.ư
V ph i câu l nh gán.ế
In giá tr c a hàm.
. . .
4. Khai báo nguyên m u c a hàm
D ng khai báo nguyên m u hàm:
Kdl tên_hàm (Danh_sách_Ki u_và _Đ i); // Có d u ;
C. Luy n t p:
Ví d 1:
Vi t ch ng trình tính di n tích hình ch nh t v i chi u i chi u r ngế ươ
đ c nh p t bàn phím (yêu c u là vi t và s d ng hàm tính di n tích)ượ ế
Th c hi n:
B c 1: T o Project v i tên “Lab2_Vd1”.ướ
B c 2: T o t p tin ch ng trình vd1.cppướ ươ
B c 3: Trong t p tin vd1.cpp, so n code theo c u trúc:ướ
// Cn các t p tin th vi n c n thi t ư ế
#include<iostream>
using namespace std;
// Khai báo ngun m u các m
double DienTich_HCN (double a, double b)
//Đ nh nghĩa hàm main()
int main()
{
double a, b, Dientich;
cout<<”\nNhap chieu dai a: “;
cin>>a;
cout<<”\nNhap chieu rong b: “;
cin>>b;
Dientich = Dientich_HCN(a,b);
cout<<”\nDien tich Hinh chu nhat : Dientich = “<<Dientich;
return 0;
}
//Đ nh nghĩa hàm tính di n tích
double DienTich_HCN (double a, double b)
{
double S;
S = a*b;
return S;
}
B c 4: Ki m tra l i, ch y và xem k t qu ch ng trình.ướ ế ươ
Ví d 2:
Vi t ch ng trình tính di n tích nh tam giác khi bi t 3 c nh (yêu c u vi tế ươ ế ế
s d ng hàm tính di n tích)
Th c hi n:
B c 1: T o Project v i tên “Lab2_Vd2”.ướ
B c 2: T o t p tin ch ng trình vd2.cppướ ươ
B c 3: Trong t p tin vd2.cpp, so n code theo c u trúc:ướ
// Cn các t p tin th vi n c n thi t ư ế
#include<iostream>
#include<math.h> //Th vi n ch a cácm toán h cư
using namespace std;
// Khai báo ngun m u các m
double DienTich_HTG (double a, double b, double c)
//Đ nh nghĩa hàm main()
int main()
{
double a, b, c, S;
cout<<”\nNhap chieu dai canh a: “;
cin>>a;
cout<<”\nNhap chieu dai canh b: “;
cin>>b;
cout<<”\nNhap chieu dai canh c: “;
cin>>c;
S = Dientich_HTG(a,b,c);
cout<<”\nDien tich Hinh tam giac : S = “<<S;
return 0;
}
//Đ nh nghĩa hàm tính di n tích
double DienTich_HTG (double a, double b, double c)
{
double S, p;
p = (a+b+c)/2;
S = sqrt(p*(p-a)*(p-b)*(p-c));
return S;
}
B c 4: Ki m tra l i, ch y và xem k t qu ch ng trình.ướ ế ươ
D. i t p:
( Tt t các c bài t p đ u ph i đ c vi t b ng hàm sau đó g i trongm main đ ượ ế
xem k t qu .Tên mn bi n ph i đ c đ t đúng quy c)ế ế ượ ướ
i 1:
Khai báo h ng PI giá tr 3.14 s d ng h ng PI đ tính di n tích hình
tròn v i bánnh đ c nh p t bàn phím. ượ
i 2:
Khai o h ng MAX g tr 60. Nh p s giây, quy đ i th i gian giây
thành gi , phút, giây. Xu t k t qu ra mànnh d i d ng: gio:phut:giay ế ướ
Ví d : s giây nh p = 3770
s gi =(s _giây_nh p)/3600 = 1
s phút = (s _gy_nh p%3600)/MAX=2
s giây =( s _gy_nh p %3600)%MAX=50
Xu t ra mànnh d i d ng: 1:2:50 ướ
H ng d n: ướ
- Vi t hàm quy đ i th i gian v i đ u vào là s giây, xu t k t qu trong hàm.ế ế
- Nh p s giây, g i hàm quy đ i đã vi t trong hàm main đ xem k t qu . ế ế
i 3:
Vi t ch ng trình tính ế ươ
52 yx +
, v i x y 2 s th c đ c nh p t ượ
n phím.
H ng d n: ướ
-Vi t 1 m v i 2 tham s x, y. Giá tr tr v c a hàm giá tr c aế
52 yx +
( trong hàm này s d ng hàm sqrt pow trong th vi n ư math.h )
i 4:
Vi t ch ng trình tính ế ươ
n
x
, v i x s th c n s nguyên đ c ượ
nh p t n phím.
H ng d n: ướ
-Vi t 1 m v i 2 tham s x, n. Giá tr tr v c a hàm giá tr c a ế
n
x
( S d ng hàm pow trong th vi n ư math.h)
i 5:
Vi t ch ng trình xu t: |aế ươ 2-b2|, v i a, b s th c đ c nh p t n ượ
phím.
H ng d n: ướ
-Vi t 1 m v i 2 tham s th c x, y. Giá tr tr v c a hàm gtr c a ế |
x2-y2|
( S d ng hàm abs trong th vi n ư math.h )