Kỹ thuật lập trình<br />
Bài 6 – Một số bài toán kiểu cấu trúc<br />
TS. Ngô Hữu Dũng<br />
<br />
Bài toán phân số<br />
<br />
<br />
Xây dựng dữ liệu cấu trúc<br />
<br />
<br />
<br />
<br />
<br />
1. struct<br />
<br />
t_phso{<br />
2. int tuso, mauso;<br />
3. };<br />
<br />
Tử số<br />
Mẫu số<br />
<br />
Viết hàm nhập giá trị<br />
<br />
<br />
<br />
<br />
<br />
152<br />
<br />
Điều kiện nhập: Mẫu số ≠ 0<br />
Cách 1: Hàm trả về kiểu cấu trúc<br />
Không có đối số<br />
Kiểu trả về của hàm là cấu trúc<br />
Cách 2: Truyền tham biến<br />
Đối số là tham biến<br />
Hàm không có kiểu trả về<br />
<br />
4.<br />
<br />
struct t_phso nhapPS();<br />
<br />
5.<br />
<br />
void nhapPS2(struct t_phso*);<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Hàm nhập phân số - Trả về kiểu cấu trúc<br />
struct t_phso nhapPS(){ // Trả về kiểu struct<br />
struct t_phso ps;<br />
2.<br />
3.<br />
printf("Nhap tu so: ");<br />
4.<br />
scanf("%d",&ps.tuso);<br />
do{<br />
5.<br />
6.<br />
printf("Nhap mau so (!=0): ");<br />
scanf("%d",&ps.mauso);<br />
7.<br />
8.<br />
}while(ps.mauso==0); // Kiểm tra mẫu số<br />
return ps;<br />
9.<br />
10. }<br />
11. struct t_phso a;<br />
12. a = nhapPS(); // Gán giá trị của hàm cho biến<br />
1.<br />
<br />
153<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Hàm nhập phân số - Truyền tham biến<br />
void nhapPS2(struct t_phso *ps)// Tham biến<br />
2. {<br />
3.<br />
printf("Nhap tu so: ");<br />
scanf("%d",&ps->tuso); // Dùng dấu -><br />
4.<br />
do{<br />
5.<br />
printf("Nhap mau so (!=0): ");<br />
6.<br />
7.<br />
scanf("%d",&ps->mauso);<br />
}while(ps->mauso==0);<br />
// Kiểm tra mẫu số<br />
8.<br />
9. }<br />
10.struct t_phso b;<br />
// Gọi hàm, tham biến: &b<br />
11.nhapPS2(&b);<br />
1.<br />
<br />
154<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />
Chú ý C và C++<br />
void nhapPS3(t_phso &);<br />
2. void nhapPS3(t_phso &ps)<br />
3. {<br />
printf("Nhap tu so: ");<br />
Khai báo biến, đối số 4.<br />
không cần viết struct 5. scanf("%d",&ps.tuso);<br />
6.<br />
do{<br />
phía trước<br />
printf("Nhap mau so: ");<br />
7.<br />
Dùng dấu & cho tham<br />
8.<br />
scanf("%d",&ps.mauso);<br />
biến<br />
}while(ps.mauso==0);<br />
9.<br />
Báo lỗi ở trình biên 10. }<br />
11. t_phso a;<br />
dịch C chuẩn<br />
12. nhapPS3(a);<br />
Hàm<br />
<br />
bên là cách viết<br />
của C++<br />
<br />
155<br />
<br />
1.<br />
<br />
Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017<br />
<br />
Ngô Hữu Dũng<br />
<br />