bai tap vb6

Bài tập tìm xâu con chung dài nhất

Dim xau1(20) As Integer

Dim xau2(20) As Integer

Dim xaucon(20, 1) As Integer

Private Sub Command1_Click()

Dim i, j, k, l, m As Integer

Dim s As String

j = 0

k = -1

l = 0

m = 0

'xaucon(0, 0) = 0

'xaucon(0, 1) = 0

For i = 0 To 20

If xau1(i) = xau2(i) Then

If j = 0 Then

k = k + 1

xaucon(k, 0) = i

End If

j = j + 1

xaucon(k, 1) = j

Else

j = 0

k = k + 1

xaucon(k, 0) = i

xaucon(k, 1) = 0

End If

Next

m = xaucon(0, 0)

l = xaucon(0, 1)

For i = 1 To 20

If xaucon(i, 1) > l Then

m = xaucon(i, 0)

l = xaucon(i, 1)

End If

Next

Command1.Caption = "Bat dau tai vi tri: " & m & " - " & "Chieu dai xau con: " & l

s = ""

For i = m To m - 1 + l

s = s & xau1(i) & " - "

Next

Text3.Text = s

s = ""

Text5.Text = ""

For i = 0 To 20

s = s & xaucon(i, 1) & "-"

Text5.Text = Text5.Text & xaucon(i, 0) & " - "

Next

Text4.Text = s

End Sub

Private Sub Command2_Click()

Dim i As Integer

Dim s As String

For i = 0 To 20

xau1(i) = Int(1 + 3 * Rnd)

s = s & xau1(i) & " - "

Next

Text1.Text = s

s = ""

For i = 0 To 20

xau2(i) = Int(1 + 3 * Rnd)

s = s & xau2(i) & " - "

Next

Text2.Text = s

End Sub

Private Sub Form_Load()

Dim i As Integer

Dim s As String

Randomize

For i = 0 To 20

xau1(i) = Int(1 + 3 * Rnd)

s = s & xau1(i) & " - "

Next

Text1.Text = s

s = ""

For i = 0 To 20

xau2(i) = Int(1 + 3 * Rnd)

s = s & xau2(i) & " - "

Next

Text2.Text = s

End Sub

-------------------------------------------------------------------------

tìm xâu dài nhất

#

# Option Explicit

# Dim s As String

# Dim a() As String

# Dim max As Integer, i As Integer, vitri As Integer

# Private Sub Command1_Click()

# s = Trim$(Text1.Text)

# a = Strings.Split(s, " ")

# 'O day ban co the kiem tra chuoi dau vao co rong khong de tranh loi

# max = 0

# For i = LBound(a) To UBound(a)

# If Len(Trim$(a(i))) > max Then max = Len(Trim$(a(i))): vitri = i

# Next i

# MsgBox "chuoi dai nhat la: '" & a(vitri) & "' voi " & max & " ki tu!"

# End Sub

------------------------------

code de nhap n so phan tu cua mang

1. Dim i, a(1 To 10) As Integer

2. For i = 1 To 10

3. a(i) = InputBox("Nhap Phan Tu Thu " & i)

4. Next i

5. For i = 1 To 10

6. Print a(i);

7. Next i

--------------------------------

thuật toán sắp xếp theo thứ tự tăng dần

#

# Dim iArr(10) As Integer

# Private Sub Command1_Click()

# Dim i, j, k As Integer

# Dim iMin As Integer

#

# Randomize

# For i = 0 To 10

# iArr(i) = Rnd * 10

# Label1.Caption = Label1.Caption & iArr(i) & " - "

# Next

#

# For i = 0 To 10

# iMin = iArr(i)

# k = i

# For j = i + 1 To 10

# If iArr(j) < iMin Then

# iMin = iArr(j)

# k = j

# End If

# Next

# If k <> i Then HoanVi i, k

# Next

# For i = 0 To 10

# Label2.Caption = Label2.Caption & iArr(i) & " - "

# Next

# End Sub

#

# Private Sub HoanVi(ByVal i As Integer, ByVal j As Integer)

# Dim tmp As Integer

#

# tmp = iArr(i)

# iArr(i) = iArr(j)

# iArr(j) = tmp

# End Sub

--------------------

# For i = 0 To n - 1 Step 1

# For j = i + 1 To n Step 1

# If arrList(i) > arrList(j) Then

# k = arrList(i) 'Dùng biến trung gian K để thực hiện việc hoán đổi vị trí

# arrList(i) = arrList(j)

# arrList(j) = k

# End If

