Bài tập VB6 (giáo trình SPKT)

1. Tính tổng T= 1+ 2+3+…+N. N>=0. nếu N=0 thì T=0

Private Sub cmdtinh_Click()

Dim n As Integer

Dim i As Integer

Dim kq As Integer

‘lay gia tri cho n’

n = Val(TXTN.Text)

kq = 0

‘kiem tra so n nhap vao’

If n = 0 Then

‘neu n = 0 thi xuat ket qua tong la: 0’

kq = 0

Else

‘neu n # 0, dung vong lap cong cac gia tri chay tu 1 den n’

For i = 1 To n

kq = kq + i

Next i

End If

‘xuat ket qua ra o textbox’

txtkq.Text = kq

End Sub

2. : Viết chương trình tính tổng T = 1 – 2 + 3- 4 + … (-1)N+1N, với N là số nguyên 0, nếu N=0 thì T=0.

Private Sub cmdtinh_Click()

Dim n As Integer

Dim i As Integer

Dim kq As Integer

‘gan gia tri cho N’

n = (txtn.Text)

kq = 0

‘kiem tra N’

If n = 0 Then

‘neu N = 0 thi gan kq=0 va ket thuc chuong trinh”

kq = 0

Else

‘nguoc lai n #0 thi lam buoc tinh tiep’

‘co the dung 2 vong lap for voi buoc nhay la 2 (step 2) de tinh’

‘vong for nay de tinh tong cac so le tu 1 den n’

For i = 1 To n Step 2

kq = kq + i

Next i

‘vong for nay tinh hieu cac so chan tu 2 den n’

For i = 2 To n Step 2

kq = kq – i

Next i

End If

‘xuat kq ra o textbox’

txtkq.Text = kq

End Sub

3. Viết chương trình nhập một số nguyên dương có 3 chữ số, viết ra màn hình dạng: trăm, chục, đơn vị. Ví dụ, nhập vào số : 246, kết quả cho là : 2 Trăm 4 chục 6 Đơn vị

Private Sub cmdtinh_Click()

Dim n As Integer

Dim tr As Integer

Dim ch As Integer

Dim dv As Integer

n = Val(txtn.Text)

‘kiem tra n la so co 3 chu so’

If n > 99 And n < 1000 Then

tr = n \ 100 ‘lay gia tri chia nguyen cua n cho 100 ta duoc hang tram’

ch = (n – tr * 100) \ 10 ‘n-tr*100 ta duoc 2 chu so cuoi, lay 2 so do chi nguyen cho 10 ta duoc hang chuc’

dv = n – tr * 100 – ch * 10

Else

‘dua ra thong bao so n khong phai la so co 3 chu so bang msgbox’

MsgBox (“so ” & Str(n) & ” khong phai la so co 3 chu so” & vbCrLf & “ban hay nhap lai”)

End If

txttram.Text = tr

txtchuc.Text = ch

txtdv.Text = dv

End Sub

Private Sub txttram_Change()

End Sub

4. Viết chương trình cho phép nhập vào một số và kiểm tra số đó có phải là số nguyên tố hay không.

Private Sub Command1_Click()

txta.Text = “”

lblkq.Caption = “”

txta.SetFocus

End Sub

Private Sub Command2_Click()

End

End Sub

Private Sub Command3_Click()

Dim a, i

‘kiem tra so a, so 1 khong la so ng.to, 2 la so ng.to, so nguyen to la so chi chia het cho 1 va chinh no’

a = txta.Text

If a = 1 Then

lblkq.Caption = “so 1 khong phai la so nguyen to”

End If

If a = 2 Then

lblkq.Caption = “so 2 la so nguyen to”

End If

If a > 2 Then

i = a

Do

i = i – 1

Loop Until a Mod i = 0

If i > 1 Then

lblkq.Caption = “so” & Str(a) & ” khong phai la so nguyen to”

Else

lblkq.Caption = “so” & Str(a) & ” la so nguyen to”

End If

End If

End Sub

5. : Viết chương trình nhập 3 số và tìm ra số lớn nhất giữa ba số số

Private Sub Command1_Click()

Dim a As Integer

Dim b As Integer

Dim c As Integer

Dim max As Integer

a = Val(txt1.Text)

