You are on page 1of 9

Bi 8

iu kin

Mc tiu:
Kt thc bi hc ny, bn c th:
S dng:

Cu lnh if
Cu lnh if else
Cu lnh vi nhiu if
Cu lnh if lng nhau
Cu lnh switch.

Cc bc trong bi hc ny c trnh by chi tit, r rng v cn thn. iu ny gip ta hiu r v


cng c lp trnh. Thc hin theo cc bc sau tht cn thn.
Phn I - Trong thi gian 1 gi 30 pht u:
8.1 Lnh if:
V d 1:
Trong phn ny chng ta s vit mt chng trnh tnh tin hoa hng phi tr cho ngi bn hng
da vo s lng hng h bn c.
Bi ton:
Cng ty SARA s tr 10% tin hoa hng cho nhn vin bn hng ca cng ty nu doanh s bn hng
ca nhn vin t $10,000 hoc hn. Tnh tin hoa hng phi tr cui mi thnng.
Bi ton khai bo hai bin kiu float l sales_amt v com. Ch , cc bin c khai bo trong cng
mt dng trong chng trnh th s dng du phy (,) phn cch gia cc bin.
Theo di on m lnh di y:
printf(Enter the Sales Amount: );
scanf(%f,&sales_amt);
Trong hm printf(), chng ta hin th thng ip yu cu nhp doanh s bn hng, v trong hm
scanf() s dng %f nhn mt gi tr t ngi dng. Gi tr nhp vo s c gn cho bin
sales_amt.
if

(sales_amt >= 10000)


com = sales_amt * 0.1;

Cu lnh trn c dng kim tra gi tr ca bin sales_amt c ln hn hoc bng 10000 khng. >=
l ton t so snh, s tr v gi tr ng hoc sai. Trong trng hp, nu bn nhp vo gi tri 15000,
iu kin (sales_amt >= 10000) c kt qu l ng. Nu ng, n s thc thi cu lnh com =
sales_amt * 0.1. By gi gi tr ca bin com s l 1500. Nu iu kin l sai, n s in ra gi tr tin
hoa hng l 0. y chng ta thy, iu kin if ch c mt lnh duy nht. Nu c nhiu hn mt lnh
cho iu kin if, cc lnh phi c t trong cp du ngoc {}.
printf(\n Commission = %f, com);

iu kin

101

Cu lnh trn c s dng hin th gi tr tin hoa hng. %f c s dng hin th gi tr ca


mt bin float c a ra sau du phy cui ca hm printf(). V vy, printf() y hin th tin
hoa hng tnh c.
8.1.1 Tnh tin hoa hng:
1. To mt tp tin mi.
2. Nhp vo on m lnh sau y trong ca 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. Lu tp tin vi tn comm.C.
4. Bin dch tp tin comm.C.
5. Thc thi chng trinh comm.C.
6. Tr v ca s Edit Window.
KT QU:
Enter the Sales Amount: 15000
Commission = 1500.000
8.2 Lnh if-else:
Trong phn ny chng ta s vit mt chng trnh s dng lnh if-else. Chng trnh hin th s ln
hn trong hai s.
Theo di cc dng m lnh sau:
if (num1 > num2)
printf(\n The greater number is: %d, num1);
else
printf(\ The greater number is: %d, num2);
Trong on m lnh ny hm printf() u tin ch c thc thi nu gi tr ca bin num1 ln hn gi
tr ca bin num2, khi phn else c b qua. Nu gi tr ca bin num1 khng ln hn gi tr ca
bin num2, hm printf() c b qua. Trong trng hp ny hm printf() th hai, lnh theo sau else,
c thc thi.
Trong chng trnh sau, bi v gi tr ca bin num1 ln hn num2, hm printf() u tin c thc
thi.
1. To mt tp tin mi.
2. Nhp vo on m lnh sau y trong ca s Edit Window:
#include <stdio.h>
#include <conio.h>

102

Lp trnh c bn C

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);
}
1. Lu tp tin vi tn ifelse.C.
2. Bin dch chng trnh ifelse.C.
3. Thc thi chng trnh ifelse.C.
4. Tr v ca s Edit Window.
KT QU:
The greater number is: 540
8.3 Lnh if-else-if:
Trong phn ny chng ta s vit mt chng trnh s dng lnh if else if. Chng trnh s hin th
s ln hn trong hai s, hoc s hin th cc s l bng nhau.
Trong chng trnh phn trc, c hai bin s nguyn num1 v num2 c khai bo. Cc bin
c gn gi tr.
Quan st cc dng m lnh 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 on m lnh trn, iu kin if u tin (num1 == num2) kim tra xem gi tr ca bin num1
c bng bin num2 khng. Trong C, k hiu == c s dng kim tra hai ton hng c bng nhau
khng. Nu iu kin u tin (num1 == num2) c gi tr true th hm printf() theo ngay sau s c
thc thi. Nu iu kin u tin khng ng, iu kin ca else-if s c kim tra. Trong trng hp
iu kin ny (num1 < num2) tha, hm printf() theo sau n s c thc thi. Nu c hai iu kin
ca if v else if u khng tha mn, th cu lnh sau else cui cng s c thc thi.
Trong chng trnh di y, v gi tr ca num1 nh hn num2, lnh printf() th hai s c thc thi.
1. To mt tp tin mi.
2. Nhp on m lnh sau trong ca s Edit Window.
#include <stdio.h>
#include <conio.h>
void main()
{
int num1, num2;
num1 = 77;
iu kin

103

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);