# Next j

# Next i

---------------------------------

Tổng ước : vd 6 = 1 + 2 + 3

Function tonguoc(ByVal n As Integer) As Integer

Dim S As Integer = 0

For i As Integer = 1 To n \ 2

If (n Mod i) = 0 Then

S = S + i

End If

Next

tonguoc = S

End Function

-------------------------------

số mũ

Function mu(ByVal a As Integer, ByVal n As Integer) As Integer

Dim T As Integer = 1

For i As Integer = 1 To n

T = T * a

Next

mu = T

End Function

------------------------

số nguyên tố

Function nguyento(ByVal n As Integer) As Boolean

nguyento= true

For i As Integer = 2 To n \ 2

If n Mod i = 0 Then

nguyento=false

Exit For

End If

Next

End Function

------------------------

ước chung lớn nhất

Gọi x là USCLN của a và b. x= { a chia hết x và b chia hết x} và { tồn tại y : a chia hết y và b chia hết y => y <= x }

Function UCLN(ByVal m As Integer, ByVal n As Integer) As Integer

Dim r As Integer

r = m Mod n

While (r <> 0)

m = n

n = r

r = m Mod n

End While

UCLN = n

End Function

--------------------

bội chung nhỏ nhất

Function BCNN(ByVal m As Integer, ByVal n As Integer) As Integer

BCNN = (m * n) \ UCLN(m, n)

End Function

---------------------

7. Phân tích số ra thừa số nguyên tố

Ví dụ : 6 = 2 * 3

Function phantichthuaso_ngto(ByVal n As Integer) As String

Dim i As Integer = 2

Dim S As String = " "

While (i <= n)

If (nguyento(i) And (n Mod i = 0)) Then

n = n \ i

If (n = 1) Then

S = S + i.ToString + " "

Else

S = S + i.ToString + " " + "*" + " "

End If

Else

i = i + 1

End If

End While

phantichthuaso_ngto = S

End Function

-----------------------------

8. Tính giai thừa :

n! = n.(n-1).(n-2)....4.3.2.1

Function giaithua(ByVal n As Integer) As Integer

Dim T As Integer = 1

For i As Integer = 1 To n

T = T * i

Next

giaithua = T

End Function

------------------------------

9. Kiếm tra tính đối xứng

ví dụ : 1221 ---> đối xứng

Function doixung(ByVal chuoi As String) As Boolean

doixung = False

For i As Integer = 1 To Len(chuoi) \ 2

If Mid(chuoi, i, 1) = Mid(chuoi, Len(chuoi) + 1 - i, 1) Then

doixung = True

Exit For

End If

Next

End Function

-------------------------------

11. Hệ phương trình 2 ẩn:

a1x+b2y=c1

a2x+b2y=c2

'a1x+b2y=c1

'a2x+b2y=c2

Sub hephuongtrinh2an(ByVal a1 As Integer, ByVal b1 As Integer, ByVal c1 As Integer, ByVal a2 As Integer, ByVal b2 As Integer, ByVal c2 As Integer)

Dim d As Integer, dx As Integer, dy As Integer

d = a1 * b2 - a2 * b1

dx = c1 * b2 - c2 * b2

dy = a1 * c2 - a2 * c1

If d <> 0 Then

MsgBox("Phuong trinh co nghiem duy nhat")

MsgBox(" x = " & dx / d & vbCrLf & " y = " & dy / d)

ElseIf (d = 0 And dx <> 0) Or (d = 0 And dy <> 0) Then

MsgBox("Phuong trinh vo nghiem ")

ElseIf d = 0 And dx = 0 And dy = 0 Then

MsgBox("Phuong trinh vo so nghiem")

End If

End Sub

-----------------------------------------

1. Đổi Cơ Số

1.1. Đổi thập phân --> cơ số 2,8,16

Function doicoso10(ByVal n As Integer, ByVal he As Integer) As String

Dim r As Integer

Dim S As String = ""

While n <> 0

r = n Mod he

If r = 0 Then

S = r.ToString + S

Else

S = r.ToString + S

End If

n = n \ he

End While

doicoso10 = S

End Function

------------------------

1.2. Đổi cơ số 2,8,16 ---> Cơ số 10

Function doisanghe10(ByVal chuoi As String, ByVal he As Byte) As Integer

Dim S As Integer = 0

For i As Integer = 1 To Len(chuoi)

S = S + Val(Mid(chuoi, i, 1)) * he ^ (Len(chuoi) - i)

Next

doisanghe10 = S

End Function

-----------------------

