LẬP TRÌNH VISUAL BASIC ỰC HÀNH SỐ CẤU TRÚC ĐIỀU …fit.hcmute.edu.vn/Resources/Docs/SubDomain/fit/trungnh/... · SV phải làm (trên giấy) các bài tập về mảng

  • Upload
    dinhanh

  • View
    224

  • Download
    6

Embed Size (px)

Citation preview

  • 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