b = Val(txt2.Text)

c = Val(txt3.Text)

max = a

‘kiem tra max da la so lon nhat chua’

If b > max Then max = b

If c > max Then max = c

txtkq.Text = max

End Sub

6. Viết chương trình cho phép nhập vào (quy định trước) : số hạng đầu tiên, công bội của một cấp số nhân, giao diện tự thiết kế cho phù hợp. Cho phép người dùng tìm ra :

  1. Số hạng bất kỳ của nó.

  2. Tổng của n số hạng đầu tiên của nó.

private sub cmdtinh1

Dim a As Integer

Dim d As Integer

Private Sub Command1_Click()

Dim n As Integer

Dim kq As Integer

a = Val(txta.Text)

d = Val(txtcb.Text)

n = Val(txtson.Text)

kq = a * (d ^ (n – 1)) ‘cong thuc tinh so hang thu n’

txtsohang.Text = kq

End Sub

Private Sub Command2_Click()

Dim m As Integer

Dim kq As Integer

a = Val(txta.Text)

d = Val(txtcb.Text)

m = txtm.Text

‘co the dung cong thuc hoac dung vong lap for de tinh tong nay’

kq = 0

For i = 1 To m

kq = kq + a * d ^ (i – 1) ‘cong thuc tinh tong n so hang dau cua CSN a*((1-d^(n+1))/(1-d))’

Next i

txtkq.Text = kq

txtkq.Text = kq

End Sub

7. Viết chương trình cho phép nhập vào 2 số a và b, giao diện tự thiết kế cho phù hợp. Tìm

  1. USCLN

  2. Tìm và in ra phân số tối giản của a/b (ví dụ a= 6, b = 12 thì in ra : a/b = ¾)

Dim a, b, c, i, d

Public Sub Command1_Click()

Dim d As Integer

a = Val(txta.Text)

b = Val(txtb.Text)

‘uoc chung la so lon nhat ma 2 so co the chia het => uoc chung phai nho hon hoac bang so nho nhat trong 2 so’

If b < a Then

c = b

d = a

Else

c = a

d = b

End If

i = c

Do

i = i – 1

Loop Until a Mod i = 0 And b Mod i = 0

txtkq.Text = i

End Sub

Private Sub Command2_Click()

‘tim phan so toi gian’

txtkq.Text = Str(a / i) & “/” & Str(b / i)

End Sub

Private Sub Command3_Click()

End

End Sub

Private Sub Command4_Click()

txta.Text = “”

txtb.Text = “”

txtkq.Text = “”

txta.SetFocus

End Sub

8. Viết chương cho phép nhập vào một mảng A gồm 7 phần tử, thực hiện các yêu cầu sau

  1. Tính tổng mảng.
  2. Tính giá trị lớn nhất.
  3. Tính giá trị nhỏ nhất.
  4. Đếm số lần xuất hiện của x (với x nhập từ bàn phím).

Dim A(4) As Integer

Dim x As Double

Private Sub Nhapmang()

‘nhap mang, lay tu mang da nhap vao cac o nho’

Dim i As Integer

For i = 0 To 4

A(i) = Val(Txta(i).Text)

Next

End Sub

Private Function tongmang() As Double

‘tinh tong mang’

Dim i As Integer

Dim Tong As Double

Tong = A(0)

For i = 1 To 4

Tong = Tong + A(i)

Next

tongmang = Tong

End Function

Private Function maxmang() As Double

‘tim gia tri lon nhat cua mang’

Dim i As Integer

Dim max As Double

max = A(0)

For i = 1 To 4

If max < A(i) Then max = A(i)

Next

maxmang = max

End Function

Private Function minmang() As Double

‘tim gia tri nho nhat cua mang’

Dim i As Integer

Dim min As Double

min = A(0)

For i = 1 To 4

If min > A(i) Then min = A(i)

Next

minmang = min

End Function

Private Function solan() As Double

‘dem so lan xuat hien cu so nhap tu ban phim’

Dim i As Integer

For i = 0 To 4

If x = A(i) Then solan = solan + 1

Next

End Function

Private Sub Chkpt_Click(Index As Integer)

‘neu click vao o dem thi xuat hien mot o de nhap so can dem vao’

