EndEnd Sub Bài 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 Command4_ClickBài 8 : Viết chương cho phép nhập vào một m
Trang 1Bài 1 : Viết chương trình tính tổng T = 1 + 2 + … + N, với N là số nguyên ≥ 0, nếu N=0 thì T=0 Giao diện tự thiết kế cho phù hợp.
Private Sub cmdtinh_Click()
Trang 2'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'
Bài 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ị Giao diện tự thiết kế cho phù hợp
Trang 3Private Sub cmdtinh_Click()
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")
Trang 4End
End Sub
Bài 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 Giao diện tự thiết kế cho phù hợp
Private Sub Command3_Click()
Trang 5'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
Bài 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 :
Trang 7Private 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
Trang 8Private Sub Command4_Click()
Bài 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
( Giao diện tự thiết kế cho phù hợp, có thể tham khảo giao diện bên dưới):
1. Tính tổng mảng
2. Tính giá trị lớn nhất
3. Tính giá trị nhỏ nhất
Đế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'
Private Function tongmang() As Double
'tinh tong mang'
Dim i As Integer
Dim Tong As Double
Tong = A(0)
Trang 9Private Function solan() As Double
'dem so lan xuat hien cu so nhap tu ban phim'
Trang 10Private 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'
Trang 11End If
Next
MsgBox s
End Sub
Bài 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 Giao diện tự thiết kế cho phù hợp
Private Sub cmdgiam_Click()
Dim a(6) As Integer
Trang 12txtkq(i).Text = a(i) Next i
Trang 13End Sub
Bài 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? Giao diện tự thiết kế cho phù hợp
'khai bao bien chung cho toan bo chung trinh'
Dim a(1 To 100) As Integer
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
Trang 14lblkq.Caption = "mang da nhap la khong doi xung"
End If
Next i
End Sub
Bài 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 Giao diện tự thiết kế cho phù hợp
Dim a(1 To 100) As Integer
n = InputBox("nhap so phan tu cua mang: ", "nhap N")
'nhap cac phan tu cua mang'
Trang 15i = 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"
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
Bài 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” Giao diện tự thiết kế cho phù hợp
Private Sub cmddem_Click()
Trang 17Dim dem As Integer
b = Mid(a, i, 1) 'lay lan luot tung ki tu trong chuoi'
If b = "0" Then 'so 0 la ki tu so'
'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
Bài 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 Giao diện tự thiết kế cho phù hợp
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
Trang 18Bài 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ó Giao diện tự thiết kế cho phù hợp
Private Sub cmdtim_Click()
'kiem tra cau da nhap co tu em hay khong'
If Left(a, 3) = "em " Then
Trang 19If 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
Bài 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 Giao
diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()
Bài 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 Giao diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()
Dim a As String
Trang 20Loop Until Mid(a, i, 1) = " "
b = b & " " & Left(a, i - 1)
txtkq.Text = b
End Sub
Bài 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 (Giao diện tự thiết kế cho phù hợp) :
a. In mảng theo thứ tự ngược lại với thứ tự đã nhập
b. In ra màn hình các giá trị nguyên dương chia hết cho 2
Trang 21Dim a(1 To 10) As Integer
Private Sub cmdnhap_Click()
Dim max As Integer
Dim min As Integer
Dim b(10) As Integer
Dim j As Integer
Trang 22If a(i) > 0 And a(i) Mod 2 = 0 Then
m = m & " " & Str(a(i))
Trang 25'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
Bài 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()
'kiem tra cac he so a,b,c
If a = 0 And b = 0 And c = 0 Then
kl = "p.tr có vô số nghiệm"
ElseIf a = 0 And b = 0 And c <> 0 Then
kl = "p.tr vô nghiệm"
ElseIf a = o And b <> 0 Then 'neu a=0 thi ta co phuong trinh bac nhat
kl = "p.tr có nghiệm duy nhất"
X = -c / b
Trang 27Private Sub Cmdend_Click()
End 'cau lenh cho nut ket thuc
End Sub
Private Sub Command1_Click()
'cau lech cho nut nhap lai
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
Trang 28Private 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
Bài 21 : Viết chương trình nhập vào 2 số nguyên a, b, Giao diện tự thiết kế cho phù hợp :
Trang 29a. Tính tổng các số trong khoảng từ a tới b.
b. Tính tổng các số lẻ trong khoảng từ a tới b.Tính tổng các số chẵn trong khoảng từ a tới bPrivate Sub cmdtinh_Click()
Trang 30Bài 22 : 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 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
Trang 31txtluong.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
Bài 23 : 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ó Giao diện tự thiết kế cho phù hợp
Private Sub cmdphantich_Click()
Dim i As Long, j As Long, n As Long, s As String, u As String
Trang 32Private 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
Bài 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 nhị phân
Giao diện tự thiết kế cho phù hợp
Trang 33' 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
'ket qua so nhi phan cua 30 la : 11110
Private Sub cmdtinh_Click()
'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
Trang 34Bài 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ệ bát phân
Giao diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()
Bài 26 : 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 Giao diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()
Trang 36txtkq.Text = kq
End Sub
Bài 27 : 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 Giao
diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()
Bài 28 : 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 Giao
diện tự thiết kế cho phù hợp
Private Sub cmdtinh_Click()