You are on page 1of 18

Khoa Khoa hc v K thut My tnh

B mn Khoa hc My tnh

1

K THUT LP TRNH
Bi tp 2
Cc cu trc r nhnh

Bi mu
Vit chng trnh tnh ng knh, chu vi, din tch to bi ca ng trn bn knh R.

Prototype: float duongtron(float R);
Flowchart:

Hnh 0. Tnh ng knh, chu vi, din tch hnh trn bn knh R

Start
Input R
d 2*R
p 2*3.14*R
s R*R
Print d,p,s
Stop


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

2

Bi tp bt buc
Xy dng prototype v v flow chart cho cc bi tp sau:

Bi 1.
Cho 2 s nguyn dng a v b. Kim tra xem a c chia ht cho b khng?
Lu s nguyn dng l s ln hn hoc bng 0.

Prototype: int chiahet(int a, int b)
Flowchart:

Hnh 1. Kim tra tnh chia ht

Start
Input a, b
Stop
a 0 && b 0
Yes No
b 0
Print Li
d liu
nhp
Print Li
chia cho 0
Print Chia
ht
Print Chia
c d
a mod b = 0
No
Yes
No
Yes


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

3

Bi 2.
Cho 2 ngi chi ko bao ba. Vit chng trnh kim tra kt qu tr chi.

Prototype: int keo_bao_bua(char P1, char P2)
K: Ko
B: Ba
G: Giy
Flowchart:

Hnh 2. Kim tra kt qu tr chi on t t
Start
Input P1, P2
Stop
Yes
(P1=K && P2=K)
||(P1=B && P2=B)
||(P1=G && P2=G)
No
Yes
Print P1 thng
(P1=K && P2=B)
||(P1=G && P2=K)
||(P1=B && P2=G)
(P1=B && P2=K)
||(P1=K && P2=G)
||(P1=G && P2=B)
Print Ha
Print P2 thng
Print K t khng hp l
Yes
No
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

4

Bi 3.
Nhp vo phng trnh bc hai. Kim tra phng trnh c my nghim (khng tnh nghim
phc).

Prototype: int so_nghiem_ptb2(float a, float b, float c)
Flowchart:

Hnh 3. Tnh s nghim trong phng trnh bc hai

Start
Input a, b, c
Stop
Print V s
nghim
Print Hai
nghim
Print V
nghim
Print Mt
nghim
Yes
b = 0 c = 0
b
2
- 4ac
= 0 > 0
a = 0
No
Yes
Yes
Yes Yes
No
No
No No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

5

Bi 4.
Cho mt on m hon v gi tr 2 bin nh sau:
bien_trung_gian = bien1;
bien1 = bien2;
bien2 = bien_trung_gian;
Hy vit 1 chng trnh hon v 2 s nguyn dng khng s dng bin trung gian.

Prototype: void hoanvi(int x, int y)
Flowchart: C 2 cch.

Hnh 4. Hai phng php hon v khng cn bin trung gian
*** Lu : cch 1 c th b trn s nu x v y qu ln

Start
Stop
Print x, y
x x + y
x x - y
y x - y
Input x, y
Print x, y
x x - y
y x + y
x y - x
Stop
a<0 || b<0
Print li d liu
No
Yes
Start
Input x, y
a<0 || b<0
Print li d liu
No
Yes


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

6

Bi 5.
Cho 2 ng trn. Tnh s im m chng ct nhau.
Lu : Mt ng trn bao gm tm (x, y) v bn knh R > 0.

Prototype: int tinh_so_diem_trung(float x1, float y1, float R1, float x2, float y2, float R2)
Flowchart:

Hnh 5. Tnh s im giao nhau gia 2 dng trn


Start
Stop
Yes
(|R1-R2| = d)
||(R1+R2 = d)
Yes
Print V s im
(Trng nhau)
Input x1, y1, R1, x2, y2,
R2
d sqrt((x2-x1)
2
(y2-y1)
2
)
x1=x2&&y1=y2
&&R1=R2
R1+R2 > d
&& |R1-R2| < d
Print 2 im
(Ct nhau)
Print 1 im
(Tip xc nhau)
Print 0 im
(Khng ct nhau)
Yes
No
No
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

7

Bi 6.
Gi s hm nay l ngy 31-12-1999.
Nhp vo ngy sinh ca mt ngi. Tnh s ln sinh nht ca ngi cho ti thi im hin
ti (31-12-1999). V d: Mt ngi sinh vo ngy 31-12-1969 => Anh ta c 31 ln sinh nht.
Gii hn: Ch cho php nhp nm sinh trong khong 1901-1999.
Lu : D liu u vo lun hp l (khng cn kim tra).