If (Index = 3) And (Chkpt(3).Value = 1) Then x = InputBox(“x = “, “”)

End Sub

Private Sub Cmdtinh_Click()

‘xuat ket qua ra msgbox’

Dim s As String

Nhapmang

For i = 0 To 3

If Chkpt(i).Value = 1 Then

Select Case i

Case 0

s = “tong = ” & tongmang & vbCrLf

Case 1

s = s & “max = ” & maxmang & vbCrLf

Case 2

s = s & “min = ” & minmang & vbCrLf

Case 3

s = s & “solan = ” & solan

End Select

End If

Next

MsgBox s

End Sub

9. Viết chương trình cho phép nhập vào một mảng A có 7 phần tử và sắp xếp mảng A đó theo thứ tự tăng dần, giảm dần

Private Sub cmdgiam_Click()

Dim a(6) As Integer

Dim i As Integer

‘ nhap mang’

For i = 0 To 6

a(i) = txtn(i).Text

Next i

Dim j As Integer

Dim tg As Integer

‘doi cho’

For i = 0 To 5

For j = i + 1 To 6

If a(i) < a(j) Then

tg = a(i)

a(i) = a(j)

a(j) = tg

End If

Next j

Next i

‘in ket qua’

For i = 0 To 6

txtkq(i).Text = a(i)

Next i

End Sub

Private Sub cmdtang_Click()

Dim a(6) As Integer

Dim i As Integer

‘ nhap mang’

For i = 0 To 6

a(i) = Val(txtn(i).Text)

Next i

Dim j As Integer

Dim tg As Integer

‘doi cho’

For i = 0 To 5

For j = i + 1 To 6

If a(i) > a(j) Then

tg = a(i)

a(i) = a(j)

a(j) = tg

End If

Next j

Next i

‘in ket qua’

For i = 0 To 6

txtkq(i).Text = a(i)

Next i

End Sub

10. Viết chương trình nhập vào mảng A gồm n phần tử (n nhập từ bàn phím). Kiểm tra mảng A có đối xứng hay không?

‘khai bao bien chung cho toan bo chung trinh’

Dim a(1 To 100) As Integer

Dim i As Integer

Dim n As Integer

Dim j As Integer

Dim b As String

Public Sub cmdnhap_Click()

‘nhap mang’

n = InputBox(“nhap so phan tu cua mang vao: “, “nhap n”)

For i = 1 To n

a(i) = InputBox(“nhap phan tu A(” & Str(i) & “) vao: “, “nhap a(” & Str(i) & “)”)

Next i

‘in mang da nhap’

b = “”

For i = 1 To n

b = b & ” ” & Str(a(i))

Next i

txtnhap.Text = b

End Sub

Private Sub cmdkt_Click()

‘kiem tra tinh doi xung’

For i = 1 To n

If a(i) = a(n + 1 – i) Then

lblkq.Caption = ” mang da nhap la doi xung”

Else

lblkq.Caption = “mang da nhap la khong doi xung”

End If

Next i

End Sub

11. Viết chương trình nhập vào mảng A gồm n phần tử (n nhập vào từ bàn phím). Kiểm tra mảng là tăng hay giảm hay không tăng không giảm

Dim a(1 To 100) As Integer

Dim i As Integer

Dim n As Integer

Dim j As Integer

Private Sub cmdnhap_Click()

Dim m As String

‘nhap mang’

n = InputBox(“nhap so phan tu cua mang: “, “nhap N”)

‘nhap cac phan tu cua mang’

For i = 1 To n

a(i) = InputBox(“nhap phan tu A(” & Str(i) & “) vao:”, “nhap phan tu”)

Next i

m = “”

‘in mang’

For i = 1 To n

m = m & ” ” & Str(a(i))

Next i

txtn.Text = m

End Sub

Private Sub cmdkt_Click()

Dim kq As String

i = 1

Do

i = i + 1

Loop Until a(i) >= a(i + 1) Or i = n ‘ lap den khi nao dieu kien nay dung thi dung lai’

If i = n Then ‘ khi i = n thi vong lap dung lai, va dieu kien ten la dung => a(i)< a(i+1)’

kq = “mang da nhap la day tang”

Else

i = 1

Do While a(i) > a(i + 1) And i < n ‘lap khi dieu kien nay dung, va dung lai khi dieu kien nay sai’

