txtn txtKetqua btnKiemtra txtn txtKetqua btnKiemtra.
Trang 11 Tính n!
Ví d : 5!= 1 * 2 * 3 * 4 * 5 = 120
Thi t k form theo m u ho c t thi t k theo ý thích Chú ý n u đ t tên các control khác v i hình bên d i thì
c n s a l i code cho phù h p
Doube click vào nút btnTinh và nh p đo n 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
L u ý: Vì ki u d li u ta dùng ki u String, ch có th l u tr các giá tr trong kho ng -/+2,147,483,618, do đó
n u nh p n quá l n s phát sinh l i Ch ch y th v i n nh ho c đ i ki u d li u c a bi n tong sang ki u d li u khác đ có s c ch a l n h n
2.Tính t ng S=1+2+3+…+n
Thi t k form c ng t ng t nh trên Double click nút btnTinh và nh p đo n 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
txtn
btnTinh txtKetqua
txtn
btnTinh txtKetqua
Trang 23a Xu t dãy Fibonaci bé h n n
Dãy Fibonaci có d ng nh sau:
Hai ph n t đ u tiên là 1 và 1 T ph n t th ba tr đi, ph n t sau s b ng t ng c a 2 ph n t tr c nó
Ví d : 2= 1 + 1
3=1+2
5=2+3
8=5+5
…
Thi t k giao di n:
Double click vào nút Xu t dãy s và nh p vào đo n 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 Ki m tra n có ph i s nguyên t hay không
S nguyên t là s ch chia h t cho 1 và cho chính nó
Ví d : 2, 3, 5, 7, 11, 13, 17 là các s nguyên t
Thu t toán:
Gi s c n ki m tra s n
N u n=1 thì n không ph i s nguyên t
N u n=2 thì k t lu n n là s nguyên t
N u n>2: Kh i t o 1 bi n i ch y t 2 đ n c n b c 2 c a n N u có 1 s nào đó mà n chia h t cho nó (t c n Mod
txtn
btnXuat
txtKetqua
Trang 3Double nút btnKiemtra và nh p 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 nguyên t "
Else
txtKetqua.Text = n & " không ph i là s nguyên t "
End If
End Sub
3c Ki m tra n có ph i s hoàn h o
S hoàn h o là s b ng t ng các c s c a nó
Ví d : 6 là s hoàn h o vì các t ng các c s c a nó là 1 + 2 + 3 = 6
Gi i thu t:
Cho bi n i ch y t 1 đ n n-1, n u (n Mod i=0), ngh a là i là c c a n thì c ng i vào bi n tong: tong=tong+i
So sánh bi n tong v i n: n u tong=n thì n là s hoàn h o Ng c l i n không ph i s hoàn h o
txtn
txtKetqua btnKiemtra
txtn
txtKetqua btnKiemtra
Trang 4Double nút btnKiemtra và nh p đo n 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 hoàn h o"
Else
txtKetqua.Text = n & " không ph i s hoàn h o"
End If
End Sub
3d Ki m tra n có ph i là s chính ph ng
S chính ph ng là s mà c n b c 2 c a nó là 1 s nguyên (Nó là bình ph ng c a 1 s nguyên)
Ví d : 4, 9, 16, 25 là các s chính ph ng vì 4=22, 9=32, 16=42, 15=52
ki m tra 1 s có ph i s chính ph ng Ta s khai báo 1 bi n i ki u Integer và gán i=c n b c 2 c a n Do là
ki u nguyên nên i s ch nh n ph n nguyên c a phép l y c n Sau đó so sánh i*i v i n, n u i*i= n thì n là s chính ph ng
Ví d : n=9, i=Math.Sqrt(9)=3, 3*3=9, 9 là s chính ph ng
n=10, i=Math.Sqrt(10)=3.162278=3, 3*3=9 khác 10, v y 10 không ph i s chính ph ng
Thi t k giao di n
Code cho nút 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 chính ph ng"
txtn
txtKetqua btnKiemtra
Trang 54 Li t kê các s <n và chia h t cho 3, xu t ra textbox, m i dòng 5 s
textbox có th hi n th nhi u dòng, ta c n ch nh thu c tính Multiline c a textbox là True
Gi i thu t:
T o 1 chu i s dùng l u tr dãy s
T o 1 bi n dem dùng l u tr s ch s th a đi u ki n đã tìm đ c
Dùng vòng l p cho bi n i ch y t 1 đ n n-1
N u i mod 3=0 thì
N i thêm i vào chu i s
T ng bi n dem lên 1: dem=dem+1
Ki m tra n u dem=5 thì thêm kí t xu ng dòng vào sau chu i s: vbNewLine và reset bi n dem
v 0: dem=0
Thi t k giao di n:
Trang 6Code c a nút 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 Tìm c chung l n nh t 2 s a và b
btnXuat
txtKetqua txtn
txtA txtB txtKetqua btnTim
Trang 7Private 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 Nh p m ng, xu t m ng, tính t ng c a m ng, tìm max, tìm min
(Cách th c hi n có thay đ i chút ít so v i yêu c u c a đ bài đ thích h p v i môi tr ng VB.Net: các ph n t
c a m ng s đ c nh p vào b ng InputBox và xu t k t qu ra textbox, thay vì làm vi c trên màn hình đen và
xu t k t qu ra màn hình nh trên C++)
Giao di n ch ng trình s nh sau:
Sau khi nh p s ph n t và nh n nút Nh p m ng, ch ng trình s yêu c u nh p t ng ph n t :
Sau khi nh p đ s ph n t , ch ng trình s in các k t qu vào các textbox
Code c a nút Nh p m ng nh sau:
btnNhapmang
txtTong txtMax txtMax
Trang 8Private 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("Nh p ph n t th " & i & ":", "Nh p m ng") 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 Nh p 1 s và in s đ o ng c
Ví d : 123 s in thành 321
H ng d n: ta s áp d ng toán t Mod dùng đ l y ph n d (123 Mod 10=3) và toán t “\” dùng l y ph n nguyên c a phép chia (123\10=12)
txtIn txtSodaonguoc
txtN
Trang 9Code c a nút In s đ o ng c:
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
Cách trên đ c dùng n u b n mu n phát tri n kh n ng vi t code, thu t toán Bài này có th th c hi n nhanh
h n vì VB.Net có hàm StrReverse dùng đ đ o ng c 1 chu i Ch ng trình trên có th đ c vi t l i ng n g n
h n 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