You are on page 1of 9

Bi tp cn bn Visual Basic.

Net Vng lp
Trang 1
1. Tnh n!
V d: 5!= 1 * 2 * 3 * 4 * 5 = 120
Thit k form theo mu hoc t thit k theo thch. Ch nu t tn cc control khc vi hnh bn di th
cn sa li code cho ph hp.



Doube click vo nt btnTinh v nhp on code nh sau:

Private Sub btnTinh_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnTinh.Click
Dim n, tong, i As Integer
n = Val(txtn.Text)
tong = 1
For i = 2 To n
tong = tong * i
Next
txtKetqua.Text = tong
End Sub

Lu : V kiu d liu ta dng kiu String, ch c th lu tr cc gi tr trong khong -/+2,147,483,618, do
nu nhp n qu ln s pht sinh li. Ch chy th vi n nh hoc i kiu d liu ca bin tong sang kiu d liu
khc c sc cha ln hn.

2.Tnh tng S=1+2+3++n
Thit k form cng tng t nh trn. Double click nt btnTinh v nhp on code sau:



Private Sub btnTinh_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnTinh.Click
Dim n, tong, i As Integer
n = Val(txtn.Text)
tong = 0
For i = 1 To n
tong = tong + i
Next
txtKetqua.Text = tong
End Sub
txtn
btnTinh
txtKetqua
txtn
btnTinh
txtKetqua
Bi tp cn bn Visual Basic.Net Vng lp
Trang 2
3a. Xut dy Fibonaci b hn n
Dy Fibonaci c dng nh sau:
1 1 2 3 5 8 13 21 34 55 89

Hai phn t u tin l 1 v 1. T phn t th ba tr i, phn t sau s bng tng ca 2 phn t trc n.
V d: 2= 1 + 1
3=1+2
5=2+3
8=5+5


Thit k giao din:



Double click vo nt Xut dy s v nhp vo on code sau:

Private Sub btnXuat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnXuat.Click
Dim a, b, c, n As Integer
Dim s As String 'Bien chuoi s dung chua chuoi so Fibonaci
c = 0

'Gan 2 gia tri dau tien cho a va b
a = 1
b = 1

'Noi 2 gia tri dau tien vao chuoi so Fibonaci
s = a & " " & b

n = Val(txtn.Text)

While (a + b < n)
c = a + b
a = b
b = c
s = s & " " & c
End While
txtKetqua.Text = s
End Sub

3b. Kim tra n c phi s nguyn t hay khng
S nguyn t l s ch chia ht cho 1 v cho chnh n.
V d: 2, 3, 5, 7, 11, 13, 17... l cc s nguyn t
Thut ton:
Gi s cn kim tra s n.
Nu n=1 th n khng phi s nguyn t.
Nu n=2 th kt lun n l s nguyn t.
Nu n>2: Khi to 1 bin i chy t 2 n cn bc 2 ca n. Nu c 1 s no m n chia ht cho n (tc n Mod
i=0) th kt lun n khng phi l s nguyn t v thot vng lp.
txtn
btnXuat
txtKetqua
Bi tp cn bn Visual Basic.Net Vng lp
Trang 3


Double nt btnKiemtra v nhp code nh sau:

Private Sub btnKiemtra_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKiemtra.Click
Dim n As Integer, i As Integer
Dim blKiemtra As Boolean = True
n = Val(txtn.Text)

If n = 1 Then
blKiemtra = False
ElseIf n = 2 Then
blKiemtra = True
Else
For i = 2 To Int(Math.Sqrt(n))
If (n Mod i = 0) Then
blKiemtra = False
Exit For
End If
Next
End If

If blKiemtra = True Then
txtKetqua.Text = n & " l s nguyn t"
Else
txtKetqua.Text = n & " khng phi l s nguyn t"
End If
End Sub

3c. Kim tra n c phi s hon ho
S hon ho l s bng tng cc c s ca n.
V d: 6 l s hon ho v cc tng cc c s ca n l 1 + 2 + 3 = 6
Gii thut:
Cho bin i chy t 1 n n-1, nu (n Mod i=0), ngha l i l c ca n th cng i vo bin tong: tong=tong+i
So snh bin tong vi n: nu tong=n th n l s hon ho. Ngc li n khng phi s hon ho.







txtn
txtKetqua
txtKetqua
btnKiemtra
txtn
txtKetqua
btnKiemtra
Bi tp cn bn Visual Basic.Net Vng lp
Trang 4
Double nt btnKiemtra v nhp on code sau:
Private Sub btnKiemtra_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKiemtra.Click
Dim tong, n, i As Integer
n = Val(txtn.Text)
tong = 0 'Bien tong dung chua tong cac uoc so

For i = 1 To n - 1
If (n Mod i = 0) Then
tong = tong + i
End If
Next

If tong = n Then
txtKetqua.Text = n & " l s hon ho"
Else
txtKetqua.Text = n & " khng phi s hon ho"
End If
End Sub

3d. Kim tra n c phi l s chnh phng
S chnh phng l s m cn bc 2 ca n l 1 s nguyn. (N l bnh phng ca 1 s nguyn)
V d: 4, 9, 16, 25 l cc s chnh phng v 4=2
2
, 9=3
2
, 16=4
2
, 15=5
2
kim tra 1 s c phi s chnh phng. Ta s khai bo 1 bin i kiu Integer v gn i=cn bc 2 ca n. Do l
kiu nguyn nn i s ch nhn phn nguyn ca php ly cn. Sau so snh i*i vi n, nu i*i= n th n l s
chnh phng.
V d: n=9, i=Math.Sqrt(9)=3, 3*3=9, 9 l s chnh phng
n=10, i=Math.Sqrt(10)=3.162278=3, 3*3=9 khc 10, vy 10 khng phi s chnh phng.

