Giáo trình Lập trình cơ bản C - Bài 8: Điều kiện (Tiếp theo)

Bài 8  
Điều kiện  
Mục tiêu:  
Kết thúc bài học này, bạn thể:  
Sử dụng:  
Câu lệnh if  
Câu lệnh if – else  
Câu lệnh với nhiều if  
Câu lệnh if lồng nhau  
Câu lệnh switch.  
Các bước trong bài học này được trình bày chi tiết, rõ ràng và cẩn thận. Điều này giúp ta hiểu về  
công cụ lập trình. Thực hiện theo các bước sau thật cẩn thận.  
Phần I - Trong thời gian 1 giờ 30 phút đầu:  
8.1 Lệnh if:  
dụ 1:  
Trong phần này chúng ta sẽ viết một chương trình để tính tiền hoa hồng phải trả cho người bán hàng  
dựa vào số lượng hàng họ bán được.  
Bài toán:  
Công ty SARA sẽ trả 10% tiền hoa hồng cho nhân viên bán hàng của công ty nếu doanh số bán hàng  
của nhân viên đạt $10,000 hoặc hơn. Tính tiền hoa hồng phải trả cuối mỗi thánng.  
Bài toán khai báo hai biến kiểu ‘float’ là sales_amt com. Chú ý, các biến được khai báo trong cùng  
một dòng trong chương trình thì sử dụng dấu phẩy (,) để phân cách giữa các biến.  
Theo dõi đoạn lệnh dưới đây:  
printf(“Enter the Sales Amount: “);  
scanf(“%f”,&sales_amt);  
Trong hàm printf(), chúng ta hiển thị thông điệp yêu cầu nhập doanh số bán hàng, và trong hàm  
scanf() sử dụng %f để nhận một giá trị từ người dùng. Giá trị nhập vào sẽ được gán cho biến  
sales_amt.  
if (sales_amt >= 10000)  
com = sales_amt * 0.1;  
Câu lệnh trên được dùng để kiểm tra giá trị của biến sales_amt lớn hơn hoặc bằng 10000 không. >=  
là toán tử so sánh, sẽ trả về giá trị đúng hoặc sai. Trong trường hợp, nếu bạn nhập vào giá tri 15000,  
điều kiện (sales_amt >= 10000) kết quả đúng. Nếu đúng, nó sẽ thực thi câu lệnh com =  
sales_amt * 0.1. Bây giờ giá trị của biến com sẽ 1500. Nếu điều kiện sai, nó sẽ in ra giá trị tiền  
hoa hồng là 0. Ở đây chúng ta thấy, điều kiện if chỉ một lệnh duy nhất. Nếu nhiều hơn một lệnh  
cho điều kiện if, các lệnh phải được đặt trong cặp dấu ngoặc {}.  
printf(“\n Commission = %f”, com);  
Câu lệnh trên được sử dụng để hiển thị giá trị tiền hoa hồng. ‘%f’ được sử dụng để hiển thị giá trị của  
một biến ‘float’ được đưa ra sau dấu phẩy ở cuối của hàm printf(). Vì vậy, printf() ở đây hiển thị tiền  
hoa hồng tính được.  
Điều kiện  
1
8.1.1 Tính tiền hoa hồng:  
1. Tạo một tập tin mới.  
2. Nhập vào đoạn lệnh sau đây trong của sổ ‘Edit Window’:  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
float com = 0, sales_amt;  
clrscr();  
printf(“Enter the Sales Amount: “);  
scanf(“%f”, &sales_amt);  
if (sales_amt >= 10000)  
com = sales_amt * 0.1;  
printf(“\n Commission = %f”, com);  
}
3. Lưu tập tin với tên comm.C.  
4. Biên dịch tập tin comm.C.  
5. Thực thi chương trinh comm.C.  
6. Trở về cửa sổ ‘Edit Window’.  
KẾT QUẢ:  
Enter the Sales Amount: 15000  
Commission = 1500.000  
8.2 Lệnh ‘if-else’:  
Trong phần này chúng ta sẽ viết một chương trình sử dụng lệnh if-else. Chương trình hiển thị số lớn  
hơn trong hai số.  
Theo dõi các dòng mã lệnh sau:  
if (num1 > num2)  
printf(“\n The greater number is: %d”, num1);  
else  
printf(“\ The greater number is: %d”, num2);  
Trong đoạn lệnh này hàm printf() đầu tiên chỉ được thực thi nếu giá trị của biến num1 lớn hơn giá  
trị của biến num2, khi đó phần else được bỏ qua. Nếu giá trị của biến num1 không lớn hơn giá trị của  
biến num2, hàm printf() được bỏ qua. Trong trường hợp này hàm printf() thứ hai, lệnh theo sau else,  
được thực thi.  
Trong chương trình sau, bởi vì giá trị của biến num1 lớn hơn num2, hàm printf() đầu tiên được thực  
thi.  
1. Tạo một tập tin mới.  
2. Nhập vào đoạn lệnh sau đây trong của sổ ‘Edit Window’:  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
int Num1, Num2;  
clrscr();  
2
Lập trình cơ bản C  
Num1 = 540;  
Num2 = 243;  
if (Num1 > Num2)  
printf(“\n The Greater Number Is: %d”, Num1);  
else  
printf(“\n The Greater Number Is: %d”, Num2);  
}
1. Lưu tập tin với tên ifelse.C.  
2. Biên dịch chương trình ifelse.C.  
3. Thực thi chương trình ifelse.C.  
4. Trở về cửa sổ ‘Edit Window’.  
KẾT QUẢ:  
The greater number is: 540  
8.3 Lệnh ‘if-else-if’:  
Trong phần này chúng ta sẽ viết một chương trình sử dụng lệnh if – else – if. Chương trình sẽ hiển thị  
số lớn hơn trong hai số, hoặc sẽ hiển thị các số bằng nhau.  
Trong chương trình ở phần trước, có hai biến ‘số nguyên’ num1 num2 được khai báo. Các biến  
được gán giá trị.  
Quan sát các dòng mã lệnh sau:  
if (num1 == num2)  
printf(“\nNumbers are Equal”);  
else if (num1 < num2)  
printf(“\nThe Larger Number is: %d”, num2);  
else  
printf(“\nThe Larger Number is: %d”, num1);  
Trong đoạn lệnh trên, điều kiên ‘ifđầu tiên (num1 == num2) kiểm tra xem giá trị của biến num1  
bằng biến num2 không. Trong C, ký hiệu == được sử dụng để kiểm tra hai toán hạng bằng nhau  
không. Nếu điều kiện đầu tiên (num1 == num2) có giá trị true thì hàm printf() theo ngay sau sẽ được  
thực thi. Nếu điều kiện đầu tiên không đúng, điều kiện của else-if sẽ được kiểm tra. Trong trường hợp  
điều kiện này (num1 < num2) thỏa, hàm printf() theo sau nó sẽ được thực thi. Nếu cả hai điều kiện  
của if else if đều không thỏa mãn, thì câu lệnh sau else cuối cùng sẽ được thực thi.  
Trong chương trình dưới đây, vì giá trị của num1 nhỏ hơn num2, lệnh printf() thứ hai sẽ được thực thi.  
1. Tạo một tập tin mới.  
2. Nhập đoạn lệnh sau trong cửa sổ ‘Edit Window’.  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
int num1, num2;  
num1 = 77;  
num2 = 90;  
if (num1 == num2)  
printf(“\nThe Numbers are equal”);  
else if (num1 < num2)  
Điều kiện  
3
printf(“\n The Larger Number is: %d”, num2);  
printf(“\n The Larger Number is: %d”, num1);  
else  
}
1. Lưu tập tin với tên ifelseif.C.  
2. Biên dịch tập tin ifelseif.C.  
3. Thực thi chương trình ifelseif.C.  
4. Trở về cửa sổ ‘Edit Window’.  
KẾT QUẢ:  
The Larger Number is: 90  
8.4 Lệnh ‘if lồng nhau’:  
Trong phần này chúng ta sẽ viết một chương trình để hiểu về lệnh if lồng nhau’.  
Bài toán:  
Công ty MONTEK đã ra quyết định chi tiền hoa hồng cho bộ phận bán hàng tùy thuộc vào doanh thu  
bán sản phẩm. Tỷ lệ hoa hồng được tính như sau:  
Doanh thu bán  
> 10,000$  
Loại sản phẩm  
Hoa hồng  
10%  
8%  
A
--  
--  
<= 10,000  
5%  
Tính tiền hoa hồng cuối mỗi tháng.  
Trong chương trình này chúng ta tính tiền hoa hồng dựa vào loại sản phẩm lượng sản phẩm bán  
được.  
Quan sát các dòng mã lệnh sau:  
printf(“\Enter the Sales Amount: “);  
scanf(“%f”,&sales_amt);  
printf(“\n Enter the Grade: “);  
scanf(“%c”,&grade);  
Hàm scanf() đầu tiên được dùng để nhập doanh thu bán hàng, và hàm scanf() thứ hai được sử dụng để  
nhập loại sản phẩm. Định dạng %c được sử dụng để nhận một tự từ người dùng.  
Commented [ndd1]:  
if (sales_amt > 10000)  
if (grade == ‘A’)  
com = sales_amt * 0.1;  
else  
come = sales_amt * 0.08;  
else  
com = sales_amt * 0.05;  
Giả sử chúng ta nhập doanh thu bán hàng là 15000 và loại sản phẩm là ‘A’. Chương trình sẽ kiểm tra  
điều kiện if (sales_amt > 10000); vì điều kiện này có kết quả đúng, chương trình sẽ tiếp tục lệnh if thứ  
hai (grade == ‘A’). Điều kiện này cũng thỏa, vậy tiền hoa hồng được tính com = sales_amt * 0.1.  
Chúng ta xem một tình huống khác với doanh thu bán hàng là 15000 và loại sản phẩm là ‘B’. Chương  
trình sẽ kiểm tra điều kiện if đầu tiên (sales_amt > 10000), điều kiện này thỏa. chương trình thực  
4
Lập trình cơ bản C  
hiện tiếp lệnh if thứ hai, trong trường hợp này điều kiện không thỏa mãn, chương trình sẽ chuyển đến  
lệnh else tương ứng, ...  
else  
com = sales_amt * 0.08;  
Nếu chúng ta nhập giá trị 10000 hoặc nhỏ hơn, chương trình sẽ chuyển đến điều kiện else sau cùng và  
tính tiền hoa hồng theo công thức:  
com = sales_amt * 0.05;  
1. Tạo một tập tin mới.  
2. Nhập đoạn lệnh sau trong cửa sổ ‘Edit Window’.  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
float com = 0, sales_amt;  
char grade;  
clrscr();  
printf(“\Enter the Sales Amount: “);  
scanf(“%f”, &sales_amt);  
printf(“\n Enter the Grade: “);  
scanf(“%c”, &grade);  
if (sales_amt > 10000)  
if (grade == ‘A’)  
com = sales_amt * 0.1;  
else  
com = sales_amt * 0.08;  
else  
com = sales_amt * 0.05;  
printf(“\n Commission = %f”, com);  
}
1. Lưu tập tin với tên nestif.C.  
2. Biên dịch tập tin nestif.C.  
3. Thực thi chương trình nestif.C.  
4. Trở về cửa sổ ‘Edit Window’.  
KẾT QUẢ:  
Enter the Sales Amount: 15000  
Enter the grade: A  
Commission = 1500  
8.5 Sử dụng lệnh ‘switch’:  
Trong phần này chúng ta sẽ sử dụng lệnh ‘switch’. Chương trình hiển thị kết quả tùy vào toán tử toán  
học được sử dụng.  
Trong chương trình này có hai biến số nguyên là num1 num2 một biến tự op được khai báo.  
Các biến được gán giá trị. Một phép toán số học được lưu trong biến op.  
Điều kiện  
5
Biến op được truyền vào biểu thức sau ‘switch’. case đầu tiên so sánh giá trị của biến op với ‘+’. Nếu  
nhãn (+) so khớp với giá trị trong op, thì các dòng mã lệnh sau được thực thi:  
res = num1 + num2;  
printf(“\n The sum is: %d”, res);  
break;  
Tổng của num1 num2 được lưu trong biến res. Lệnh printf() hiển thị giá trị của biến res. Lệnh  
break để thoát khỏi lệnh ‘switch’.  
Trong case thứ hai, giá trị của op được so sánh với ‘-‘, và sau đó biểu thức num1 – num2 được thực  
thi. Tương tự, nếu giá trị của op là ‘*’ và ‘/’, num1 * num2 num1 / num2 được thực thi.  
Nếu không có trường hợp nào trên thỏa mãn, thì lệnh printf() của ‘default’ sẽ được thực thi.  
1. Tạo một tập tin mới.  
2. Nhập đoạn lệnh sau trong cửa sổ ‘Edit Window’.  
#include <stdio.h>  
#include <conio.h>  
void main()  
{
int num1, num2, res;  
char op;  
num1 = 90;  
num2 = 33;  
op = ‘-‘;  
clrscr();  
switch (op)  
{
case ‘+’:  
res = num1 + num2;  
printf(“\nThe Sum is: %d“, res);  
break;  
case ‘-’:  
res = num1 - num2;  
printf(“\nNumber after Subtraction: %d“, res);  
break;  
case ‘/’:  
res = num1 / num2;  
printf(“\n nNumber after Division: %d“, res);  
break;  
case ‘*’:  
res = num1 * num2;  
printf(“\n nNumber after multiplication: %d“, res);  
break;  
default:  
printf(“\nInvalid”);  
break;  
}
}
1. Lưu tập tin với tên case.C.  
2. Biên dịch tập tin case..C.  
3. Thực thi chương trình case.C.  
4. Trở về cửa sổ ‘Edit Window’.  
KẾT QUẢ:  
Number after Subtraction: 57  
6
Lập trình cơ bản C  
Phần II - Trong thời gian 30 phút kế tiếp:  
1. Một học viên được kiểm tra 3 môn học. Mỗi bài kiểm tra tối đa là 100 điểm. Điểm trung bình của  
học viên được tính, và học viên được xếp loại tùy thuộc vào kết quả của điểm trung bình theo qui luật  
sau:  
Điểm trung bình  
>= 90  
Loại  
E+  
E
A+  
A
80 - < 90  
70 - < 80  
60 - < 70  
50 - < 60  
< 50  
B+  
RỚT  
Để thực hiện:  
a. Nhập vào điểm của 3 môn học lưu trong 3 biến khác nhau là M1, M2 M3.  
b. Tính điểm trung bình (avg = (M1 + M2 + M3)/3).  
c. Xác định loại của học viên dựa trên điểm trung bình đã tính.  
d. Hiển thị loại.  
Điều kiện  
7
Bài tập tự làm  
1. Khai báo hai biến x và y. Gán trị cho các biến này. Số x được in ra màn hình chỉ khi x nhỏ hơn  
2000 và lớn hơn 3000, và số y chỉ được in ra màn hình khi y nằm giữa 100 và 500.  
2. Viết chương trình trình bày khả năng của máy tính của bạn. Người dùng nhập một tự trong  
bảng chữ cái và chương trình hiển thị ngôn ngữ lập trình tương ứng. Một vài ví dụ nhập xuất như  
sau:  
Nhập  
Xuất  
A hoặc a  
B hoặc b  
C hoặc c  
D hoặc d  
F hoặc f  
P hoặc p  
V hoặc v  
Ada  
Basic  
COBOL  
dBASE III  
Fortran  
Pascal  
Visual C++  
Sử dụng lệnh ‘switch’ để chọn hiển thị thông điệp thích hợp. Sử dụng nhãn default để hiển thị  
thông điệp nếu tự nhập không nằm trong danh sách liệt kê trên.  
3. Nhập giá trị vào ba biến và in ra màn hình giá trị lớn nhất.  
8
Lập trình cơ bản C  
doc 8 trang Thùy Anh 26/04/2022 15000
Bạn đang xem tài liệu "Giáo trình Lập trình cơ bản C - Bài 8: Điều kiện (Tiếp theo)", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • docgiao_trinh_lap_trinh_co_ban_c_bai_8_dieu_kien_tiep_theo.doc