i = i + 1

Loop

If i = n Then ‘khi i = n thi dieu kien tren la sai va so a(i) do la cuoi cung => a(i) > a(i + 1), tuc la day giam’

kq = “mang da nhap la giam”

Else ‘nguoc lai voi 2 truong hop tren’

kq = “mang da nhap la khong tang cung khong giam”

End If

End If

lblkq.Caption = kq

End Sub

12. : Viết chương trình nhập vào một câu không quá 50 ký tự. Đếm xem trong câu có bao nhiêu chữ “Pascal”.

Private Sub cmddem_Click()

Dim a As String

Dim n As Integer

Dim i As Integer

Dim dem As Integer

a = txtnhap.Text

n = Len(a)

If n > 50 Then MsgBox (“ban da nhap du ” & Str(n – 50) & ” ki tu, ban hay xoa bot ” & Str(n – 50) & ” ki tu hoac nhap lai”)

If Left(a, 6) = “pascal” Then

dem = 1

Else

dem = 0

End If

If Right(a, 7) = ” pascal” Then

dem = dem + 1

End If

For i = 2 To n – 6

If Mid(a, i, 8) = ” pascal ” Then

dem = dem + 1

End If

Next i

txtkq.Text = dem

End Sub

13. Viết chương trình nhập vào một câu có không quá 50 ký tự

    1. Đếm xem trong câu có bao nhiêu ký tự là số.
    2. Tính tổng các chữ số trong câu.

Private Sub cmddem_Click()

Dim a As String

Dim n As Integer

Dim i As Integer

Dim b As String

Dim dem As Integer

Dim t As Integer

a = txtnhap.Text

n = Len(a)

dem = 0

t = 0

For i = 1 To n

b = Mid(a, i, 1) ‘lay lan luot tung ki tu trong chuoi’

If b = “0” Then ‘so 0 la ki tu so’

dem = dem + 1

ElseIf Val(b) <> 0 Then ‘so 0 va ca ki tu khong phai so thi val(ki tu) deu bang 0’

dem = dem + 1

t = t + Val(b)

End If

Next i

‘in kq ra hop thong bao msgbox’

MsgBox (“trong cau da nhap co: ” & Str(dem) & ” ki tu so” & vbCrLf & “tong cac ki tu so trong cau la: ” & Str(t))

End Sub

14. Viết chương trình nhập vào một câu, đếm xem trong câu có bao nhiêu chữ hoa, bao nhiêu chữ thường

Private Sub cmddem_Click()

Dim a As String

Dim n As Integer

Dim i As Integer

Dim b As String

Dim hoa As Integer

Dim thuong As Integer

a = txtnhap.Text

n = Len(a)

hoa = 0

thuong = 0

For i = 1 To n

b = Mid(a, i, 1)

If b = UCase(b) And b <> ” ” Then

hoa = hoa + 1

ElseIf b <> ” ” Then

thuong = thuong + 1

End If

Next i

lblkq.Caption = “trong cau co: ” & Str(hoa) & ” ki tu la chu in hoa” & vbCrLf & “trong cau co: ” & Str(thuong) & ” ki tu thuong”

End Sub

‘su dung ham UCASE(b) de doi ki tu thuong ra ki tu hoa neu khi doi ra b va ucase(b) bang nhau thi b la ki tu in hoa nguoc lai la chu thuong’

15. Viết chương trình nhập vào một câu, tìm xem trong câu vừa nhập có chứa chuỗi “em” không, nếu có thì thay chuỗi “em” thành chuỗi “anh”. Nếu không có thì thông báo là không có.

Private Sub cmdtim_Click()

Dim a As String

Dim n As String

Dim i As Integer

Dim k As String

Dim t As Integer

a = txtnhap.Text

‘kiem tra cau da nhap co tu em hay khong’

If Left(a, 3) = “em ” Then

t = 1

Else

t = 0

End If

If Right(a, 3) = ” em” Then t = t + 1

For i = 2 To Len(a)

If Mid(a, i, 4) = ” em ” Then t = t + 1

Next i

If t = 0 Then MsgBox (“cau da nhap khong co tu EM, ban hay nhap lai”)

