lẬp trÌnh visual basic Ực hÀnh sỐ cẤu trÚc ĐiỀu...
TRANSCRIPT
-
LP TRNH VISUAL BASIC BI TP THC HNH S 4
CU TRC IU KHIN
1. Chun u ra.
Sau khi hc xong chng ny, sinh vin c th: - Trnh by c c php cc cu trc iu khin. - Chuyn i qua li c gia cc cu trc lp s dng For Next, Do While
Loop, Do Loop Until. - Vit c chng trnh c bn c s dng cc cu trc iu khin. - Thi lm vic chm ch, hnh thnh phong cch lp trnh.
2. Chun b SV phi lm (trn giy) cc bi tp v mng lm trn lp gi l thuyt v lm thm nh.
3. Phng tin Phng my c ci chng trnh Microsoft Visual Basic 6.0
4. Thi lng 4 tit.
5. Tm tt l thuyt Cu trc iu khin c chia lm ba loi: cu trc tun t, cu trc chn, cu trc lp. - Cu trc tun t: chng trnh c thc hin tun t t trn xung di, dng lnh
no vit trc th thc hin trc. - Cu trc chn: cho php thc hin nhng cng vic khc nhau ty theo iu kin no . o Cu trc If dng khuyt
If Then
If Then
End If
o Cu trc If dng
If then else
If Then
Else
-
End If
o Cu trc If dng phc tp
If then
ElseIf then
ElseIf then
Else
EndIf
o Cu trc Select Case dng khuyt
Select Case
Case
Case
Case
End Select
o Cu trc Select Case dng
Select Case
Case
Case
-
Case
Case Else
End Select
- Cu trc lp: o Cu trc lp xc nh For Next
For = to [Step ]
Next []
Chc nng: c thc hin t n , gi tr ca c thay i theo .
o Cu trc lp khng xc nh Do Loop
Dng 1:
Do While
Loop
Chc nng: nu ng th c thc thi v lp li cho n khi no sai.
Dng 2:
Do Until
Loop
Chc nng: nu sai th c thc thi v lp li cho n khi no ng.
Dng 3:
-
Do
Loop While
Chc nng: c thc thi v lp li trong khi ng.
Dng 4:
Do
Loop Until
Chc nng: c thc thi v lp li trong khi sai.
6. Ni dung thc hnh 6.1 Vit chng trnh gii phng trnh bc hai ax2 + bx + c = 0. 6.2 Vit chng trnh tnh s ngy trong thng ca nm.
- Nu thng = 4, 6, 9, 11 th s ngy = 30 - Nu thng = 1, 3, 5, 7, 8, 10, 12 th s ngy = 31 - Nu thng = 2 th s ngy = 28 hoc 29 (nu l nm nhun) - Nm nhun l nm chia ht cho 400 hoc l nm chia ht cho 4 v khng chia
ht cho 100. 6.3 Vit chng trnh tnh tin in phi tr theo s kWh s dng c nhp vo. Bng
tnh tin in c cho nh sau:
V d: nu s dng 223 kWh th s tin phi tr l:
100*1284 + 50*1457 + 50*1843 + 23*1997 = 339331
6.4 Cho s nguyn n, tnh ! 1 2s n n= = L , vi 0n (0! =1).
6.5 Cho s nguyn n, tnh tng 3 5 7 2 1( 1)
1! 3! 5! 7! (2 1)!
n nx x x x xsn
+= + + +
+L , vi 0n
6.6 Cho s nguyn dng n, tm s o ngc ca n. V d, vi n = 12345 th s o ngc ca n l 54321.
6.7 Cho s nguyn n, cho bit n c phi l s nguyn t hay khng? 6.8 Vit chng trnh tnh c s chung ln nht ca hai s nguyn dng. 6.9 Vit chng trnh kim tra s nguyn dng n c phi l s hon ho hay khng?
-
6.10 Vit chng trnh kim tra s nguyn dng n c phi l s chnh phng hay khng?
7. Bi tp thm 7.1 Vit chng trnh nhp vo t s v mu s ca mt phn s, thc hin ti gin
phn s . 7.2 Vit chng trnh xp loi hc lc theo im trung bnh c nhp vo.
- DiemTB < 5.0 Yu - 5.0
-
Ci t thut ton
Dng cu trc If dng v dng phc tp
If a = 0 then
If b = 0 then
If c = 0 then
Print Phng trnh v nh
Else
Print Phng trnh v nghim
End If
Else
Print x = !!!
End If
Else
Delta = b2 4*a*c
If Delta > 0 then
Print 1 = !!! !"#$%!!
, 2 = !!! !"#$%!!
Else If Delta < 0 then
Print Phng trnh v nghim
Else
Print 1 = 2 = !!!!
End If
Thit k chng trnh hon chnh
Thit k giao din chng trnh v t tn cc i tng nh hnh bn di
-
Bi 6.2: Vit chng trnh tnh s ngy trong thng ca nm
M t thut ton
Ci t thut ton
Dng cu trc If phc tp v cu trc If dng y
-
If thang = 4 Or thang = 6 Or thang = 9 Or thang = 11 then
Songay = 30
ElseIf thang = 1 Or thang = 3 Or thang = 5 Or thang = 7 Or thang = 8 Or thang = 10 Or thang = 12 then
Songay = 31
Else
If (nam mod 400 = 0) Or ((nam mod 4 = 0) And (nam mod 100 0)) then
Songay = 29
Else
Songay = 28
End If
End If
Dng cu trc Select Case dng y v If dng y
Select Case thang
Case 4, 6, 9, 11
Songay = 30
Case 1, 3, 5, 7, 8, 10, 12
Songay = 31
Case Else
If (nam mod 400 = 0) Or ((nam mod 4 = 0) And (nam mod 100 = 0)) then
Songay = 29
Else
Songay = 28
End If
End Select
Thit k chng trnh hon chnh
Thit k giao din chng trnh v t tn cc i tng nh hnh bn di
-
Dng cu trc If dng phc tp v cu trc If dng y
Dng cu trc Select Case v cu trc If dng y
-
Bi 6.4: Cho s nguyn n, tnh ! 1 2s n n= = L , vi 0n (0! =1).
Phn tch
Ta cn ch rng n v tnh ton s hc (ALU) ca CPU ch c th nhn hai s ti mt thi im. Theo nh ngha trn, ta c:
0! 11! 1 12! 1 23! 1 2 34! 1 2 3 4
=
=
=
=
=
Ta thy 4! cha tt c cc tha s ca 3! v cha thm 4 nn n c th c tnh bng 4 3! . Ta c th tng qut nhn xt ny ln l n! c th c tnh bng ( 1)!n n .
Dng nh ngha ny ta c th vit li
0! 11! 1 0!2! 2 1!3! 3 2!4! 4 3!
=
=
=
=
=
Ta c th bt u vi 0! 1s = = v tnh n! nh bn di
1 (1) 0!1 1!2 2!3 (2 ... 1) 3!4 4!
ss ss ss s ns s
= =
= =
= = = + =
= = M M
T bc 2 tr i ta lp li mt qu trnh ging nhau. bc th 1i + ta c s s i= . Qu trnh tng qut ny c th dng vng lp biu din. Nh vy nhn nhiu s ta lp li nhiu ln nhn 2 s.
M t thut ton
-
Ci t thut ton
Dng For Dng Do While ... Loop Dng Do ... Loop While ... s = 1 For i = 1 To n s = s * i Next i Print s
s = 1 i = 0 Do While i
-
M chng trnh nh bn di
Bi 6.5: Cho s nguyn n, tnh tng 3 5 7 2 1( 1)
1! 3! 5! 7! (2 1)!
n nx x x x xsn
+= + + +
+L , vi 0n
Phn tch
Thnh phn quan trng trong tng s hng ca tng trn c dng ! 1 2
ix x x xi i= L c
th c tnh c lp theo k thut ca bi tnh n!
t = 1 For j = 1 To i t = t * x / j Next i Tuy nhin, hiu qu ta mun tnh s hng th i da vo s hng th i - 1 (ging trong bi tnh n! trn, ta tnh i! da vo (i - 1)!). Ta nhn thy
2 1 2 1 2 1( 1) ( 1)(2 1)! 2 (2 1) (2 1)!
i i i ix x xi i i i
+ =
+ +
Ta c th bt u vi
txtN
lblKetQua cmdTinhS
-
, , 1s x t x i= = =
S hng th i v tng c th c tnh trc tip t cc s hng trc n.
2
1
2 (2 1)
i itxti i
s s t
= +=
+ = +
M t thut ton
Ci t thut ton
Dng For Dng Do While ... Loop Dng Do ... Loop Until ... s = x t = x For i = 1 To n t = -t*x*x / (2*i*(2*i-1)) s = s + t Next i Print s
s = x t = x i = 0 Do While i n Print s
-
Thit kt chng trnh hon chnh
Thit k giao din chng trnh v t tn cc i tng nh hnh bn di.
M chng trnh nh bn di
Bai 6.6: Cho s nguyn dng n, tm s o ngc ca n. V d, vi n = 12345 th s o ngc ca n l 54321.
Phn tch
S 12345 tht s c phn tch nh sau
4 3 2 1 012345 1.10 2.10 3.10 4.10 5.10= + + + +
txtN
lblKetQua cmdTinhS
txtX
-
lm c iu ny ta phi ly c tng ch s ca n. Vn l ta nn thc hin iu ny t tri sang phi hay ngc li? Bi v ta khng bit c n c bao nhiu ch s, s d hn nu ta thc hin iu ny t phi sang tri, ngha l xc nh ch s hng nh nht ri nh nh, ... Vi s n = 12345, ta s xc nh v ly s 5 ra trc, s cn li s l 1234.
Ta c th ly s 5 v thu c s 1234 bng hai thao tc
12345 mod 10 --> 5, v
12345 / 10 --> 1234
V vy ta p dng 2 php tnh sau
r = n mod 10
n = n / 10
Lp li qu trnh ging nh th ny cho gi tr n mi ta s thu c tng ch s ca n.
Sau khi ly c tng ch s ca n, bc tip theo l o ngc cc ch s, ngha l s ly ra trc (s hng nh hn) s c vit trc. V d, khi ta ly ra s 5 trc ri n s 4 (45) th kt qu s 5 s ng trc s 4 (54). S ban u 45 c th c o ngc bng cch ly ra s 5, nhn n vi 10 ri cng n vi 4. Cch lm ny c th c p dng cho s c nhiu ch s hn. Chng hn, 3 s cui 345 s c o ngc thnh 543, sau khi ly c s 5 v s 4 ta thu c 54, khi ly thm s 3, ta s thu c 543 bng cch ly 54 nhn vi 10 v cng vi 3.
Qu trnh ny c th c minh ha nh bn di. Gi s t l s o ngc, gi tr khi u ca t l 0.
u tin ly c s 5 th gi tr ca t s l t = t * 10 + 5 = 0 * 10 + 5 = 5
Ly c s 4: t = t * 10 + 4 = 5 * 10 + 4 = 54
Ly c s 3: t = t * 10 + 3 = 54 * 10 + 3 = 543
Ly c s 2: t = t * 10 + 2 = 543 * 10 + 2 = 5432
Ly c s 1: t = t * 10 + 1 = 5432 * 10 + 1 = 54321
n r t Bc 12345 5 5 1 1234 4 54 2 123 3 543 3 12 2 5432 4 1 1 54321 5 0
-
M t thut ton
Ci t thut ton
Dng Do While ... Loop Dng Do ... Loop Until ... t = 0 r = 0 Do While n > 0 r = n mod 10 t = t * 10 + r n = n / 10 Loop Print t
t = 0 r = 0 Do r = n mod 10 t = t * 10 + r n = n / 10 Loop Until n = 0 Print t
Thit kt chng trnh hon chnh
Thit k giao din chng trnh v t tn cc i tng nh hnh bn di.
-
M chng trnh nh bn di
Bi 6.7: Cho s nguyn n, cho bit n c phi l s nguyn t hay khng?
Phn tch
S nguyn t l s nguyn ln hn 1 ch c hai c l 1 v chnh n.
kim tra iu ny ta ch cn ly n chia cho cc s 2, 3, ..., n-1. Ngay khi ta bt gp mt s no l c ca n ta c th dng v xc nh n khng phi l s nguyn t. Ngc li, nu khng c s no trong cc s 2, 3, ..., n-1 l c ca n th n l s nguyn t. Cch lm ny da vo nh ngha trn ca s nguyn t. Tuy nhin, liu ta c th xut mt thut ton hiu qu hn?
Gi s nu n khng phi l s nguyn t, ngha l n c th c phn tch di dng
n a b= , vi a > 1 v b > 1. Khi , a n hoc b n (v nu khng th a b n > ). Nh
vy, nu n khng phi l s nguyn t th n c t nht mt c n . iu ny cng c ngha
l nu n khng c c no n th n l s nguyn t.
txtN
lblKetQua cmdDaoNguoc
-
Nh vy, kim tra xem n c phi l s nguyn t hay khng, ta ch cn ly n chia
cho cc s 2, 3, ..., n ( n nh hn ng k so vi n khi n ln). Ngay khi ta bt gp mt s no l c ca n ta c th dng v xc nh n khng phi l s nguyn t. Ngc li, nu
khng c s no trong cc s 2, 3, ..., n l c ca n th n l s nguyn t.
M t thut ton
Xem lu bn di
Ci t thut ton
Dng For Dng Do While ... Loop Dng Do ... Loop Until ... If n < 2 Then kt = False Else m = sqr(n) kt = True For i = 2 To n If n mod i = 0 Then kt = False Exit For End If Next i End If Print kt
If n < 2 Then kt = False Else m = sqr(n) i = 2 kt = True Do While i m End If Print kt
-
Thit kt chng trnh hon chnh
Thit k giao din chng trnh v t tn cc i tng nh hnh bn di.
-
M chng trnh nh bn di
txtN
lblKetQua cmdKiemTraSNT