Thit k giao din


Code cho nt btnKiemtra nh sau:

Private Sub btnKiemtra_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnKiemtra.Click
Dim i, n As Integer
Dim blKiemtra As Boolean

n = Val(txtn.Text)
i = Math.Sqrt(n)

If i * i = n Then
blKiemtra = True
Else
blKiemtra = False
End If

If blKiemtra = True Then
txtKetqua.Text = n & " l s chnh phng"
Else
txtKetqua.Text = n & " khng phi s chnh phng"
End If
End Sub
txtn
txtKetqua
btnKiemtra
Bi tp cn bn Visual Basic.Net Vng lp
Trang 5
4. Lit k cc s <n v chia ht cho 3, xut ra textbox, mi dng 5 s.
textbox c th hin th nhiu dng, ta cn chnh thuc tnh Multiline ca textbox l True.



Gii thut:
To 1 chui s dng lu tr dy s
To 1 bin dem dng lu tr s ch s tha iu kin tm c
Dng vng lp cho bin i chy t 1 n n-1
Nu i mod 3=0 th
Ni thm i vo chui s
Tng bin dem ln 1: dem=dem+1
Kim tra nu dem=5 th thm k t xung dng vo sau chui s: vbNewLine v reset bin dem
v 0: dem=0

Thit k giao din:

Bi tp cn bn Visual Basic.Net Vng lp
Trang 6


Code ca nt btnXuat nh sau:

Private Sub btnXuat_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnXuat.Click
Dim n, i, dem As Integer
Dim s As String
n = Val(txtn.Text)
s = ""
For i = 1 To n - 1
If (i Mod 3 = 0) Then
s = s & " " & i
dem = dem + 1
If dem = 5 Then
s = s & vbNewLine
dem = 0
End If
End If
Next
txtKetqua.Text = s
End Sub


5. Tm c chung ln nht 2 s a v b




Code ca nt btnTim:


btnXuat
txtKetqua
txtn
txtA
txtB
txtKetqua
btnTim
Bi tp cn bn Visual Basic.Net Vng lp
Trang 7
Private Sub btnTim_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnTim.Click
Dim a, b, uocchung As Integer
a = Val(txtA.Text)
b = Val(txtB.Text)

While (a <> b)
If a > b Then
a = a - b
Else
b = b - a
End If
End While

uocchung = a 'Hoac uocchung=b cung dung
txtKetqua.Text = uocchung
End Sub



6. Nhp mng, xut mng, tnh tng ca mng, tm max, tm min
(Cch thc hin c thay i cht t so vi yu cu ca bi thch hp vi mi trng VB.Net: cc phn t
ca mng s c nhp vo bng InputBox v xut kt qu ra textbox, thay v lm vic trn mn hnh en v
xut kt qu ra mn hnh nh trn C++)

Giao din chng trnh s nh sau:



Sau khi nhp s phn t v nhn nt Nhp mng, chng trnh s yu cu nhp tng phn t:



Sau khi nhp s phn t, chng trnh s in cc kt qu vo cc textbox

Code ca nt Nhp mng nh sau:






btnNhapmang
txtTong
txtMax
txtMax
Bi tp cn bn Visual Basic.Net Vng lp
Trang 8
Private Sub btnNhapmang_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles btnNhapmang.Click
Dim sopt, tong, max, min, i, mang() As Integer
Dim s As String

sopt = Val(txtSopt.Text)

'O tren ta khai bao mang nhung chua khai bao so phan tu
'cau lenh nay kahi bao lai mang voi so phan tu vua duoc nhap
ReDim mang(sopt)

'Nhap mang bang InputBox
For i = 0 To sopt - 1
mang(i) = InputBox("Nhp phn t th " & i & ":", "Nhp mng")
Next

'In mang ra textbox
s = ""
For i = 0 To sopt - 1
s = s & mang(i) & " "
Next
txtMangdanhap.Text = s

'Tinh tong cua mang va in ra textbox
tong = 0
For i = 0 To sopt - 1
tong = tong + mang(i)
Next
txtTong.Text = tong

'Tim max
max = mang(0)
For i = 1 To sopt - 1
If max < mang(i) Then max = mang(i)
Next
txtMax.Text = max

'Tim min
min = mang(0)
For i = 1 To sopt - 1
If min > mang(i) Then min = mang(i)
Next
txtMin.Text = min
End Sub


7. Nhp 1 s v in s o ngc
V d: 123 s in thnh 321
Hng dn: ta s p dng ton t Mod dng ly phn d (123 Mod 10=3) v ton t \ dng ly phn
nguyn ca php chia (123\10=12)







txtIn
txtSodaonguoc
txtN
Bi tp cn bn Visual Basic.Net Vng lp
Trang 9
Code ca nt In s o ngc:

Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnIn.Click
Dim n As Integer
Dim s As String

n = Val(txtN.Text)
s = ""

Do
s = s & (n Mod 10)
n = n \ 10
Loop While (n)

txtSodaonguoc.Text = s
End Sub


Cch trn c dng nu bn mun pht trin kh nng vit code, thut ton. Bi ny c th thc hin nhanh
hn v VB.Net c hm StrReverse dng o ngc 1 chui. Chng trnh trn c th c vit li ngn gn
hn nh sau:

Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles btnIn.Click
Dim n As String
n = txtN.Text
txtSodaonguoc.Text = StrReverse(n)
End Sub

You might also like