‘dung ham tim kiem va thay the relace(a, s1, s1) tim trong chuoi a co chuoi s1 thi thay tat ca s1 thanh s2’

n = Replace(a, “em”, “anh”)

txtkq.Text = n

End Sub

16. Viết chương trình nhập vào một câu bất kỳ, in lại câu đó với mỗi từ trên một dòng

Private Sub cmdtinh_Click()

Dim a As String

Dim n As String

a = txtnhap.Text

‘ su dung ham replace nhu bai 15’

n = Replace(a, ” “, vbCrLf)

lblkq.Caption = n

End Sub.

17. Viết chương trình nhập vào một chuỗi, đảo ngược chuỗi và xuất ra màn hình. Ví dụ nhập vào câu : “Tin Hoc”, in ra là : Hoc Tin

Private Sub cmdtinh_Click()

Dim a As String

Dim b As String

Dim i As Integer

Dim n As Integer

a = txtnhap.Text

n = Len(a)

b = “”

For i = n To 1 Step -1

If Mid(a, i, 1) = ” ” Then

b = b & ” ” & Mid(a, i + 1, n – i + 1)

n = i – 1

i = n

End If

Next i

i = 1

Do

i = i + 1

Loop Until Mid(a, i, 1) = ” “

b = b & ” ” & Left(a, i – 1)

txtkq.Text = b

End Sub.

18. Viết chương trình nhập vào mảng A nguyên 10 phần tử. Việc nhập sẽ được kiểm tra với điều kiện các phần tử của mảng phải lớn hơn 0. sau đó thực hiện các công việc sau.

  1. In mảng theo thứ tự ngược lại với thứ tự đã nhập.
  2. In ra màn hình các giá trị nguyên dương chia hết cho 2.
  3. Tìm và in ra các phần tử lớn nhất và nhỏ nhất của mảng.
  4. Tìm các số nguyên tố trong khoảng từ min tới max.
  5. Tính max!.
  6. Tìm ucln và bcnn của min và max.

Dim a(1 To 10) As Integer

Private Sub cmdnhap_Click()

Dim i As Integer

Dim n As String

For i = 1 To 10

a(i) = Val(InputBox(“nhap so thu ” & Str(i) & ” vao”, “nhap”))

Next i

For i = 1 To 10

If a(i) = 0 Then MsgBox (“ban phai nhap so khac 0”)

Next i

n = “”

For i = 1 To 10

n = n & ” ” & Str(a(i))

Next i

txtnhap.Text = n

End Sub

Private Sub cmdtinh_Click()

Dim n As String

Dim i As Integer

Dim m As String

Dim max As Integer

Dim min As Integer

Dim b(10) As Integer

Dim j As Integer

Dim tg As Integer

Dim so As String

Dim t

Dim bc As Integer

Dim uc As Integer

Dim k As Integer

Dim d As Integer

‘in mang nguoc lai’

n = “”

For i = 10 To 1 Step -1

n = n & ” ” & Str(a(i))

Next i

‘……………………’

‘tim cac so nguyen duong chia het cho 2’

m = “”

For i = 1 To 10

If a(i) > 0 And a(i) Mod 2 = 0 Then

m = m & ” ” & Str(a(i))

End If

Next i

If m = “” Then m = “khong co so nao chia het cho 2”

‘……………’

‘tim max’

max = a(1)

For i = 2 To 10

If a(i) > max Then max = a(i)

Next i

‘……………..’

‘tim min’

min = a(1)

For i = 2 To 10

If a(i) < min Then min = a(i)

Next i

‘………………..’

‘tim so nguyen to’

so = “‘”

For d = min To max

If d = 1 Then

so = so

End If

If d = 2 Then

so = so & ” ” & Str(2)

End If

If d > 2 Then

i = d

Do

i = i – 1

Loop Until d Mod i = 0

If i > 1 Then

so = so

Else

so = so & ” ” & Str(d)

End If

End If

Next d

‘………………….’

‘tinh max!’

t = 1

For i = 1 To max

t = t * i

Next i

‘…………….’

‘tim bcll va ucnn cua max va min’

i = min

uc = 1

If min = 1 Then

uc = 1

Else

Do

i = i – 1

Loop Until min Mod i = 0 And max Mod i = 0

uc = i