Prototype: int tinh_so_lan_sinh_nhat(int ngay, int thang, int nam)
Trng hp c bit: Ngi sinh 29-2 nm nhun, gia 2 ln sinh nht cch nhau 4 nm.
Flowchart:

Hnh 6. Tnh s ln sinh nht da vo ngy sinh
Start
Input ngay, thang, nam
Stop
L (2000-nam) div 4 L 2000-nam
Print L
ngay=29 && thang=2
Yes
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

8

Bi tp lm thm

Bi 7.
Chuyn i gia mt v inch.
Hng dn: 1 inch = 2,54 cm.

Prototype: float convert(float a,int sel);
//sel=1: inch sang mt, sel 1: mt sang inch
Flowchart:

Hnh 7. i n v mt v inch


Start
Input sel
m a*2.54/100
Print Chieu dai met: m
Stop
sel=1?
Yes
Input a
inch a*100/2.54
Input a
Print Chieu dai inch: icnh
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

9

Bi 8.
Vit chng trnh nhn vo l mt ng trn tm O(x0, y0) v bn knh R. Kim tra
xem mt im A(x, y) l nm trn, trong hay ngoi ng trn .

Prototype: int diemduongtron(float x0, float y0, float R, float Ax, float Ay);
Flowchart:

Hnh 8. Xc nh v tr tng i ca im v ng trn

Start
Input
x0,y0,R,Ax,Ay
dist sqrt(sqr(Ax-x0)+sqr(Ay-y0))
Print Trong
T
Stop
dist<R?
Yes
No
Print Trn T
Print Ngoi
T
dist=R?
Yes
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

10

Bi 9.
Cho di 3 cnh a, b, c, kim tra xem n c phi l 3 cnh ca mt tam gic cn, tam
gic u, tam gic vung hay tam gic vung cn khng.

Prototype: int tamgiac(int a,int b,int c);
Flowchart:

Hnh 9. Xc nh c im tam gic to thnh t 3 cnh a,b,c
Start
Input a,b,c
Print
Khng l
tam gic
Stop
((a>|b-c|)&&(a<b+c))&&
((b>|a-c|)&&(b<a+c))&&
((c>|b-a|)&&(c<b+a))?
Yes
Print
Vung-
Cn
No
Yes No
(a==b)&&
(b==c)?
Print
u
Yes
No
(a*a==b*b+c*c)||
(b*b==a*a+c*c)||
(c*c==b*b+a*a)?

(a==b)||(b==c)
||(c==a)?
(a==b)||(b==c)
||(c==a)?
Print
Vung
Print
Cn
Print
Thung
Yes Yes
No No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

11

Bi 10.
Vit chng trnh nhn vo nm hp l, kim tra xem c phi l nm nhun hay
khng, ghi kt qu ra mn hnh.
Hng dn: mt nm l nhun khi m n chia ht cho 4 nhng khng chia ht cho 100,
hoc l n chia ht cho 400.

Prototype : int kiemtranhuan(int year);
Flowchart :

Hnh 10. Kim tra mt nm l nhun.

Start
Input year
mod4 year%4
mod100 year%100
mod400 year%400


Print Nhun
Stop
(mod4==0&&mod100<>0)|
|(mod400==0)?
Print Khng nhun
Yes
No


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

12

Bi 11.
Tnh ton cc taxi vi gi dch v c tnh theo cc iu kin sau ca qung ng i d:
- d <= 1km: gi 15 000 VND/km,
- 1 km < d <= 10 km: 8 000 VND/km,
- 10 km < d <= 30 km: 6 000 VND/km,
- d > 30 km: 4 000 VND/km.

Prototype: float tientaxi(float d);
Flowchart:

Hnh 11. Tnh tin taxi.

Start
Input d
Stop
d>10?

Print tien
d>1?

No
No
d>30?
Yes
No
tien d*4000
Yes
tien d*6000
Yes
tien d*8000
tien d*15000


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

13

Bi 12.
Tnh ton cc taxi ng vi iu kin sau v qung ng i:
- 10 km u tin 10 000 VND/km,
- T km 11 ti 30, gi thnh 6 000 VND/km,
- Sau 30 km, gi thnh l 4 000 VND/km.

Prototype: float tientaxib7(float d);
Flowchart:

Hnh 12. Tnh tin taxi.

Start
Input d
Stop
d>10?

Print tien
No
d>30?
Yes
No
tien (d-30)*4000 + 20*6000 +
10*10000
Yes
tien (d-10)*6000+10*10000
tien d*10000


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