2. Ma trận :

2.1. Ma trận 1 chiều :

Khởi tạo 1 ma trận :

Dim r As New Random

'--- Khoi tao

For Me.j = 1 To n

a(i) = r.Next(10) ' Lay tri ngau nhien 0-9

Next

--------------------

a. Nhập 1 giá trị X, xem thử X có thuộc Mảng A không ? thuộc mấy lần

Sub kiemtra(ByVal x As String)

Dim S As Integer

For i As Integer = 1 To n

If a(i) = x Then

S = S + 1

End If

Next

If S > 0 Then

MsgBox(x & " thuộc với " & S & " lần ")

Else

MsgBox(x & " không thuộc ")

End If

End Sub

---------------------------------

b. Tính tổng các phần tử có : giá trị chẵn hoặc cột chẵn

Sub tongcacphantuchan()

Dim S As Integer

For i As Integer = 1 To n

If i Mod 2 = 0 Then

S = S + a(i)

End If

Next

MsgBox("Tổng các phần tử chẵn : " & S)

End Sub

'-------------------------------------------------------

Sub tongcotchan()

Dim S As Integer

For i As Integer = 2 To n Step 2

S = S + a(i)

Next

MsgBox("Tổng các phần tử cột chẵn : " & S)

End Sub

----------------------------

2.2. Ma trận 2 chiều :

Đầu tiên phải tạo trước 2 ma trận A,B đã . Khởi tạo ngẫu nhiên cho nhanh thấy

Dim r As New Random

'--- Khoi tao mang A, B

For Me.i = 1 To m

For Me.j = 1 To n

a(i, j) = r.Next(10) ' Lay tri ngau nhien 0-9

b(i, j) = (r.Next(10)) ' Lay tri ngau nhien 0-9

Next

Next

--------------------------

2.2.1. Cộng, trừ, nhân, chia 2 ma trận :

Const max = 100

Dim a(max, max) As Integer, b(max, max) As Integer, c(max, max) As Integer

Dim m As Integer, n As Integer, i As Integer, j As Integer

Sub congmatran()

Dim i As Integer, j As Integer

For i = 0 To m ' duyet theo hang

For j = 0 To n 'duyet theo cot

c(i, j) = a(i, j) + b(i, j)

Next j

Next i

End Sub

Sub nhanmatran()

Dim i As Integer, j As Integer, k As Integer

For i = 0 To m ' duyet theo hang

For j = 0 To n 'duyet theo cot

c(i, j) = 0

For k = 1 To m

c(i, j) += a(i, k) * b(k, j)

Next

Next j

Next i

End Sub

-------------------

Sắp xếp dãy tăng/giảm.

Private Sub cmdKetqua_Click()

Dim dayso() As String

dayso = Split(txtNhap, ",")

Dim i As Integer, j As Integer, k As Integer

'code tuongphu

For i = 0 To UBound(dayso) - 1 Step 1

For j = i + 1 To UBound(dayso) Step 1

If CInt(dayso(i)) > CInt(dayso(j)) Then

k = CInt(dayso(i))

dayso(i) = dayso(j)

dayso(j) = k

End If

Next j

Next i

txtKetqua.Text = ""

txtKetqua1.Text = ""

For i = 0 To UBound(dayso) Step 1

txtKetqua = txtKetqua & dayso(i) & ", "

txtKetqua1 = txtKetqua1 & dayso(UBound(dayso) - i) & ", "

End Sub

-----------------

pt bac 2

Private Sub Command1_Click()

Dim a As Integer, b As Integer, c As Integer, delta As Integer

a = Val(Text1.Text)

b = Val(Text2.Text)

delta = b * b - 4 * a * c

If delta < 0 Then

MsgBox "Vo nghiem"

Else

If delta = 0 Then

MsgBox "Nghiem kep: x1 = x2 = " & -b / (2 * a)

Else

MsgBox "2 nghiem phan biet" & vbCrLf & "x1 = " & (-b - Sqr(delta)) / (2 * a) & vbCrLf & "x2 = " & (-b + Sqr(delta)) / (2 * a)

End If

End If

End Sub

----------------------------------

1)Viết chương trình tính tổng các số lẻ từ 1 đến n,với n nhập từ bàn phím.

Dim S,n,i As Integer

Private Sub Form_Load()

n=InputBox("Nhap vao n:","Thong bao")

For i=1 to n step 2

S=S+i

Next

MsgBox "Tong la: " & S

chẵn : i =0

Bạn đang đọc truyện trên: truyentop.pro

Tags: