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