End If

If i = 1 Then

bc = min * max

Else

bc = min * (max / uc)

End If

‘…………………’

‘dua ket qua ra man hinh’

MsgBox (“mang nguoc voi mang da cho: ” & n & vbCrLf & “cac so nguyen chi het cho 2: ” & m & vbCrLf & “max la: ” & Str(max)) & vbCrLf & “min la: ” & Str(min) & vbCrLf & “cac so nguyen to la: ” & so & vbCrLf & “max! la: ” & Str(t) & vbCrLf & “uoc chung lon nhat la: ” & Str(uc) & vbCrLf & “boi chung nho nhat la: ” & Str(bc)

End Sub

19. Viết chương trình giải phương trình bậc 2: ax2 + bx + c =0. Với yêu cầu giao diện như sau

  • Cho phép nhập trực tiếp các giá trị a, b, c
  • Cho phép thay đổi giá trị a, b, c (nguyên) bằng các thanh cuộn
  • In kết quả giải tương ứng với tất cả các trường hợp.

Private Sub Cmdgiai_Click()

Dim a As Long

Dim b As Long

Dim d

Dim c As Long

Dim X

Dim Y

Dim kl As String

a = Val(txta.Text)

b = Val(txtb.Text)

c = Val(txtc.Text)

‘kiem tra cac he so a,b,c

If a = 0 And b = 0 And c = 0 Then

kl = “p.tr coù voâ soá nghieäm”

ElseIf a = 0 And b = 0 And c <> 0 Then

kl = “p.tr voâ nghieäm”

ElseIf a = o And b <> 0 Then ‘neu a=0 thi ta co phuong trinh bac nhat

kl = “p.tr coù nghieäm duy nhaát”

X = -c / b

Y = ” “

d = ” “

End If

‘ neu a#0 thi ta co phuong trinh bac hai

If a <> 0 Then

d = Val(b * b – 4 * a * c) ‘tinh delta

txtd.Text = d

‘kiem tra dieu kien cua delta

If d > 0 Then

X = (-b – Sqr(d)) / (2 * a)

Y = (-b + Sqr(d)) / (2 * a)

kl = “p.tr coù hai nghieäm phaân bieât”

ElseIf d = 0 Then

X = (-b) / (2 * a)

Y = X

kl = “p.tr coù nghieäm keùp”

Else

X = ” “

Y = ” “

kl = “voâ nghieäm”

End If

End If

‘dua kq ra man hinh

txtx.Text = X

txty.Text = Y

txtkl.Text = kl

End Sub

Private Sub Cmdend_Click()

End ‘cau lenh cho nut ket thuc

End Sub

Private Sub Command1_Click()

‘cau lech cho nut nhap lai

txta.Text = 0

txtb.Text = 0

txtc.Text = 0

txtd.Text = “”

txtkl.Text = “”

txtx.Text = “”

txty.Text = “”

txta.SetFocus

End Sub

Private Sub txta_Change()

‘ kiem tra xem a co phai la so khong, neu khong phai thi thong bao loi

If Not IsNumeric(txta.Text) Then

MsgBox (“ban phai nhap vao mot so”)

txta.Text = 0

txta.SetFocus

End If

End Sub

Private Sub txtb_Change()

‘kiem tra b cho phai la so khong, neu khong phai thi thong bao loi

If Not IsNumeric(txtb.Text) Then

MsgBox (“ban phai nhap vao mot so, hay nhap lai”)

txtb.Text = 0

txtb.SetFocus

End If

End Sub

Private Sub txtc_Change()

‘kiem tra xem c co phai la so khong, neu khong phai thi thong bao loi

If Not IsNumeric(txtc.Text) Then

MsgBox (“ban phai nhap vao mot so”)

txtc.Text = 0

txtc.SetFocus

End If

End Sub

Private Sub vsla_Change()

txta.Text = vsla.Value ‘lay gia tri cho a tu thanh cuon

End Sub

Private Sub vslb_Change()

txtb.Text = vslb.Value ‘lay gia tri cho b tu thanh cuon

End Sub

Private Sub vslc_Change()

txtc.Text = vslc.Value ‘lay gia tri cho c tu thanh cuon

End Sub

