Ví
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 và 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 mã 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
có 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) có kết quả là đú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ẽ là 1500. Nếu điều
kiện là 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ỉ có một lệnh duy nhất. Nếu có 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.
Bước 1: Tạo một tập tin
mới.
Bước 2: Nhập vào đoạn
mã 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);
}
Bước 3: Lưu tập tin với
tên comm.C.
Bước 4: Biên dịch tập
tin comm.C.
Bước 5: Thực thi chương
trinh comm.C.
Bước 6: Trở về cửa sổ
‘Edit Window’.
KẾT
QUẢ:
Enter
the Sales Amount: 15000
Commission
= 1500.000
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 mã 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.
Bước 1: Tạo một tập tin
mới.
Bước 2: Nhập vào đoạn
mã lệnh sau đây trong của sổ ‘Edit Window’:
#include
<stdio.h>
#include
<conio.h>
void main()
{
int Num1, Num2;
clrscr();
Num1 = 540;
Num2 = 243;
if (Num1 > Num2)
printf(“\n The Greater Number Is: %d”, Num1);
else
printf(“\n The Greater Number Is: %d”, Num2);
}
Bước 3: Lưu tập tin với
tên ifelse.C.
Bước 4: Biên dịch
chương trình ifelse.C.
Bước 5: Thực thi chương
trình ifelse.C.
Bước 6: Trở về cửa sổ
‘Edit Window’.
KẾT
QUẢ:
The
greater number is: 540
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ố là bằng nhau.
Trong chương trình ở
phần trước, có hai biến ‘số nguyên’ num1
và 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 mã 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
có bằng biến num2 không. Trong C, ký
hiệu == được sử dụng để kiểm tra hai toán hạng có 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 và 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.
Bước 1: Tạo một tập tin
mới.
Bước 2: Nhập đoạn mã
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)
printf(“\n The Larger Number is: %d”, num2);
else
printf(“\n The Larger Number is: %d”, num1);
}
Bước 3: Lưu tập tin với
tên ifelseif.C.
Bước 4: Biên dịch tập
tin ifelseif.C.
Bước 5: Thực thi chương
trình ifelseif.C.
Bước 6: Trở về cửa sổ
‘Edit Window’.
KẾT QUẢ:
The Larger Number is: 90
Trong phần này chúng ta
sẽ viết một chương trình để hiểu rõ 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 Loại sản phẩm Hoa hồng
> 10,000$ A 10%
-- 8%
<=
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 và 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 ký
tự từ người dùng.
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ì 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. Và chương trình thự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;
Bước 1: Tạo một tập tin mới.
Bước 2: Nhập đoạn mã 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);
}
Bước 3: Lưu tập tin với tên nestif.C.
Bước 4: Biên dịch tập tin nestif.C.
Bước 5: Thực thi chương trình nestif.C.
Bước 6: Trở về cửa sổ ‘Edit Window’.
KẾT QUẢ:
Enter
the Sales Amount: 15000
Enter the grade: A
Commission = 1500
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 và num2 và một biến ký 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.
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 và
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 và 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.
Bước 1: Tạo một tập tin mới.
Bước 2: Nhập đoạn mã 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;
}
}
Bước 3: Lưu tập tin với tên case.C.
Bước 4: Biên dịch tập tin case..C.
Bước 5: Thực thi chương trình case.C.
Bước 6: Trở về cửa sổ ‘Edit Window’.
KẾT QUẢ:
Number after Subtraction: 57
Đăng nhận xét