/*auto readmore*/ /*auto readmore*/ /* an hien script*/ // an hien password /*an hien ma chuong trinh cong tru */ /*Scrollbox thanh cuon*/ /***Nhung CODE***/ /* dòng xanh dòng trắng */ /* https://cdnjs.com/libraries/prism lay thu vien, can vao ten file ma goi 1. copy link vao vi du:prism-python.min.js 2. ten ngon nua la python */ /*=== New posts ===*/ /*header slider*/ /*=== bai viet lien quan===*/ /*===tabcode===*/

[Tự Học Lập Trình C - Qua Các Bài Tập] COM108_Nhập Môn Lập Trình - Bài 3 - IF-ELSE SWITCH-CASE


MỤC ĐÍCH:
  • Biết cách sử dụng lệnh if-else
  • Biết cách sử dụng lệnh switch-case

LÝ THUYẾT:

Lệnh if (rẽ nhánh) được sử dụng để ra quyết định thực hiện một công việc nào đó tùy vào điều kiện đúng hay sai

Các ký hiệu lưu đồ căn bản


if-else:

Switch-case:




YÊU CẦU:

Bài làm quen: Nhập vào số nguyên, kiểm tra số vừa nhập là số chẵn hay số lẻ


Bài 1: 
Xây dựng chương trình tính học lực biết:
Học lực xuất sắc: Điểm >= 9
Học lực giỏi: 9 > điểm >= 8
Học lực khá: 8 > điểm >= 6.5
Học lực trung bình: 6.5 > điểm >= 5
Học lực yếu: 5 > điểm >= 3.5
Học lực kém: 3.5 > điểm

Input: Nhập vào điểm của sinh viên (0-10)
Output: Hiển thị ra màn hình học lực của sinh viên

Bài 2: Xây dựng chương trình giải phương trình:
2.1: Phương trình bậc 1 có dạng ax + b = 0
Input: nhập vào từ bàn phím giá trị của a, b
Output: Hiển thị nghiệm của phương trình
Biết rằng:
Nếu a == 0,
- b == 0: Phương trình có vô số nghiệm
- b != 0: Phương trình vô nghiệm
Ngược lại: Phương trình có nghiệm x = -b/a


2.2: Phương trình bậc 2 có dạng: ax2 + bx + c = 0
Input: Nhập vào từ bàn phím: a, b, c
Output: Nghiệm của phương trình
Biết rằng:
Nếu a == 0, phương trình thành bx + c = 0
Ngược lại nếu a != 0
- Tính delta
- Nếu delta < 0: Phương trình vô nghiệm
- Nếu delta == 0: Phương trình có nghiệm kép x = -b/(2*a)
- Nếu delta > 0: Phương trình có 2 nghiệm riêng biệt
  + X1 = (-b + căn(delta))/(2*a)
  + X2 = (-b – căn(delta))/(2*a)

Bài 3: Chương trình tính tiền điện
Input: Nhập vào số điện tiêu thụ hàng tháng
Output: Hiển thị số tiền cần phải đóng
Biết rằng:
TT Số kWh sử dụng được tính theo bậc Giá bán điện (đồng/kWh)
Bậc 1: Cho kWh từ 0 - 50 giá 1.678 (đồng/kWh)
Bậc 2: Cho kWh từ 51 - 100 giá 1.734
Bậc 3: Cho kWh từ 101 - 200 giá 2.014
Bậc 4: Cho kWh từ 201 - 300 giá 2.536
Bậc 5: Cho kWh từ 301 - 400 giá 2.834
Bậc 6: Cho kWh từ 401 trở lên giá 2.927

Bài 4: Sử dụng lệnh Switch-case để xây dựng menu chương trình cho 3 bài tập trên

Bài làm thêm:
Chương trình tính tiền cho quán Karaoke
Input: Nhập vào giờ bắt đầu, giờ kết thúc
Output: Hiển thị giá tiền cần thanh toán
Biết rằng:
Giá tiền 3 giờ đầu là 150000, bắt đầu giờ thứ 4 giảm 30%.
Quán chỉ hoạt động trong khoảng giờ từ 12 giờ -> 23 giờ.
Nếu giờ bắt đầu trong khoảng 14 -> 17 thì giảm tiếp 10% tổng tiền thanh toán

THỰC HIỆN:

Bài làm quen: 
Nhập vào số nguyên, kiểm tra số vừa nhập là số chẵn hay số lẻ
Lưu đồ thuật toán (Flowchart)