20. Viết chương trình nhập vào 2 số nguyên a, b,

  1. Tính tổng các số trong khoảng từ a tới b.
  2. Tính tổng các số lẻ trong khoảng từ a tới b.
  3. Tính tổng các số chẵn trong khoảng từ a tới b.

Private Sub cmdtinh_Click()

Dim a As Integer

Dim b As Integer

Dim t As Integer

Dim ch As Integer

Dim le As Integer

Dim i As Integer

Dim k As Integer

Dim j As Integer

a = Val(txta.Text)

b = Val(txtb.Text)

k = a

j = b

‘kiem tra trong 2 so a va b so nao lon hon

If b < k Then

k = b

j = a

Else

k = a

j = b

End If

‘………………’

t = 0

ch = 0

le = 0

For i = k To j

t = t + i ‘tinh tong tu so nho den so lon

If i Mod 2 = 0 Then

ch = ch + i ‘neu so do chia het cho 2 thi gan tong so chan bang so chan cong them so i

Else

le = le + i ‘nguoc lai thi no la so le

End If

Next i

MsgBox (“tong cac so tu ” & Str(k) & ” den ” & Str(j) & ” la: ” & Str(t) & vbCrLf & “tong cac so chan tu ” & Str(k) & ” den ” & Str(j) & ” la: ” & Str(ch) & vbCrLf & “tong cac so le tu ” & Str(k) & ” den ” & Str(j) & ” la: ” & Str(le))

End Sub

21. Viết chương trình quản lý một công ty với yêu cầu:

  • Họ tên nhân viên được nhập vào textbox Ho ten.
  • Chức vụ nhân viên được chọn trong combox Chuc vu.
  • Mỗi khi chức vụ nhân viên được chọn mức lương tương ứng xuất hiện ở textbox Luong.
  • Khi nhấn nút Nhap, nhân viên mới được nhập vào ListBox Danh sach nhan vien.
  • Xoá một nhân viên được chọn trong danh sách bằng nút, Xoa. Chọn Multiselect= 0
  • Tong: tổng lương trong danh sách. Được cập nhật mỗi khi danh sách có thay đổi.

Private Sub cmbcv_Change()

End Sub

Private Sub cmdend_Click()

End

End Sub

Private Sub cmdnhap_Click()

Static t ‘su dung khai bao static cho bien t de bien t co the su dung gia tri cua no cho toikho nao ket thuc chuong trinh, keo dai thoi gian ton tai cua bien t nhieu hon so voi khai bao dim

txtluong.Text = (cmbcv.ItemData(cmbcv.ListIndex)) ‘thay doi tien luong khi lua chon chuc vu

listen.AddItem (txtten.Text) ‘them 1 ten moi vao lisbox

listen.ItemData(listen.NewIndex) = cmbcv.ItemData(cmbcv.ListIndex) ‘lay gia tri luong cho nguoi moi nhap vao

t = t + Val(listen.ItemData(listen.NewIndex)) ‘tinh tong luong bang tong luong da co cong voi luong cua nguoi moi them vao

txttong.Text = t

End Sub

Private Sub cmdxoa_Click()

‘xoa mot doi tuong trong lisbox nhan vien

txttong.Text = Val(txttong.Text) – Val(listen.ItemData(listen.ListIndex)) ‘tong luong se giam di khi bot mot nguoi ra khoi lisbox

listen.RemoveItem (listen.ListIndex) ‘xoa nhan vien ra khoi lisbox

‘chu y: 2 cau lenh tren khong the doi cho nhu: txttong.te…….. o duoi cau lenh listen……… , doi lai chung trinh se khong chay duoc

‘vi neu doi lai thi ten nhan vien do se bi mat khoi danh sach nhan vien nen khong on luu lai luong cua nhan vien do, nen khong the tinh tong lluong lai duoc….

End Sub

22. Viết chương trình phân tích một số nguyên dương nhập vào ra các thừa số nguyên tố của nó.

Private Sub cmdphantich_Click()

Dim i As Long, j As Long, n As Long, s As String, u As String

n = Val(txtnhap.Text)

u = txtnhap.Text

s = n & ” = “

j = 2

Do While n > 1

For i = j To n

If n Mod i = 0 Then

s = s & i

n = n / i

j = i

