CHƯƠNG 3: LẬP TRÌNH MODULE 3.1 Phương pháp lập trình module
3.3.1 Xácđịnh sốngày của một tháng trong năm
Sơ đồ CT cho trong hình 3.5.a.
Hình 3.5.a Sơ đồ CT giải bài toán 3.3.1
Hàm tính số ngày nhận vào tháng và năm trả về số ngày. Trong hàm tinh_so_ngay, ta cần đến hàm kiểm tra năm nhuần (nam_nhuan) để xác định số ngày của tháng 2 – xem hình 3.5.b.
Tháng
(thang) Tính số ngày của tháng trong năm (tinh_so_ngay) Tính số ngày của tháng trong năm (tinh_so_ngay) Năm (nam)
#include …
int nam_nhuan (int nam); // Kiểm tra năm nhuần
int tinh_so_ngay (int thang, int nam); // Tính số ngày trong tháng
int main(int argc, char* argv[]) {
int thang, nam, so_ngay; // Nhập tháng và năm ???
so_ngay = tinh_so_ngay (thang, nam);
Hình 3.5.b Sơ đồ hàm tính số ngày của tháng trong năm
getch (); return 0; }
int nam_nhuan (int nam) // Kiểm tra năm nhuần {
int co_nhuan; // ???
return co_nhuan; }
int tinh_so_ngay (int thang, int nam) // Tính số ngày trong tháng { int so_ngay; // ??? return so_ngay; } 3.3.2 Thực hiện các phép tính +, - , *, / Sơ đồ CT: so_ngay tinh_so_ngay tinh_so_ngay thang 1, 3, 5, 7, 8, 10, 12 Số ngày 31 4, 6, 9, 11 Số ngày 30 2
Kiểm tra năm nhuần Kiểm tra năm nhuần (nam_nhuan)(nam_nhuan) nam Kết quả Kết quả = 1 Số ngày 29 Đúng Số ngày 28
Giá trị trả về của hàm là kết quả có thực hiện được phép toán hay không. Do đó, để lấy kết quả thực hiện phép toán (trong trường hợp thực hiện được) ta dùng tham chiếu.
#include …
int tinh_toan (char phep_toan, float a, float b, float &ket_qua);
int main(int argc, char* argv[]) {
char phep_toan; float toan_hang_1, toan_hang_2, ket _qua; // Nhập toan_hang_1, toan_hang_2 và phep_toan
// ???
if (tinh_toan (phep_toan, toan_hang_1, toan_hang_2, ket _qua))
printf( “%f %c %f = %f”, toan_hang_1, phep_toan, toan_hang_2, ket_qua); else
printf( “Khong the %f %c %f.”, toan_hang_1, phep_toan, toan_hang_2); getch (); return 0;
}
int tinh_toan(char phep_toan, float a, float b, float &ket_qua) { int tinh_duoc = 1; // ??? Kết quả tính toán (ket_qua) Số ngày (so_ngay) Phép toán (phep_toan) Thực hiện phép
tính giữa toán hạng 1 và toán hạng 2 tùy thuộc vào phép toán (tinh_toan ) Thực hiện phép tính giữa toán hạng 1 và toán hạng 2 tùy thuộc vào phép toán (tinh_toan ) Toán hạng 1 (a) Toán hạng 2 (b)
return tinh_duoc; }
3.3.3.1Giải phương trình bậc 1
Nếu a != 0 thì gọi hàm tính nghiệm (tim_nghiem) để xác định nghiệm của phương trình
Ngược lại:
Nếu b != 0 thì thông báo phương trình vô nghiệm. Ngược lại, thông báo phương trình có vô số nghiệm.
Hàm tính nghiệm nhận hai hệ số a, b của phương trình bậc 1 ax + b = 0, tính toán và trả về nghiệm.
#include …
float tim_nghiem (float a, float b); // Tính nghiệm phương trình bậc 1 int main(int argc, char* argv[ ])
{
float a, b;
// Nhap vao cac he so cua phương trình bậc 1 // ???
if (a != 0)
printf( “Ptrinh %f x + %f = 0 co nghiem %f”, a, b, tim_nghiem(a, b)); else if (b != 0) printf( “Phuong trinh %f x + %f = 0 vo nghiem”, a, b);
else printf( “Phuong trinh %f x + %f = 0 co vo so nghiem”, a, b); getch (); return 0;
}
float tim_nghiem (float a, float b) // Tính nghiệm phương trình bậc 1 {
float nghiem;
// ???
return nghiem; }