Code:
/*
Nhập vào số nguyên, 
Kiểm tra số vừa nhập là số chẵn hay số lẻ
Gợi ý:
Lấy số đó chia cho 2 mà không dư thì đó là số chẵn, ngược lại là số lẻ
*/
#include<stdio.h>

int main()
{
	int x ;
	printf("Nhap so nguyen: "); 
	scanf("%d", &x); 
	printf("\n=======================\n") ;
	if (x % 2 == 0) // chia lấy dư
	{
		printf("%d la so CHAN!\n", x);	
	} else {
		printf("%d la so LE!\n", x);
	}

}


Bài 1: Xây dựng chương trình tính học lực biết:
Học lực xuất sắc: Điểm >= 9
Học lực giỏi: 9 > điểm >= 8
Học lực khá: 8 > điểm >= 6.5
Học lực trung bình: 6.5 > điểm >= 5
Học lực yếu: 5 > điểm >= 3.5
Học lực kém: 3.5 > điểm

Input: Nhập vào điểm của sinh viên (0-10)
Output: Hiển thị ra màn hình học lực của sinh viên

code:
#include<stdio.h>
#include<conio.h>

int main()
{
	float diem;
	printf("Nhap vao diem Sinh Vien: "); 
	scanf("%f", &diem); 
	if (diem >=9)
	{
		printf("Hoc luc: XUAT SAC");
	} 
	else if (diem >=8)
	{
		printf("Hoc luc: GIOI");
	} 
	else if (diem >=6.5)
	{
		printf("Hoc luc: KHA");
	} 
	else if (diem >=5)
	{
		printf("Hoc luc: TRUNG BINH");
	} 
	else if (diem >=3.5)
	{
		printf("Hoc luc: YEU");
	} 
	else if (diem < 3.5)
	{
		printf("Hoc luc: KEM");
	}

return 0;
}


Bài 2: Xây dựng chương trình giải phương trình:
2.1: Phương trình bậc 1 có dạng ax + b = 0
Input: nhập vào từ bàn phím giá trị của a, b
Output: Hiển thị nghiệm của phương trình
Biết rằng:
Nếu a == 0,
- b == 0: Phương trình có vô số nghiệm
- b != 0: Phương trình vô nghiệm
Ngược lại: Phương trình có nghiệm x = -b/a

flow chart:





code:
/*
Xây dựng chương trình giải phương trình:
2.1: Phương trình bậc 1 có dạng ax + b = 0
Input: nhập vào từ bàn phím giá trị của a, b
Output: Hiển thị nghiệm của phương trình
Biết rằng:
Nếu a == 0,
- b == 0: Phương trình có vô số nghiệm
- b != 0: Phương trình vô nghiệm
Ngược lại: Phương trình có nghiệm x = -b/a

*/
#include<stdio.h>
#include<conio.h>

int main()
{
	float a, b;
	printf("Nhap vao he so a: "); 
	scanf("%f", &a); 
	printf("Nhap vao he so b: "); 
	scanf("%f", &b); 

	if (a == 0)
	{
		if (b == 0)
		{
			printf("Phuong trinh co VO SO NGHIEM!");
		} else {
			printf("Phuong trinh VO NGHIEM!");
		}
		
	} else {
		printf("Phuong trinh co nghiem x= %.2f", -b/a);

	}

return 0;
}

2.2: Phương trình bậc 2 có dạng: ax2 + bx + c = 0
Input: Nhập vào từ bàn phím: a, b, c
Output: Nghiệm của phương trình
Biết rằng:
Nếu a == 0, phương trình thành bx + c = 0
Ngược lại nếu a != 0
- Tính delta
- Nếu delta < 0: Phương trình vô nghiệm
- Nếu delta == 0: Phương trình có nghiệm kép x = -b/(2*a)
- Nếu delta > 0: Phương trình có 2 nghiệm riêng biệt
  + X1 = (-b + căn(delta))/(2*a)
  + X2 = (-b – căn(delta))/(2*a)

flow chart:



code:
/*
Xây dựng chương trình giải phương trình:
Phương trình bậc 2 có dạng: ax2 + bx + c = 0
Input: Nhập vào từ bàn phím: a, b, c
Output: Nghiệm của phương trình
Biết rằng:
Nếu a == 0, phương trình thành bx + c = 0
Ngược lại nếu a != 0
- Tính delta
- Nếu delta < 0: Phương trình vô nghiệm
- Nếu delta == 0: Phương trình có nghiệm kép x = -b/(2*a)
- Nếu delta > 0: Phương trình có 2 nghiệm riêng biệt
  + X1 = (-b + căn(delta))/(2*a)
  + X2 = (-b – căn(delta))/(2*a)

hàm căn bậc 2 là: sqrt()
*/
#include<stdio.h>
#include<conio.h>