1. Lu tp tin vi tn ifelseif.C.
2. Bin dch tp tin ifelseif.C.
3. Thc thi chng trnh ifelseif.C.
4. Tr v ca s Edit Window.
KT QU:
The Larger Number is: 90
8.4 Lnh if lng nhau:
Trong phn ny chng ta s vit mt chng trnh hiu r v lnh if lng nhau.
Bi ton:
Cng ty MONTEK ra quyt nh chi tin hoa hng cho b phn bn hng ty thuc vo doanh thu
bn sn phm. T l hoa hng c tnh nh sau:
Doanh thu bn
> 10,000$
<= 10,000
Tnh tin hoa hng cui mi thng.

Loi sn phm
A
---

Hoa hng
10%
8%
5%

Trong chng trnh ny chng ta tnh tin hoa hng da vo loi sn phm v lng sn phm bn
c.
Quan st cc dng m lnh sau:
printf(\Enter the Sales Amount: );
scanf(%f,&sales_amt);
printf(\n Enter the Grade: );
scanf(%c,&grade);
Hm scanf() u tin c dng nhp doanh thu bn hng, v hm scanf() th ha c s dng
nhp loi sn phm. nh dng %c c s dng nhn mt k t t ngi dng.
if (sales_amt > 10000)
if (grade == A)
com = sales_amt * 0.1;
else
come = sales_amt * 0.08;
else
com = sales_amt * 0.05;

104

Lp trnh c bn C

Gi s chng ta nhp doanh thu bn hng l 15000 v loi sn phm l A. Chng trnh s kim tra
iu kin if (sales_amt > 10000); v iu kin ny c kt qu ng, chng trnh s tip tc lnh if th
hai (grade == A). iu kin ny cng tha, v vy tin hoa hng c tnh com = sales_amt * 0.1.
Chng ta xem mt tnh hung khc vi doanh thu bn hng l 15000 v loi sn phm l B. Chng
trnh s kim tra iu kin if u tin (sales_amt > 10000), iu kin ny tha. V chng trnh thc
hin tip lnh if th hai, trong trng hp ny iu kin khng tha mn, chng trnh s chuyn n
lnh else tng ng, ...
else
com = sales_amt * 0.08;
Nu chng ta nhp gi tr 10000 hoc nh hn, chng trnh s chuyn n iu kin else sau cng v
tnh tin hoa hng theo cng thc:
com = sales_amt * 0.05;
1. To mt tp tin mi.
2. Nhp on m lnh sau trong ca 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. Lu tp tin vi tn nestif.C.
2. Bin dch tp tin nestif.C.
3. Thc thi chng trnh nestif.C.
4. Tr v ca s Edit Window.
KT QU:
Enter the Sales Amount: 15000
Enter the grade: A
Commission = 1500
8.5 S dng lnh switch:

iu kin

105

Trong phn ny chng ta s s dng lnh switch. Chng trnh hin th kt qu ty vo ton t ton
hc c s dng.
Trong chng trnh ny c hai bin s nguyn l num1 v num2 v mt bin k t op c khai bo.
Cc bin c gn gi tr. Mt php ton s hc c lu trong bin op.
Bin op c truyn vo biu thc sau switch. case u tin so snh gi tr ca bin op vi +. Nu
nhn (+) so khp vi gi tr trong op, th cc dng m lnh sau c thc thi:
res = num1 + num2;
printf(\n The sum is: %d, res);
break;
Tng ca num1 v num2 c lu trong bin res. Lnh printf() hin th gi tr ca bin res. Lnh
break thot khi lnh switch.
Trong case th hai, gi tr ca op c so snh vi -, v sau biu thc num1 num2 c thc
thi. Tng t, nu gi tr ca op l * v /, num1 * num2 v num1 / num2 c thc thi.
Nu khng c trng hp no trn tha mn, th lnh printf() ca default s c thc thi.
1. To mt tp tin mi.
2. Nhp on m lnh sau trong ca 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. Lu tp tin vi tn case.C.
2. Bin dch tp tin case..C.
3. Thc thi chng trnh case.C.
106

Lp trnh c bn C

4. Tr v ca s Edit Window.
KT QU:
Number after Subtraction: 57

iu kin

107

Phn II - Trong thi gian 30 pht k tip:


1. Mt hc vin c kim tra 3 mn hc. Mi bi kim tra ti a l 100 im. im trung bnh ca
hc vin c tnh, v hc vin c xp loi ty thuc vo kt qu ca im trung bnh theo qui lut
sau:
im trung bnh
>= 90
80 - < 90
70 - < 80
60 - < 70
50 - < 60
< 50

Loi
E+
E
A+
A
B+
RT

thc hin:
a.
b.
c.
d.

108

Nhp vo im ca 3 mn hc v lu trong 3 bin khc nhau l M1, M2 v M3.


Tnh im trung bnh (avg = (M1 + M2 + M3)/3).
Xc nh loi ca hc vin da trn im trung bnh tnh.
Hin th loi.

Lp trnh c bn C

Bi tp t lm
1. Khai bo hai bin x v y. Gn tr cho cc bin ny. S x c in ra mn hnh ch khi x nh hn
2000 v ln hn 3000, v s y ch c in ra mn hnh khi y nm gia 100 v 500.
2. Vit chng trnh trnh by kh nng ca my tnh ca bn. Ngi dng nhp v mt k t trong
bng ch ci v chng trnh hin th ngn ng lp trnh tng ng. Mt vi v d nhp v xut nh
sau:
Nhp
A hoc a
B hoc b
C hoc c
D hoc d
F hoc f
P hoc p
V hoc v

Xut
Ada
Basic
COBOL
dBASE III
Fortran
Pascal
Visual C++

S dng lnh switch chn v hin th thng ip thch hp. S dng nhn default hin th
thng ip nu k t nhp khng nm trong danh sch lit k trn.
3. Nhp gi tr vo ba bin v in ra mn hnh gi tr ln nht.

iu kin

109

You might also like