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: Truyen247.Pro