int giaiPhuongTrinhBacNhat(float a, float b){
	if (a == 0)
		{
			if (b == 0)
			{
				printf("Phuong trinh co VO SO NGHIEM!");
			} else {
				printf("Phuong trinh VO NGHIEM!");
			}
			
		} else {
			printf("Phuong trinh co nghiem x= %.2f", -b/a);

		}
}

int main()
{
	float a, b, c, delta;
	printf("Nhap vao he so a: "); 
	scanf("%f", &a); 
	printf("Nhap vao he so b: "); 
	scanf("%f", &b); 
	printf("Nhap vao he so c: "); 
	scanf("%f", &c); 


	if (a == 0)
	{
		printf("Phuong trinh co dang phuong trinh Bac-Nhat\n");
		giaiPhuongTrinhBacNhat(c, b); // gọi hàm giải phương trình bậc nhất
	}
	else {
		// tính delta
		delta = b * b - 4 * a * c;
		if (delta < 0)
		{
			printf("Phuong trinh VO NGHIEM!");
		}
		else if (delta ==0)
		{
			printf("Phuong co NGHIEM KEP x= %.2f", -b/(2*a));
		}
		else
		{
			printf("Phuong trinh co 2 nghiem rieng biet\n");
			printf("X1 = %.2f\n", (-b + sqrt(delta))/(2*a));
			printf("X2 = %.2f\n", (-b - sqrt(delta))/(2*a));

		}
		
	}

return 0;
}

Bài 3: Chương trình tính tiền điện
Input: Nhập vào số điện tiêu thụ hàng tháng
Output: Hiển thị số tiền cần phải đóng
Biết rằng:
TT Số kWh sử dụng được tính theo bậc Giá bán điện (đồng/kWh)
Bậc 1: Cho kWh từ 0 - 50 giá 1.678 (đồng/kWh)
Bậc 2: Cho kWh từ 51 - 100 giá 1.734
Bậc 3: Cho kWh từ 101 - 200 giá 2.014
Bậc 4: Cho kWh từ 201 - 300 giá 2.536
Bậc 5: Cho kWh từ 301 - 400 giá 2.834
Bậc 6: Cho kWh từ 401 trở lên giá 2.927

code:
/*
Chương trình tính tiền điện
Input: Nhập vào số điện tiêu thụ hàng tháng
Output: Hiển thị số tiền cần phải đóng
Biết rằng:
tt_ Số kWh sử dụng được tính theo bậc Giá bán điện (đồng/kWh)
Bậc 1: Cho kWh từ 0 - 50 giá 1.678 (đồng/kWh)
Bậc 2: Cho kWh từ 51 - 100 giá 1.734
Bậc 3: Cho kWh từ 101 - 200 giá 2.014
Bậc 4: Cho kWh từ 201 - 300 giá 2.536
Bậc 5: Cho kWh từ 301 - 400 giá 2.834
Bậc 6: Cho kWh từ 401 trở lên giá 2.927
*/
#include<stdio.h>
#include<conio.h>

int main()
{
	int soDien, thanhTien;
    int tt_050, tt_100, tt_200, tt_300, tt_400, tt_401;
    // khởi tạo giá trị ban đầu = 0
    tt_050 = 0;
    tt_100 = 0;
    tt_200 = 0; 
    tt_300 = 0;
    tt_400 = 0;
    tt_401 = 0;
	printf("Nhap vao so kWh tieu thu: "); 
	scanf("%d", &soDien); 
	thanhTien = 0;
	if (soDien <= 50)
    {
        tt_050 = 50 * 1806;
        thanhTien = tt_050;
    }
    else if (soDien <= 100)
    {
        tt_050 = 50 * 1806;
        tt_100 = (soDien - 50) * 1866;
        thanhTien = tt_050 + tt_100;
    }
    else if (soDien <= 200)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (soDien - 100) * 2167;
        thanhTien = tt_050 + tt_100 + tt_200;
    }
    else if (soDien <= 300)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (soDien - 200) * 2729;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300;
    }
    else if (soDien <= 400)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (300 - 200) * 2729;
        tt_400 = (soDien - 300) * 3050;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300 + tt_400;
    }
    else
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (300 - 200) * 2729;
        tt_400 = (400 - 300) * 3050;
        tt_401 = (soDien - 400) * 3151;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300 + tt_400 + tt_401;
    }
    printf("\n===========KET QUA===========\n");
    printf("So tien phai Thanh toan la: %d\n", thanhTien);
    printf("Chi tiet: %d\t%d\t%d\t%d\t%d\t%d", tt_050, tt_100, tt_200, tt_300, tt_400, tt_401);
