Bài t p c n b n Visual Basic.Net – Vòng l p Tính n! Ví d : 5!= * * * * = 120 Thi t k form theo m u ho c t thi t k theo ý thích Chú ý n u đ t tên control khác v i hình bên d c n s a l i code cho phù h p i txtn txtKetqua btnTinh Doube click vào nút btnTinh 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 = For i = 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 giá tr kho ng -/+2,147,483,618, n u nh p n 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 Double click nút btnTinh nh p đo n code sau: txtn txtKetqua btnTinh 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 = For i = To n tong = tong + i Next txtKetqua.Text = tong End Sub Trang Bài t p c n b n Visual Basic.Net – Vòng l p 3a Xu t dãy Fibonaci bé h n n Dãy Fibonaci có d ng nh sau: 1 13 21 34 55 89 Hai ph n t đ u tiên T ph n t th ba tr đi, ph n t sau s b ng t ng c a ph n t tr Ví d : 2= + 3=1+2 5=2+3 8=5+5 … … c Thi t k giao di n: txtn txtKetqua btnXuat Double click vào nút Xu t dãy s 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 = 'Gan gia tri dau tien cho a va b a = b = 'Noi 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 s ch chia h t cho cho Ví d : 2, 3, 5, 7, 11, 13, 17 s nguyên t Thu t toán: Gi s c n ki m tra s n N u n=1 n không ph i s nguyên t N u n=2 k t lu n n s nguyên t N u n>2: Kh i t o bi n i ch y t đ n c n b c c a n N u có s mà n chia h t cho (t c n Mod i=0) k t lu n n không ph i s nguyên t thoát vòng l p Trang Bài t p c n b n Visual Basic.Net – Vòng l p txtn txtKetqua btnKiemtra Double nút btnKiemtra 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 = Then blKiemtra = False ElseIf n = Then blKiemtra = True Else For i = 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 & " s nguyên t " Else txtKetqua.Text = n & " không ph i 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 s b ng t ng c s c a Ví d : s hoàn h o t ng c s c a + + = Gi i thu t: Cho bi n i ch y t đ n n-1, n u (n Mod i=0), ngh a i c c a n c ng i vào bi n tong: tong=tong+i So sánh bi n tong v i n: n u tong=n n s hoàn h o Ng c l i n không ph i s hoàn h o txtn txtKetqua btnKiemtra Trang Bài t p c n b n Visual Basic.Net – Vòng l p Double nút btnKiemtra 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) 'Bien tong dung chua tong cac uoc so tong = For i = To n - If (n Mod i = 0) Then tong = tong + i End If Next If tong = n Then txtKetqua.Text = n & " 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 s ph ng S ph ng s mà c n b c c a s nguyên (Nó bình ph ng c a s nguyên) Ví d : 4, 9, 16, 25 s ph ng 4=22, 9=32, 16=42, 15=52 ki m tra s có ph i s ph ng Ta s khai báo bi n i ki u Integer gán i=c n b c c a n Do 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 n s ph ng Ví d : n=9, i=Math.Sqrt(9)=3, 3*3=9, s 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 ph ng Thi t k giao di n txtn txtKetqua btnKiemtra 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 & " s ph ng" Else txtKetqua.Text = n & " không ph i s ph End If End Sub Trang ng" Bài t p c n b n Visual Basic.Net – Vòng l p Li t kê s 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 Nh p m ng, xu t m ng, tính t ng c a m ng, tìm max, tìm (Cách th c hi n có thay đ i chút so v i yêu c u c a đ đ thích h p v i môi tr ng VB.Net: ph n t c a m ng s đ c nh p vào b ng InputBox xu t k t qu textbox, thay làm vi c hình đen xu t k t qu hình nh C++) Giao di n ch ng trình s nh sau: btnNhapmang txtTong txtMax txtMax Sau nh p s ph n t nh n nút Nh p m ng, ch Sau nh p đ s ph n t , ch ng trình s yêu c u nh p t ng ph n t : ng trình s in k t qu vào textbox Code c a nút Nh p m ng nh sau: Trang Bài t p c n b n Visual Basic.Net – Vòng l p 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 kahi bao lai mang voi so phan tu vua duoc nhap ReDim mang(sopt) 'Nhap mang bang InputBox For i = To sopt - mang(i) = InputBox("Nh p ph n t Next 'In mang textbox s = "" For i = To sopt - s = s & mang(i) & " Next txtMangdanhap.Text = s th " & i & ":", "Nh p m ng") " 'Tinh tong cua mang va in textbox tong = For i = To sopt - tong = tong + mang(i) Next txtTong.Text = tong 'Tim max max = mang(0) For i = To sopt - If max < mang(i) Then max = mang(i) Next txtMax.Text = max 'Tim min = mang(0) For i = To sopt - If > mang(i) Then = mang(i) Next txtMin.Text = End Sub Nh p s 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) toán t “\” dùng l y ph n nguyên c a phép chia (123\10=12) txtN txtIn txtSodaonguoc Trang Bài t p c n b n Visual Basic.Net – Vòng l p Code 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 đ 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 có th th c hi n nhanh h n VB.Net có hàm StrReverse dùng đ đ o ng c chu i Ch ng trình 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 Trang