1. Trang chủ
  2. » Giáo án - Bài giảng

Một Số Bài Tập Vòng Lặp trong Visual Basic 6.0 (có hướng dẫn giải)

9 1K 7

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 248,42 KB

Nội dung

txtn txtKetqua btnKiemtra txtn txtKetqua btnKiemtra.

Trang 1

1 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 2

3a 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 3

Double 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 4

Double 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 5

4 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 6

Code 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 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 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 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("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 9

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 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

Ngày đăng: 26/06/2016, 15:03

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w