return 0;
}

Bài 4: Sử dụng lệnh Switch-case để xây dựng menu chương trình cho 3 bài tập trên

code:
/*
Sử dụng lệnh Switch-case để xây dựng menu chương trình cho 3 bài tập trên
*/

#include<stdio.h>

// các hàm 
int bai_01() // tính học lực
{
	float diem;
	printf("Nhap vao diem Sinh Vien: "); 
	scanf("%f", &diem); 
	if (diem >=9)
	{
		printf("Hoc luc: XUAT SAC");
	} 
	else if (diem >=8)
	{
		printf("Hoc luc: GIOI");
	} 
	else if (diem >=6.5)
	{
		printf("Hoc luc: KHA");
	} 
	else if (diem >=5)
	{
		printf("Hoc luc: TRUNG BINH");
	} 
	else if (diem >=3.5)
	{
		printf("Hoc luc: YEU");
	} 
	else if (diem < 3.5)
	{
		printf("Hoc luc: KEM");
	}

return 0;
}

int bai_21() // phương trình bậc nhất
{
	float a, b;
	printf("Nhap vao he so a: "); 
	scanf("%f", &a); 
	printf("Nhap vao he so b: "); 
	scanf("%f", &b); 

	if (a == 0)
	{
		if (b == 0)
		{
			printf("Phuong trinh co VO SO NGHIEM!");
		} else {
			printf("Phuong trinh VO NGHIEM!");
		}
		
	} else {
		printf("Phuong trinh co nghiem x= %.2f", -b/a);

	}

return 0;
}

int giaiPhuongTrinhBacNhat(float a, float b){ // phương trình bậc nhất truyền tham số
	if (a == 0)
		{
			if (b == 0)
			{
				printf("Phuong trinh co VO SO NGHIEM!");
			} else {
				printf("Phuong trinh VO NGHIEM!");
			}
			
		} else {
			printf("Phuong trinh co nghiem x= %.2f", -b/a);

		}
}
int bai_22() // phương trình bậc hai
{
	float a, b, c, delta;
	printf("Nhap vao he so a: "); 
	scanf("%f", &a); 
	printf("Nhap vao he so b: "); 
	scanf("%f", &b); 
	printf("Nhap vao he so c: "); 
	scanf("%f", &c); 


	if (a == 0)
	{
		printf("Phuong trinh co dang phuong trinh Bac-Nhat\n");
		giaiPhuongTrinhBacNhat(c, b); // gọi hàm giải phương trình bậc nhất
	}
	else {
		// tính delta
		delta = b * b - 4 * a * c;
		if (delta < 0)
		{
			printf("Phuong trinh VO NGHIEM!");
		}
		else if (delta ==0)
		{
			printf("Phuong co NGHIEM KEP x= %.2f", -b/(2*a));
		}
		else
		{
			printf("Phuong trinh co 2 nghiem rieng biet\n");
			printf("X1 = %.2f\n", (-b + sqrt(delta))/(2*a));
			printf("X2 = %.2f\n", (-b - sqrt(delta))/(2*a));

		}
		
	}

return 0;
}

int bai_03() // tính tiền điện
{
	int soDien, thanhTien;
    int tt_050, tt_100, tt_200, tt_300, tt_400, tt_401;
    // khởi tạo giá trị ban đầu = 0
    tt_050 = 0;
    tt_100 = 0;
    tt_200 = 0; 
    tt_300 = 0;
    tt_400 = 0;
    tt_401 = 0;
	printf("Nhap vao so kWh tieu thu: "); 
	scanf("%d", &soDien); 
	thanhTien = 0;
	if (soDien <= 50)
    {
        tt_050 = 50 * 1806;
        thanhTien = tt_050;
    }
    else if (soDien <= 100)
    {
        tt_050 = 50 * 1806;
        tt_100 = (soDien - 50) * 1866;
        thanhTien = tt_050 + tt_100;
    }
    else if (soDien <= 200)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (soDien - 100) * 2167;
        thanhTien = tt_050 + tt_100 + tt_200;
    }
    else if (soDien <= 300)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (soDien - 200) * 2729;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300;
    }
    else if (soDien <= 400)
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (300 - 200) * 2729;
        tt_400 = (soDien - 300) * 3050;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300 + tt_400;
    }
    else
    {
        tt_050 = 50 * 1806;
        tt_100 = (100 - 50) * 1866;
        tt_200 = (200 - 100) * 2167;
        tt_300 = (300 - 200) * 2729;
        tt_400 = (400 - 300) * 3050;
        tt_401 = (soDien - 400) * 3151;
        thanhTien = tt_050 + tt_100 + tt_200 + tt_300 + tt_400 + tt_401;
    }
    printf("\n===========KET QUA===========\n");
    printf("So tien phai Thanh toan la: %d\n", thanhTien);
    printf("Chi tiet: %d\t%d\t%d\t%d\t%d\t%d", tt_050, tt_100, tt_200, tt_300, tt_400, tt_401);
