đã được khai báoGọi thực hiện các hàm theo... *Được khai báo bên ngoài trong toàn chương trình, nh ng không nên khai báo ư couta; coutb; } void main { int c; Nhap; c=a+b;... void HoanVii
Trang 105
Trang 2đã được khai báo
Gọi thực hiện các hàm theo
Trang 3int Tong(int a, int b)
G i hàm ọ
Trang 4*Ha m la môt đoan ch̀ ̀ ̣ ̣ ương tri nh đôc lâp ̀ ̣ ̣ th c ự hiên tron ven môt công viêc nhâ t đinh ̣ ̣ ̣ ̣ ̣ ́ ̣ sau đo ́tra vê gia tri cho ch̉ ̀ ́ ̣ ương tri nh goi no , hay no i ̀ ̣ ́ ́
ca ch kha c ha m la s chia nho cua ch́ ́ ̀ ̀ ự ̉ ̉ ương tri nh.̀
Trang 5*void: Không tr v giá trả ề ị
*float / int / long / char */ ki u c u trúc / … ể ấ :
Tr v giá tr k t qu có ki u d li u tả ề ị ế ả ể ữ ệ ương
ki u d li u)ể ữ ệ
Trang 6* TênHàm: Đ t tên theo qui ặ ướ c sao cho ph n ánh đúng ch c năng th c ả ứ ự
hi n c a hàm ệ ủ
* Danh sách các tham s (n u có): đ u ố ế ầ vào c a hàm ( ủ trong m t s tr ộ ố ườ ng
h p có th là đ u vào và đ u ra c a ợ ể ầ ầ ủ hàm n u k t qu đ u ra có nhi u giá ế ế ả ầ ề
tr - Tham s này g i là tham chi u ị ố ọ ế )
Trang 7Cài đ t ặ
void TênHàm([danh sa ch ca c tham sô ])́ ́ ́
{
Khai ba o ca c biê n cuc bố ́ ́ ̣ ̣
Ca c câu lênh / khô i lênh hay l i goi đê n hàm ́ ̣ ́ ̣ ờ ̣ ́
kha c.́
}
G i hàm ọ
TênHàm(danh sách tên các đ i s ); ố ố
Nh ng ph ư ̃ ươ ng th c loai na y th ứ ̣ ̀ ươ ̀ ng r i va o nh ng ơ ̀ ư ̃
nho m ch c năng: Nhâp / xuâ t d liêu , thô ng ́ ứ ̣ ́ ữ ̣ ́
Trang 8Viê t ch́ ương tri nh nhâp sô nguyên d̀ ̣ ́ ương n va in ̀
ra ma n hi nh ca c ̀ ̀ ́ ước sô cua ń ̉
Phân ti ch ba i toa n: ́ ̀ ́
*Input: n (Đê xa c đinh tham sô )̉ ́ ̣ ́
Kiêu d liêu: sô nguyên d̉ ữ ̣ ́ ương (int).
*Output: In ra ca c ́ ước sô cua n (Đê xa c đinh ́ ̉ ̉ ́ ̣
kiêu d liêu tr v c a hàm)̉ ữ ̣ ả ề ủ
Xu t ra màn hình ấ Không tra vê gia tri ̉ ̀ ́ ̣ Kiêu d liêu c a hàm la ̉ ữ ̣ ủ ̀ void
*Xa c đinh tên hàm:́ ̣ Hàm na y du ng in ra ca c ̀ ̀ ́ ước
sô cua n nên co thê đăt la ́ ̉ ́ ̉ ̣ ̀ LietKeUocS
Trang 10K t qu ch ế ả ươ ng trình
Trang 11Cài đ t ặ
<Kiêu d liêu tr v > TênHàm([danh sa ch ca c tham sô ]) ̉ ữ ̣ ả ề ́ ́ ́
{
<Kiêu d liêu tr v > kq; ̉ ữ ̣ ả ề
Khai ba o ca c biê n cuc bố ́ ́ ̣ ̣
Ca c câu lênh / khô i lênh hay l i goi đê n hàm kha c.́ ̣ ́ ̣ ờ ̣ ́ ́
Trang 12Viê t ch ́ ươ ng tri nh nhâp sô nguyên d ̀ ̣ ́ ươ ng n va ti nh tông ̀ ́ ̉
* Phân ti ch ba i toa n: ́ ̀ ́
Input: n (Đê xa c đinh tham sô )̉ ́ ̣ ́
Kiêu d liêu: sô nguyên d ̉ ư ̃ ̣ ́ ươ ng (int).
Output: Tông S (Đê xa c đinh kiêu d liêu ph̉ ̉ ́ ̣ ̉ ư ̃ ̣ ươ ng th c) ứ
Tra vê gia tri cua S ̉ ̀ ́ ̣ ̉
S la tông ca c sô nguyên d ̀ ̉ ́ ́ ươ ng nên S cu ng la sô nguyên ̃ ̀ ́
d ươ ng Kiêu tra vê cua ha m la ̉ ̉ ̀ ̉ ̀ ̀ int (hoăc ̣ long)
* Xa c đinh TênHàḿ ̣ : Du ng ti nh tông S nên co thê đăt la ̀ ́ ̉ ́ ̉ ̣ ̀
TongS
int TongS(int n);
0
; 3
2
1 + + + + >
Trang 14*Ph m vi kh i ạ ố
Trang 17*Ho t đ ng t đ u đ n cu i m t hàmạ ộ ừ ầ ế ố ộ , ch có tác ỉ
d ng trong hàmụ
void main() {
int k;
float m;
double x;
//Các lệnh khác //…
}
Trang 18*Được khai báo bên ngoài
trong toàn chương trình,
nh ng không nên khai báo ư
cout<<"Nhap a: "; cin>>a;
cout<<"Nhap b: "; cin>>b;
} void main() {
int c;
Nhap();
c=a+b;
Trang 19*Bi n đ ế ượ c khai báo toàn c c và có kèm t khóa static ụ ừ
Trang 20* Tham s làm k t qu đ u ra ố ế ả ầ
Trang 21Xét ch ươ ng trình hoán v 2 s nguyên a, b ị ố cho tr ướ c
Vi t ch ế ươ ng trình v i 2 tr ớ ườ ng h p ợ
* Tr ườ ng h p không dùng tham chi u ợ ế
* Tr ườ ng h p dùng tham chi u ợ ế
Trang 22void HoanVi(int a, int b)
Trang 23K t qu ế ả
Trang 24void HoanVi(int &a, int &b)
Trang 25K t quế ả
Trang 26Tr ướ c khi xây d ng hàm ph i tr l i nh ng câu h i sau: ự ả ả ờ ữ ỏ
- N u có mà sau khi th c hi n xong hàm v n không ế ự ệ ẫ
thay đ i ổ Tham tr (không là tham chi u) ị ế
Trang 27* Môt ha m đ ̣ ̀ ượ c goi co ti nh đê qui nê u trong ̣ ́ ́ ̣ ́ thân cua ha m đo co lênh goi lai chi nh no ̉ ̀ ́ ́ ̣ ̣ ̣ ́ ́ môt ca ch t ̣ ́ ươ ̀ ng minh hay tiê m ân ̀ ̉
* Phân loai đê qui ̣ ̣
* Đ qui tuyê n ti nh ệ ́ ́
* Đê qui nhi phân ̣ ̣
* Đê qui phi tuyê n ̣ ́
* Đê qui hô t ̣ ̃ ươ ng.
Trang 28• Trong thân ha m co duy nhâ t môt l i goi ha m goi lai ̀ ́ ́ ̣ ơ ̀ ̣ ̀ ̣ ̣
Trang 29Vi dú ̣: Ti nh ́
- Điê u kiên d ng: S(0) = 0.̀ ̣ ừ
- Qui tă c (công th c) ti nh: S(n) = S(n-1) + n.́ ứ ́
long TongS (int n)
S ( ) = 1 + 2 + 3 + +
Trang 30Trong thân cua ha m co hai l i goi ha m goi lai chi nh no môt ̉ ̀ ́ ơ ̀ ̣ ̀ ̣ ̣ ́ ́ ̣
ca ch t ́ ươ ̀ ng minh.
<Kiêu d liêu ha m> ̉ ư ̃ ̣ ̀ TenHam (<danh sa ch tham sô >)́ ́
{
if (điê u kiên d ng) ̀ ̣ ư ̀ {
//Tra vê gia tri hay kê t thu c công viêc ̉ ̀ ́ ̣ ́ ́ ̣
}
//Th c hiên môt sô công viêc (nê u co ) ự ̣ ̣ ́ ̣ ́ ́
.TenHam (<danh sa ch tham sô >); //Giai quyê t vâ n đê nho ́ ́ ̉ ́ ́ ̀ ̉
h n ơ
//Th c hiên môt sô công viêc (nê u co ) ự ̣ ̣ ́ ̣ ́ ́
TenHam (<danh sa ch tham sô >); //Giai quyê t vâ n đê co n ́ ́ ̉ ́ ́ ̀ ̀
Trang 31Vi du: ́ ̣ Ti nh sô hang th n cua da y Fibonaci đ ́ ́ ̣ ư ́ ̉ ̃ ượ c đinh nghi a ̣ ̃
Trang 32Trong thân cua ha m co l i goi ha m goi lai chi nh no đ ̉ ̀ ́ ơ ̀ ̣ ̀ ̣ ̣ ́ ́ ượ c đăt bên ̣ trong vo ng lăp ̀ ̣
<Kiêu d liêu ha m> ̉ ư ̃ ̣ ̀ TenHam (<danh sa ch tham sô >)́ ́
{
for (int i = 1; i<=n; i++)
{ //Th c hiên môt sô công viêc (nê u co ) ự ̣ ̣ ́ ̣ ́ ́
if (điê u kiên d ng) ̀ ̣ ư ̀ {
//Tra vê gia tri hay kê t thu c công viêc ̉ ̀ ́ ̣ ́ ́ ̣ }
else { //Th c hiên môt sô công viêc (nê u co ) ự ̣ ̣ ́ ̣ ́ ́
TenHam (<danh sa ch tham sô >); ́ ́
Trang 33Vi du: ́ ̣ Ti nh sô hang th n cua da y {X ́ ́ ̣ ư ́ ̉ ̃ n} đ ượ c đinh nghi a nh ̣ ̃ ư sau:
Trang 34Trong thân cua ha m na y co l i goi ha m đê n ha m kia ̉ ̀ ̀ ́ ơ ̀ ̣ ̀ ́ ̀
Trang 35<Kiêu d liêu ha m> ̉ ư ̃ ̣ ̀ TenHam2 (<danh sa ch tham sô >);́ ́
{
}
{
}
Trang 36Vi du: ́ ̣ Ti nh sô hang th n cua hai da y {X ́ ́ ̣ ư ́ ̉ ̃ n}, {Yn} đ ượ c đinh nghi a nh ̣ ̃ ư sau:
Trang 37*Ví d tính n! v i n=5 ụ ớ
Trang 38Xác đ nh các khai báo hàm c a các bài toán sau:ị ủ
1.Viê t ch́ ương tri nh ti nh diên ti ch va chu vi cua ̀ ́ ̣ ́ ̀ ̉
hi nh ch nhât v i chiê u da i va chiê u rông ̀ ữ ̣ ớ ̀ ̀ ̀ ̀ ̣
được nhâp t ba n phi m.̣ ừ ̀ ́
2.Viê t ch́ ương tri nh ti nh diên ti ch va chu vi hi nh ̀ ́ ̣ ́ ̀ ̀tro n v i ba n ki nh đ̀ ớ ́ ́ ược nhâp t ba n phi m.̣ ừ ̀ ́
3.Nhâp va o 3 sô th c a, b, c va kiêm tra xem ̣ ̀ ́ ự ̀ ̉chu ng co tha nh lâp tha nh 3 canh cua môt tam ́ ́ ̀ ̣ ̀ ̣ ̉ ̣gia c hay không? Nê u co ha y ti nh diên ti ch, ́ ́ ́ ̃ ́ ̣ ́chiê u da i mô i đ̀ ̀ ̃ ường cao cua tam gia c va in ̉ ́ ̀
kê t qua ra ma n hi nh.́ ̉ ̀ ̀
Trang 39* Công th c ti nh diên ti ch ư ́ ́ ̣ ́
s = sqrt(p*(p-a)*(p-b)*(p-c) )
v i p là n a chu vi c a tam giác ớ ử ủ
* Công th c ti nh ca c đ ư ́ ́ ́ ươ ̀ ng cao:
ha = 2s/a, hb=2s/b, hc=2s/c.
Trang 401 Vi t chế ương trình t t c các bài t p 1 ấ ả ậ
2 Viê t ch́ ương tri nh nhâp sô nguyên d̀ ̣ ́ ương n,
ti nh tông ca c ́ ̉ ́ ước s dố ương c a n ủ
4 Viê t ch́ ương tri nh nhâp sô nguyên d̀ ̣ ́ ương n
gô m k ch sô , đê m xem n co bao nhiêu ch ̀ ữ ́ ́ ́ ữ
Trang 415 Viê t ch ́ ươ ng tri nh ti nh tiê n thuê ma y dich vu Internet ̀ ́ ̀ ́ ̣ ̣
va in ra ma n hi nh kê t qua V i d liêu nhâp va o la ̀ ̀ ̀ ́ ̉ ơ ́ ư ̃ ̣ ̣ ̀ ̀
Gi va o ca s m nhâ t la 6 gi sa ng va gi ra ca ơ ̀ ̀ ơ ́ ́ ̀ ơ ̀ ́ ̀ ơ ̀