Đề bài
Parse 2: Thực hiện chức năng 4
Chức năng số 4: Tính tiền điện- Input: Nhập vào số (kwh) điện sử dụng
- Output: Hiển thị ra số tiền cần phải trả
- Biết rằng:
TT | Số kWh sử dụng | Giá bán điển (đồng/kWh) |
Bậc 1 | Cho kWh từ 0 - 50 | 1.678 |
Bậc 2 | Cho kWh từ 51 - 100 | 1.734 |
Bậc 3 | Cho kWh từ 101 - 200 | 2.014 |
Bậc 4 | Cho kWh từ 201 - 300 | 2.536 |
Bậc 5 | Cho kWh từ 301 - 400 | 2.834 |
Bậc 6 | Cho kWh từ 401 trở lên | 2.927 |
Hướng dẫn giải
/* PARSE 2: thực hiện các chức năng trong chương trình */ #include<stdio.h> #include<conio.h> #include<stdlib.h> /* Chức năng số 4: Tính tiền điện Input: Nhập vào số (kwh) điện sử dụng Output: Hiển thị ra số tiền cần phải trả Biết rằng: TT Số | kWh sử dụng | Giá bán điện (đồng/kWh) --------------------------------------------------------- Bậc 1 | Cho kWh từ 0 - 50 | 1.678 Bậc 2 | Cho kWh từ 51 - 100 | 1.734 Bậc 3 | Cho kWh từ 101 - 200 | 2.014 Bậc 4 | Cho kWh từ 201 - 300 | 2.536 Bậc 5 | Cho kWh từ 301 - 400 | 2.834 Bậc 6 | Cho kWh từ 401 trở lên | 2.927 */ void chucNangSo4() { // 1. Khai báo biến float tong_so_dien_tieu_thu; // 2. INPUT nhập liệu printf("Moi so tong so dien tieu thu: "); scanf("%f", &tong_so_dien_tieu_thu); // 3. PROCESS xử lý tính toán theo Nghiệp vụ Logic float gia_tien_bac_1 = 1.678; float gia_tien_bac_2 = 1.734; float gia_tien_bac_3 = 2.014; float gia_tien_bac_4 = 2.536; float gia_tien_bac_5 = 2.834; float gia_tien_bac_6 = 2.927; float so_kwh_tinh_tien_bac_1 = 0; float so_kwh_tinh_tien_bac_2 = 0; float so_kwh_tinh_tien_bac_3 = 0; float so_kwh_tinh_tien_bac_4 = 0; float so_kwh_tinh_tien_bac_5 = 0; float so_kwh_tinh_tien_bac_6 = 0; float so_tien_phai_tra_bac_1 = 0; float so_tien_phai_tra_bac_2 = 0; float so_tien_phai_tra_bac_3 = 0; float so_tien_phai_tra_bac_4 = 0; float so_tien_phai_tra_bac_5 = 0; float so_tien_phai_tra_bac_6 = 0; float tong_so_tien_phai_tra = 0; float so_kwh_con_lai_chua_tinh_tien = 0; if(tong_so_dien_tieu_thu >= 0 && tong_so_dien_tieu_thu <= 50) { printf("bac 1\n"); // Xai trong dinh muc dien bac 1 (0 - 50 kWh) so_kwh_tinh_tien_bac_1 = tong_so_dien_tieu_thu; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra = tong_so_dien_tieu_thu * gia_tien_bac_1; } else if(tong_so_dien_tieu_thu >= 51 && tong_so_dien_tieu_thu <= 100) { printf("bac 2\n"); // Xai den dinh muc dien bac 2 (51 - 100 kWh) // => tien dien bac 1 la phai tra du so_kwh_tinh_tien_bac_1 = 50; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra += so_tien_phai_tra_bac_1; so_kwh_con_lai_chua_tinh_tien = tong_so_dien_tieu_thu - so_kwh_tinh_tien_bac_1; // tinh tien bac 2 so_kwh_tinh_tien_bac_2 = so_kwh_con_lai_chua_tinh_tien; so_tien_phai_tra_bac_2 = so_kwh_tinh_tien_bac_2 * gia_tien_bac_2; tong_so_tien_phai_tra += so_tien_phai_tra_bac_2; } else if(tong_so_dien_tieu_thu >= 101 && tong_so_dien_tieu_thu <= 200) { printf("bac 3\n"); // Xai den dinh muc dien bac 3 (101 - 200 kWh) // => tien dien bac 1 la phai tra du so_kwh_tinh_tien_bac_1 = 50; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra += so_tien_phai_tra_bac_1; so_kwh_con_lai_chua_tinh_tien = tong_so_dien_tieu_thu - so_kwh_tinh_tien_bac_1; // => tien dien bac 2 la phai tra du so_kwh_tinh_tien_bac_2 = 50; so_tien_phai_tra_bac_2 = so_kwh_tinh_tien_bac_2 * gia_tien_bac_2; tong_so_tien_phai_tra += so_tien_phai_tra_bac_2; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_2; // tinh tien bac 3 so_kwh_tinh_tien_bac_3 = so_kwh_con_lai_chua_tinh_tien; so_tien_phai_tra_bac_3 = so_kwh_tinh_tien_bac_3 * gia_tien_bac_3; tong_so_tien_phai_tra += so_tien_phai_tra_bac_3; } else if(tong_so_dien_tieu_thu >= 201 && tong_so_dien_tieu_thu <= 300) { printf("bac 4\n"); // Xai den dinh muc dien bac 4 (201 - 300 kWh) // => tien dien bac 1 la phai tra du so_kwh_tinh_tien_bac_1 = 50; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra += so_tien_phai_tra_bac_1; so_kwh_con_lai_chua_tinh_tien = tong_so_dien_tieu_thu - so_kwh_tinh_tien_bac_1; // => tien dien bac 2 la phai tra du so_kwh_tinh_tien_bac_2 = 50; so_tien_phai_tra_bac_2 = so_kwh_tinh_tien_bac_2 * gia_tien_bac_2; tong_so_tien_phai_tra += so_tien_phai_tra_bac_2; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_2; // => tien dien bac 3 la phai tra du so_kwh_tinh_tien_bac_3 = 100; so_tien_phai_tra_bac_3 = so_kwh_tinh_tien_bac_3 * gia_tien_bac_3; tong_so_tien_phai_tra += so_tien_phai_tra_bac_3; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_3; // tinh tien bac 4 so_kwh_tinh_tien_bac_4 = so_kwh_con_lai_chua_tinh_tien; so_tien_phai_tra_bac_4 = so_kwh_tinh_tien_bac_4 * gia_tien_bac_4; tong_so_tien_phai_tra += so_tien_phai_tra_bac_4; } else if(tong_so_dien_tieu_thu >= 301 && tong_so_dien_tieu_thu <= 400) { printf("bac 5\n"); // Xai den dinh muc dien bac 5 (301 - 400 kWh) // => tien dien bac 1 la phai tra du so_kwh_tinh_tien_bac_1 = 50; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra += so_tien_phai_tra_bac_1; so_kwh_con_lai_chua_tinh_tien = tong_so_dien_tieu_thu - so_kwh_tinh_tien_bac_1; // => tien dien bac 2 la phai tra du so_kwh_tinh_tien_bac_2 = 50; so_tien_phai_tra_bac_2 = so_kwh_tinh_tien_bac_2 * gia_tien_bac_2; tong_so_tien_phai_tra += so_tien_phai_tra_bac_2; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_2; // => tien dien bac 3 la phai tra du so_kwh_tinh_tien_bac_3 = 100; so_tien_phai_tra_bac_3 = so_kwh_tinh_tien_bac_3 * gia_tien_bac_3; tong_so_tien_phai_tra += so_tien_phai_tra_bac_3; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_3; // => tien dien bac 4 la phai tra du so_kwh_tinh_tien_bac_4 = 100; so_tien_phai_tra_bac_4 = so_kwh_tinh_tien_bac_4 * gia_tien_bac_4; tong_so_tien_phai_tra += so_tien_phai_tra_bac_4; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_4; // tinh tien bac 5 so_kwh_tinh_tien_bac_5 = so_kwh_con_lai_chua_tinh_tien; so_tien_phai_tra_bac_5 = so_kwh_tinh_tien_bac_5 * gia_tien_bac_5; tong_so_tien_phai_tra += so_tien_phai_tra_bac_5; } else { printf("bac 6\n"); // Xai den dinh muc dien bac 6 (401 kWh tro len) // => tien dien bac 1 la phai tra du so_kwh_tinh_tien_bac_1 = 50; so_tien_phai_tra_bac_1 = so_kwh_tinh_tien_bac_1 * gia_tien_bac_1; tong_so_tien_phai_tra += so_tien_phai_tra_bac_1; so_kwh_con_lai_chua_tinh_tien = tong_so_dien_tieu_thu - so_kwh_tinh_tien_bac_1; // => tien dien bac 2 la phai tra du so_kwh_tinh_tien_bac_2 = 50; so_tien_phai_tra_bac_2 = so_kwh_tinh_tien_bac_2 * gia_tien_bac_2; tong_so_tien_phai_tra += so_tien_phai_tra_bac_2; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_2; // => tien dien bac 3 la phai tra du so_kwh_tinh_tien_bac_3 = 100; so_tien_phai_tra_bac_3 = so_kwh_tinh_tien_bac_3 * gia_tien_bac_3; tong_so_tien_phai_tra += so_tien_phai_tra_bac_3; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_3; // => tien dien bac 4 la phai tra du so_kwh_tinh_tien_bac_4 = 100; so_tien_phai_tra_bac_4 = so_kwh_tinh_tien_bac_4 * gia_tien_bac_4; tong_so_tien_phai_tra += so_tien_phai_tra_bac_4; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_4; // => tien dien bac 5 la phai tra du so_kwh_tinh_tien_bac_5 = 100; so_tien_phai_tra_bac_5 = so_kwh_tinh_tien_bac_5 * gia_tien_bac_5; tong_so_tien_phai_tra += so_tien_phai_tra_bac_5; so_kwh_con_lai_chua_tinh_tien -= so_kwh_tinh_tien_bac_5; // tinh tien bac 6 so_kwh_tinh_tien_bac_6 = so_kwh_con_lai_chua_tinh_tien; so_tien_phai_tra_bac_6 = so_kwh_tinh_tien_bac_6 * gia_tien_bac_6; tong_so_tien_phai_tra += so_tien_phai_tra_bac_6; } // 4. OUTPUT xuất ra màn hình printf("====== CHUONG TRINH TINH TIEN DIEN THEO BAC ======\n"); printf("Thong tin:\n"); printf("- Tong so dien tieu thu: %.0f kWh\n", tong_so_dien_tieu_thu); printf("- Bac 1: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_1, gia_tien_bac_1, so_tien_phai_tra_bac_1); printf("- Bac 2: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_2, gia_tien_bac_2, so_tien_phai_tra_bac_2); printf("- Bac 3: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_3, gia_tien_bac_3, so_tien_phai_tra_bac_3); printf("- Bac 4: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_4, gia_tien_bac_4, so_tien_phai_tra_bac_4); printf("- Bac 5: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_5, gia_tien_bac_5, so_tien_phai_tra_bac_5); printf("- Bac 6: %.0f kWh * %.4f = %.4f \n", so_kwh_tinh_tien_bac_6, gia_tien_bac_6, so_tien_phai_tra_bac_6); printf("- Tong tien phai tra: %.4f \n", tong_so_tien_phai_tra); } int main() { // 1. Khai báo biến char yn; int lua_chon = -1; // 2. OUTPUT xuất ra màn hình MENU Chon: printf("================ MENU CHUONG TRINH ==============\n"); printf("+ 0. Thoat. +\n"); printf("+ 1. Kiem tra so nguyen. +\n"); printf("+ 2. Tim Uoc so chung va Boi so chung cua 2 so. +\n"); printf("+ 3. Tinh tien cho quan Karaoke. +\n"); printf("+ 4. Tinh tien dien. +\n"); printf("+ 5. Doi tien. +\n"); printf("+ 6. Tinh lai suat vay ngan hang vay tra gop. +\n"); printf("+ 7. Vay tien mua xe. +\n"); printf("+ 8. Sap xep thong tin sinh vien. +\n"); printf("+ 9. Xay dung game LOTT. +\n"); printf("+ 10. Tinh toan phan so. +\n"); printf("=================================================\n"); Nhap: printf("Moi ban chon: "); scanf("%d", &lua_chon); // Thoat if(lua_chon == 0) { printf("Cam on ban da su dung chuong trinh. Hen gap lai!!!"); return 0; } // Thuc hien cac chuong trinh switch(lua_chon) { case 1: // Kiem tra so nguyen break; case 2: // Tim Uoc so chung va Boi so chung cua 2 so break; case 3: // Tinh tien cho quan Karaoke break; case 4: // Tinh tien dien chucNangSo4(); break; case 5: // Doi tien break; case 6: // Tinh lai suat vay ngan hang vay tra gop break; case 7: // Vay tien mua xe break; case 8: // Sap xep thong tin sinh vien break; case 9: // Xay dung game LOTT break; case 10: // Tinh toan phan so break; default: printf("Vui long chi lua chon tu 1-10. Moi ban nhap lai..."); goto Nhap; break; } // Hỏi có muốn tiêp tục sử dụng chương trình hay không? fflush(stdin); printf("Ban co muon tiep tuc (Y/N): "); scanf("%c", &yn); if(yn == 'y' || yn == 'Y'){ system("cls"); // Clear màn hình goto Chon; } else exit(0); getch(); // Lenh dung man hinh return 0; }
Tính theo cách sử dụng vòng lặp
- Code:
void chucNangSo4_Cach2() { // 1. Khai báo biến float gia_dien_theo_bac[6] = { 1.678, 1.734, 2.014, 2.536, 2.834, 2.927 }; int so_kwh_duoc_tinh_tien_theo_bac[6] = { 50 , 50 , 100 , 100 , 100 , 999999 }; //999999 xem như vô cùng int so_kwh_max_theo_bac[6] = { 50 , 100 , 200 , 300 , 400 , 999999 }; //999999 xem như vô cùng // 2. INPUT nhập liệu float tong_so_dien_tieu_thu; printf("Moi so tong so dien tieu thu: "); scanf("%f", &tong_so_dien_tieu_thu); // 3. Xác định xem tổng số điện tiêu thụ đã đến bậc nào int bac = 0; for(int i=0; i<6; i++) { if(tong_so_dien_tieu_thu < so_kwh_max_theo_bac[i]) { bac = i; break; } } // 4. Tính tiền theo bậc printf("====== CHUONG TRINH TINH TIEN DIEN THEO BAC ======\n"); printf("Thong tin:\n"); printf("- Tong so dien tieu thu: %.0f kWh\n", tong_so_dien_tieu_thu); float tong_so_tien_phai_tra = 0; for(int i=0; i<=bac; i++) { float sotienphaitra_theo_bacdangxet = 0; int sokwh_theo_bacdangxet = 0; if(i == bac) { if(i-1 > 0) { sokwh_theo_bacdangxet = tong_so_dien_tieu_thu - so_kwh_max_theo_bac[i - 1]; } else { sokwh_theo_bacdangxet = tong_so_dien_tieu_thu; } sotienphaitra_theo_bacdangxet = gia_dien_theo_bac[i] * sokwh_theo_bacdangxet; tong_so_tien_phai_tra += sotienphaitra_theo_bacdangxet; printf("- Bac %d: %d kWh * %.4f = %.4f \n", (i+1), sokwh_theo_bacdangxet, gia_dien_theo_bac[i], sotienphaitra_theo_bacdangxet); } else { sotienphaitra_theo_bacdangxet = gia_dien_theo_bac[i] * so_kwh_duoc_tinh_tien_theo_bac[i]; tong_so_tien_phai_tra += sotienphaitra_theo_bacdangxet; printf("- Bac %d: %d kWh * %.4f = %.4f \n", (i+1), so_kwh_duoc_tinh_tien_theo_bac[i], gia_dien_theo_bac[i], sotienphaitra_theo_bacdangxet); } } printf("- Tong tien phai tra: %.4f \n", tong_so_tien_phai_tra); }
Chương trình học
Các bài học
Bài học trước Bài học tiếp theo
Chương trình học
Bao gồm Module, Chương, Bài học, Bài tập, Kiểm tra...Chương trình học
Bài học trước Bài học tiếp theo