Exit For ‘den day neu n khong chia het cho i nua thi ket thuc vong lap bang lenh exit for

End If

Next i

If n > 1 Then s = s & ” x “

Loop

txtkq.Text = s

End Sub

Private Sub txtnhap_Change()

‘kiem tra nhap vao co phai la so duong hay khong

If IsNumeric(txtnhap.Text) = flase Then

MsgBox (“ban phai nhap vao so duong’ ban hay nhap lai”)

txtnhap.Text = 1

txtnhap.SetFocus

ElseIf Val(txtnhap.Text) <= 0 Then

MsgBox (“ban phai nhap va so duong”)

txtnhap.Text = 1

End If

End Sub

23. Viết chương trình đổi một số nguyên dương nhập vào ở hệ thập phân sang nhị phân

‘ cach chuyen la: lay so can chuyen chia cho 2 lay phan nguyen , sau do lay tiep phan nguyen do chia tiep cho 2 lai lay phan nguyen,

‘den khi nao so do bang 1 hoac bang 0 thi dung lai

‘ket qua nhi phan la tap hop tat ca cac so du khi chia 2 va duoc sap xep nguoc lai

‘ vi du: so 30

‘ 30 \ 2 = 15 du 0

’15 \ 2 = 7 du 1

‘7 \ 2 = 3 du 1

‘3 \ 2 = 1 du 1

‘1 \ 2 = 0, du 1. dung lai

‘ket qua so nhi phan cua 30 la : 11110

Private Sub cmdtinh_Click()

Dim a As Integer

Dim kq As String

Dim t As String

a = Val(txtnhap.Text)

t = “”

Do

t = t & Str(a Mod 2)

a = a \ 2

Loop Until a = 0

kq = “”

‘dao nguoc tap hop cac so du

For i = Len(t) To 1 Step -1

kq = kq & Mid(t, i, 1)

Next i

txtkq.Text = kq

End Sub

Private Sub txtnhap_Change()

End Sub

24 Viết chương trình đổi một số nguyên dương nhập vào ở hệ thập phân sang hệ bát phân.

Private Sub cmdtinh_Click()

Dim a As Integer

Dim t As String

Dim kq As String

Dim i As Integer

a = Val(txtnhap.Text)

t = “”

Do

t = t & Str(a Mod 8)

a = a \ 8

Loop Until a = 0

kq = “”

For i = Len(t) To 1 Step -1

kq = kq & Mid(t, i, 1)

Next i

txtkq.Text = kq

End Sub

Private Sub Form_Load()

End Sub

25. Viết chương trình đổi một số nguyên dương nhập vào ở hệ thập phân sang hệ thập lục phân.

Private Sub cmdtinh_Click()

Dim a As Integer

Dim t As String

Dim i As Integer

Dim kq As String

Dim k As String

Dim j As Integer

a = Val(txtnhap.Text)

t = “”

Do

i = a Mod 16

Select Case i

Case 0 To 9

k = i

Case 10

k = “a”

Case 11

k = “b”

Case 12

k = “c”

Case 13

k = “d”

Case 14

k = “e”

Case 15

k = “f”

End Select

t = t & k

a = a \ 16

Loop Until a = 0

kq = “”

For j = Len(t) To 1 Step -1

kq = kq & UCase(Mid(t, j, 1))

Next j

txtkq.Text = kq

End Sub

Private Sub Form_Load()

End Sub

26. Viết chương trình đổi một số nhị phân cho trước (nhập vào) sang hệ thập phân

Private Sub cmdtinh_Click()

Dim a As String

Dim t As Integer

Dim i As Integer

a = txtnhap.Text

t = 0

For i = 1 To Len(a)

t = t * 2 + Val(Mid(a, i, 1))

Next i

txtkq.Text = t

End Sub

Private Sub txtnhap_Change()

End Sub.

27. Viết chương trình đổi một số bát phân cho trước (nhập vào) sang hệ thập phân

Private Sub cmdtinh_Click()

Dim a As String

Dim i As Integer

Dim kq As Integer

a = txtnhap.Text

kq = 0

For i = 1 To Len(a)

kq = kq * 8 + Val(Mid(a, i, 1))

Next i

txtkq.Text = kq

End Sub

Private Sub txtkq_Change()

End Sub