14

Bi 13.
Tnh tin in (nc) phi tr vi chi ph tng tuyn tnh tng on theo s kilowatt (hay mt
khi) s dng trong mt thng.

Gi s gi in tnh theo hm tuyn tnh tng on:

<
s <
s <
s
=
x khi
x khi
x khi
x khi
x f
200 1877
200 150 1734
150 100 1369
100 1242
) (
V d: Tin in cho 102kWh l 100*1242 + 2*1369 = 126 938VN

Prototype: float tiendiennuoc(float d);
Flowchart:

Hnh 13. Tnh tin in
Start
Input d
Stop
d>150?

Print tien
No
d>200?
Yes
No
tien (d-200)*1877 + 50*1734
+ 50*1369+100*1242
Yes
tien (d-150)*1734 +
50*1369+100*1242
tien d*1242
d>100?

No
Yes
tien (d-100)*1369+100*1242


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

15

Bi 14.
S dng cu trc la chn switch vit chng trnh cho ngi dng nhp vo thng hp l
v in ra s ngy trong thng (gi s khng phi l nm nhun).

Prototype: int songay(int thang);
Flowchart:

Hnh 1. Tnh s ngy trong thng


thang
c{4,6,9,11}?
Start
Input thang
Print Thng 28 ngy
Stop
(thang<1)||(than
g >12)?
Yes
No
Yes
No
(thang ==2)?
Print Thng 30 ngy
Yes
No
Print Thng 31 ngy


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

16

Bi 15.
Tnh thu thu nhp c nhn.
Thu thu nhp c nhn c th c gim cho cc tnh hung gia gia cnh. T 01/01/2009,
thu nhp c nhn t li nhun kinh doanh, tin lng, tin th lao s thp hn so vi hon
cnh gia nh chu thu. Cc khon khu tr in hnh l 4 triu ng mi thng thu nhp
i vi ngi c thu nhp v 1,6 triu mi thng cho mi ngi ph thuc. (Ch : thu
nhp chu thu, cc khon khu tr cho bn thn l 4 triu ng mi thng nhng c
bao gm trong mc chu thu vi thu sut 0%).

Ngi ph thuc bao gm:
1.Con cha thnh nin;
2. V hoc chng v cc con thnh nin nhng khng c kh nng lm vic;
3. Con ca bn l mt sinh vin hoc c thu nhp t 500 nghn ng mi thng hoc t
hn;
4. ng b, cha, m,. . . khng c kh nng lao ng vi thu nhp ca
500.000 ng mt thng hoc t hn.

Nhng s tin gim tr nhiu nht l 10 triu, cho 5-6 ngi ph thuc.

S tng dn mt phn thu quan p dng vi thu nhp t li nhun kinh doanh, tin
lng, v tin thu lao nh sau:
- Mc 1: 4 triu VND mt thng, thu sut 0%.
- Mc 2: trn 4 triu n 6 triu VND mt thng - thu sut 5%.
- Mc 3: trn 6 triu n 9 triu VND mt thng - thu sut 10%.
- Mc 4: trn 9 triu n 14 triu VND mt thng thu sut 15%.
- Mc 5: trn 14 triu n 24 triu VND mt thng thu sut 20%.
- Mc 6: trn 24 triu n 44 triu VND mt thng thu sut 25%.
- Mc 7: trn 44 triu n 84 triu VND mt thng thu sut 30%.
- Mc 8: trn 84 triu VND mt thng thu sut 35%.
V d: thu nhp 10 triu b nh thu nh sau, 6 triu b nh thu 5%, 3 triu nh thu
10%, 1 triu b nh thu 15%.
Bng thu sut y nh sau:
- Li vay, li tc, thu nhp t tin vn gp kinh doanh, tin li.
- Tit kim hn 5 triu mt thng l 5%.
- Thu nhp t chuyn nhng vn gp l 25%.
- Thu nhp t hon i ti sn l 25%.
Nhng thu nhp khc:
- Thu nhp t tin bn quyn tc gi trn 10 triu VND/ln: 5 %.
- Trng x s, trng thng trn 10 triu/gii : 10%.
- Thu nhp t tha k, qu tng tr gi 10 triu/ ln: 10%.
V d 1: Thu nhp ca ng A l 6 triu mt thng, v anh y nui dng 2 a con di
18 tui. Bi vy, anh y c chp nhn khu tr theo hon cnh gia nh.
Mc thu nhp chu thu ca ng A s gim theo hon cnh gia nh anh y l 4 triu
VND mt thng. Hai a tr l ngi ph thuc, thu thu nhp khu tr lin quan l


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

17

(1.6+1.6) = 3.2 triu mt thng. Nh vy, tng gim tr ca ng A l (4 triu + 1.6 triu
+1.6 triu)= 7.2 triu, cao hn mc thu nhp ca anh y (6 triu).ng A s khng phi tr
thu ( Vi 2 con nh c tnh nh ngi ph thuc, thu thu nhp phi tr c gim l
1.6 triu mt thng).
V d 2: ng B c thu nhp khong 10 triu 1 thng, nui dng mt con nh, bi vy
anh y c chp nhn gim tr theo hon cnh gia nh.
ng B s c gim theo hon cnh gia nh khong 4 triu/ 1 thng. Mt con nh l
ngi ph thuc em li s gim tr thu thu nhp phi np l 1.6 triu/ 1 thng.
Tng gim tr ca ng B l: (4 triu + 1.6 triu) = 5,6 triu.
Khon thu mang li nh hng t ng B l 10tr 5,6tr =4,4tr.
(Mc 2 v mc 3 cho t hn 4 triu c gim, nhng vn c tnh nh mc chu thu
ca thu sut thu nhp chu thu l 0%. (t hn 4 triu + 4.4 triu )=8.4 triu.
Tng tin thu phi tr ca ng B l: ( 2tr x 5% )+ (2.4tr x 10%)=340.000VND.

V d 3: ng C c v, b D, v mt a con nh l E: ng y l i tng gim thu
thu nhp theo hon cnh gia nh. Thu nhp ca ng C l 5 triu 1 thng. Thu nhp ca
b D khong 6 triu/ 1 thng. a con cha n tui v ca b D l i tng ph thuc
khng ch mt m c 2 v chng gim thu thu nhp phi tr khong 1.6 triu mt
thng. (Ph thuc vo s khai bo ca ng C v b D vi t chc qun l thu, nhng c
hai v chng khng c khai bo cng mt ngi ph thuc).
Nu ng C khai rng E l ngi ph thuc ca ng y, tng gim tr s l: 4 triu + 1.6
triu = 5,6 triu >5 triu thu nhp 1 thng. Bi vy, ng C khng phi tr thu!
Thu thu nhp phi tr ca b D l: 6 triu 4 triu ( mt phn gim tr ca b y)= 2
triu. Thu thu nhp phi tr ca b D l: 2 triu x 5% = 100.000VND/1 thng.

Prototype: float ThueTNCN(int sel, float a, int b);
/*a:thu nhp, b: s ngi ph thuc,sel c cc gi tr:
1: tnh thu t li nhun kinh doanh, tin lng, v tin th lao (8 mc) c xt gia cnh
2: Li vay, li tc, thu nhp t tin vn gp kinh doanh, tin li tit kim hn 5 triu mt
thng (5%)
3: Thu nhp t chuyn nhng vn gp (25%)
4: Thu nhp t hon i ti sn (25%)
5: Thu nhp t tin bn quyn tc gi trn 10 triu VND/ln (5 %)
6: Trng x s, trng thng trn 10 triu/gii (10%)
7: Thu nhp t tha k, qu tng tr gi 10 triu/ ln (10%)
*/
Flowchart: (th nguyn [triu ng] cho bin a)


Khoa Khoa hc v K thut My tnh
B mn Khoa hc My tnh

18


Start
Input sel,a
selc{2,5}?
Yes
thue a*0.05
Stop
No
Yes
thue a*0.1 selc{6,7}?
No
Yes
thue a*0.25 selc{3,4}?
No
a>84?
Yes
thue (a - 84)*0.35 + 40*0.3 + 20*0.25 +
10*0.2 + 5*0.15 + 3*0.1 + 2*.05
Input b
a a b*1.6
No
a>44?
Yes
thue (a 44)*0.3 + 20*0.25 + 10*0.2 +
5*0.15 + 3*0.1 + 2*.05
No
a>24?
Yes
thue (a 24)*0.25 + 10*0.2 + 5*0.15 +
3*0.1 + 2*.05
No
a>14?
Yes
thue (a 14)*0.2 + 5*0.15 + 3*0.1 + 2*.05
No
a>9?
Yes
thue (a 9)*0.15 + 3*0.1 + 2*.05
No
a>6?
Yes
thue (a 6)*0.1 + 2*.05
No
a>4?
Yes
thue (a 4)*.05
No
thue 0
Print thue
Hnh 15. Tnh thu TNCN
b*1.6>10?
Yes
No a a 10

You might also like