return 0;
}

// hàm main
int main()

{
    int luaChon;
    printf("===== MENU LUA CHON ====\n");
    printf("1. Tinh hoc luc - Lab3: bai 1\n");
    printf("2. Giai phuong trinh bac nhat - Lab3 bai 2.1\n");
    printf("3. Giai phuong trinh bac hai -  Lab3 bai 2.2\n");
    printf("4. Chuong trinh tinh tien dien - Lab3 bai 3\n");
    printf("0. THOAT CHUONG TRINH!\n");
    printf("\n");
    printf("Lua chon cua ban la: ");
    scanf("%d", &luaChon);
    printf("==================================\n");
    switch (luaChon)
    {
    case 1:
        bai_01(); // gọi hàm bai_1 phía trên hàm main()
        break;
    case 2:
        bai_21();
        break;
    case 3:
        bai_22();
        break;
    case 4:
        bai_03();
        break;
    case 0: 
        break;
    default:
        printf("Lua chon KHONG DUNG!");
        break;
    }
}


Bài làm thêm:
Chương trình tính tiền cho quán Karaoke
Input: Nhập vào giờ bắt đầu, giờ kết thúc
Output: Hiển thị giá tiền cần thanh toán
Biết rằng:
Giá tiền 3 giờ đầu là 150000, bắt đầu giờ thứ 4 giảm 30%.
Quán chỉ hoạt động trong khoảng giờ từ 12 giờ -> 23 giờ.
Nếu giờ bắt đầu trong khoảng 14 -> 17 thì giảm tiếp 10% tổng tiền thanh toán

Code:
/*
Chương trình tính tiền cho quán Karaoke
Input: Nhập vào giờ bắt đầu, giờ kết thúc
Output: Hiển thị giá tiền cần thanh toán
Biết rằng:
Giá tiền 3 giờ đầu là 150000, bắt đầu giờ thứ 4 giảm 30%.
Quán chỉ hoạt động trong khoảng giờ từ 12 giờ  23 giờ.
Nếu giờ bắt đầu trong khoảng 14  17 thì giảm tiếp 10% tổng tiền thanh toán
*/
#include<stdio.h>
int main()
{
	int gioVao;
	int gioRa;
	int tongThoiGianHat;
	
//	gioVao = 13;
//	gioRa = 19;
	printf ("Nhap gio vao: "); 
	scanf ("%d", &gioVao);
	printf ("Nhap gio ra: "); 
	scanf ("%d", &gioRa);
	tongThoiGianHat = gioRa - gioVao;
	
	int giaFull = 150000;
	int giaGiam = giaFull * 0.7 ; 
	// int giaGiam = giaFull - giaFull * 0.3 ; // Hoặc

	int tongTienThanhToan;
	int tongTienDuoi_3gio;
	int tongTienTren_3gio_NeuCo;
	
	if (tongThoiGianHat <= 3){
		tongTienTren_3gio_NeuCo = 0;
		tongTienDuoi_3gio = tongThoiGianHat * giaFull;
	}else{
		tongTienTren_3gio_NeuCo = (tongThoiGianHat - 3 ) * giaGiam;
		tongTienDuoi_3gio = 3 * giaFull;
	}
	
	tongTienThanhToan = tongTienDuoi_3gio + tongTienTren_3gio_NeuCo;
	
	if (gioVao >= 14 && gioVao <= 17){
		tongTienThanhToan = tongTienThanhToan - tongTienThanhToan * 0.1; 
	}
	printf("\nTong tien thanh toan: %d", tongTienThanhToan);
}

Xong!

No comments:

Post a Comment

/*header slide*/