1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

ví dụ tiêu biểu vi dieu khien

59 15 0

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • Private Sub cmdVe_Click()

  • Private Sub Ve()

  • Private Sub Form_Load()

  • Private Sub chkBlue_Click()

  • Private Sub chkGreen_Click()

  • Private Sub chkRed_Click()

  • Private Sub optCross_Click()

  • Private Sub optSolid_Click()

  • Private Sub optVerticalLine_Click()

  • Private Sub Form_Paint()

  • 'CÁCH 1: cho s chạy (từ 0 -> width)

  • 'CÁCH 2: cho x chạy (từ -a -> a)

Nội dung

Một số ví dụ tiêu biểu : Viết chương trình tính tổng T = + + … + N, với N số nguyên ³ 0, N=0 T=0 Giao diện tự thiết kế cho phù hợp 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 = 'kiem tra so n nhap vao' If n = Then 'neu n = thi xuat ket qua tong la: 0' kq = Else 'neu n # 0, dung vong lap cong cac gia tri chay tu den n' For i = To n kq = kq + i Next i End If 'xuat ket qua o textbox' txtkq.Text = kq End Sub Private Sub Label1_Click() End Sub : Viết chương trình tính tổng T = - + 3- + … (-1)N+1N, với N số nguyên ³ 0, N=0 T=0 Giao diện tự thiết kế cho phù hợp 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 = 'kiem tra N' If n = Then 'neu N = thi gan kq=0 va ket thuc chung trinh'' kq = Else 'nguoc lai n #0 thi lam buoc tinh tiep' 'co the dung vong lap for voi buoc nhay la (step 2) de tinh' 'vong for de tinh tong cac so le tu den n' For i = To n Step kq = kq + i Next i 'vong for tinh hieu cac so chan tu den n' For i = To n Step kq = kq - i Next i End If 'xuat kq o textbox' txtkq.Text = kq End Sub Private Sub Label1_Click() End Sub : Viết chương trình nhập số nguyên dương có chữ số, viết hình dạng: trăm, chục, đơn vị Ví dụ, nhập vào số : 246, kết cho : Trăm chục Đơn vị Giao diện tự thiết kế cho phù hợp 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 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 duoc hang chuc' 'n-tr*100 ta duoc chu so cuoi, lay so chi nguyen cho 10 ta dv = n - tr * 100 - ch * 10 Else 'dua thong bao so n khong phai la so co chu so bang msgbox' MsgBox ("so " & Str(n) & " khong phai la so co chu so" & vbCrLf & "ban hay nhap lai") End If txttram.Text = tr txtchuc.Text = ch txtdv.Text = dv End Sub Private Sub Form_Load() End Sub : Viết chương trình cho phép nhập vào số kiểm tra số có phải số nguyên tố hay không Giao diện tự thiết kế cho phù hợp Private Sub Command3_Click() Dim a, i 'kiem tra so a, so khong la so ng.to, la so ng.to, so nguyen to la so chi chia het cho va chinh no' a = txta.Text If a = Then lblkq.Caption = "so khong phai la so nguyen to" End If If a = Then lblkq.Caption = "so la so nguyen to" End If If a > Then i=a Do i=i-1 Loop Until a Mod i = If i > 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 Private Sub Label1_Click() End Sub : Viết chương trình nhập số tìm số lớn ba số số Giao diện tự thiết kế cho phù hợp 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 Private Sub Frame1_DragDrop(Source As Control, X As Single, Y As Single) End Sub : 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ấp số nhân, giao diện tự thiết kế cho phù hợp Cho phép người dùng tìm : a Số hạng b Tổng n số hạng 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 = For i = 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 Private Sub Label1_Click() End Sub : Viết chương trình cho phép nhập vào số a b, giao diện tự thiết kế cho phù hợp Tìm a USCLN b Tìm in phân số tối giản a/b (ví dụ a= 6, b = 12 in : 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 so co the chia het => uoc chung phai nho hon hoac bang so nho nhat 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 = And b Mod i = 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 Private Sub Label1_Click() End Sub : Viết chương cho phép nhập vào mảng A gồm phần tử, thực yêu cầu sau ( Giao diện tự thiết kế cho phù hợp, tham khảo giao diện bên dưới): a Tính tổng mảng b Tính giá trị lớn c Tính giá trị nhỏ d Đếm số lần xuất 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 = To 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 = To 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 = To 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 As Double = A(0) For i = To If > A(i) Then = A(i) Next minmang = End Function Private Function solan() As Double 'dem so lan xuat hien cu so nhap tu ban phim' Dim i As Integer For i = To If x = A(i) Then solan = solan + 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 msgbox' Dim s As String Nhapmang For i = To If Chkpt(i).Value = Then Select Case i Case s = "tong = " & tongmang & vbCrLf Case s = s & "max = " & maxmang & vbCrLf Case s = s & "min = " & minmang & vbCrLf Case s = s & "solan = " & solan End Select End If Next MsgBox s End Sub Private Sub Form_Load() End Sub : Viết chương trình cho phép nhập vào mảng A có phần tử 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 Y=r*sin (j) Picture1.Pset(x,y),QBColor(1) Next For j= -3,14 to 3,14 Step 0,001 R=bankinh* sin(n*j) X= r * cos (j) Y=r*sin (j) Picture1.Pset (x,y),QBColor (3) Next End Sub Ví Dụ khác : Private Sub Command1_Click ( ) Text2.Text= Str(Inp (Val("&H"+ Text1.Text)) End Sub Private Sub Command2_Click ( ) Out Val("&H" + Text1.Text), Val(Text2.Text) End Sub Lại ví dụ khác: Public Declare Function Inp Lib " Inpout.dll" Alias"Inp32" ( ByVal Portaddress As Integer As integer) As Integer Public Declare Sub Out Lib " Inpout.dll" Alias"Out32" ( ByVal Portaddress As Integer As integer,ByVal Value As Integer) Các thiếu: 1.2.3 khai báo biến + không cần khai báo,chỉ cần viết tên biến sử dụng bình thường,vb tự hiểu (mặc định) +Bắt buộc phải khai báo (option exp licit) -khai báo đầu chương trình ,đầu chương trình -khai báo trước sử dụng lần *cách khai báo -Dùng tiếp vị ngữ -dùng từ khóa : Dim tên biến As kiểu biến Vd : Dim tieude As integer *chú ý:có thể viết kết hợp khai báo nhiều biến dòng.Khi khai báo nhiều biến dịng xảy lỗi định dạng.Mỗi biến khai báo kiểu biến định -khai báo kiểu varrian không cần định dạng sau tên biến Dim tong As Single *có thể sử dụng tiếp đầu ngữ Str String Bln Boolean Int Integer Lgn Long Sng Single Dbl Double Cur Currency Vnt Variant *giá trị biến -các biến số: giá trị đầu -Biến String:giá trị đầu null -Biến Variant:giá trị đầu empty -Nếu giá trị đầu biến giá trị mặc đinh phải gián giá ban đầu cho biến đầu chương trình 1.2.4 Phạm vi biến *Biến tồn cục -có ý nghĩa điểm chương trình -bị biến cục che khuất phạm vi hoạt động biến cục *Biến cục -Có ý nghĩa phạm vi xác định (hàm,thủ tục) -Các hàm,thủ tục khác có tên biến giống => để chia sẻ giá trị biến qua thủ tục khác cần dùng biến mức biểu mẫu VD: Số A=10 Số B= 25 Dim Tong Tong = So A + So B {Dim So A, Dim Tong {So A= 20 {Tong = So A +Tong Text = Tong +So B So B = Tong - 10 {Dim So B {Tong= So B + So A+Tong {Text = Tong Tong = So A + So B {Dim Tong {Tong = So A - Tong Text = Tong **Giá trị bền vững biến ( biến tĩnh ,Static) *khai báo = từ khóa static *Static Tong as single *khi chương trình chạy lần ,biến tĩnh khởi tạo.Khi chương trình kết thúc,biến tĩnh có lưu giữ,ở lần chạy chương trình giá trị lưu giữ đem vào sử dụng VD:So A = 10 So B= 20 Dim Tong -Tong = So A + So B { Dim So A ,Static Tong {So A =20 {Tong = Tong + So A *các phép tốn chuỗi -Có thể dùng dấu cộng "+" dấu & cho việc cộng chuỗi -Dấu & cộng chuỗi đơn -Dấu "+" bao gồm có chuyển đổi số học *Các mã ASCII/ANSI -CMR(n):trả mã ASCII tương ứng với vị trí n bảng mã -ASC(ký tự): cho vị trí ký tự bảng mã VD:tiêu đề = " chao cac ban" Lop="ĐCN" Hienthi=Tieu de + lop *Một số xây dựng sẵn Ký tự rỗng Vbnullchar CHR(0) Về đầu dòng Vbcr CHR(13) Dòng tiếp Vblk CHR(10) Khoảng cách Vblack CHR(8) Tab Vbtab CHR(9) -Nên Sử dụng VbnullChar thay cho ٬٬" (dấu bên chéo nhau) Số nguyên 65535 *Phương pháp biểu diễn số học VD: kết quả= 10 Mod =3,1…… lấy -Mức ưu tiên -hàm mũ,hàm âm,nhân chia,chia rõ nguyên,mod,cộng trừ *các giả định số học gián đoạn giá trị -Nếu số khơng có dấu chấm thập phân khoảng số nguyên =>gián biến kiểu integer -Nếu số khơng có dấu chấm thập phân khoảng số nguyên dài => gián biến kiểu long -nếu có dấu chấm thập phân khoảng số thực ngắn=>gán kiểu Single -Nếu có dấu chấm thâp phân khoảng số thực dài => gán kiểu double Chuyển dổi kiểu liệu Sgk 28-29 *hàng số -khai báo Const tenhang= gia tri Vd : Const Truong = ٬٬DHHH" Const PI =3,14 -có thể sử dụng biểu thức số học (không chứa biến) Để gán giá trị -có thể định nghĩa theo giá trị định nghĩa trước ,khơng sử dụng hàm có sẵn vb để tính tốn Vd : viết chương trình sử dụng cấu trúc select Case Select case Case is Nhan xet="còn kém" Case is > =5 And Is < =6 Nhan xet="trung binh" Case is > And is 2π s: => width (width = PictureBox.ScaleWidth) => x/2π = s/width => x = s*2π/width Đổi tọa độ trục tung: y: -A A t: height  (height = PictureBox.ScaleHeight)  Ta thấy y tăng (-A  A), t giảm (height  0), ta nhân t với -1 để t tăng: y: -A  A -t: -height   Bây ta đưa đầu mút y –t giá trị (trong ta chọn đưa 0), cách cộng y với -A: y-A: -2A -t:   -height  y-A/-2A = -t/-height  t = (Ay)*height/2A Nếu ta chọn A = height/2 t = A-y Ví dụ 2: Vẽ hàm y = -x3 + 3x2 - 2, với x từ -a  a y từ -a  a (tức gốc tọa độ Oxy nằm PictureBox) Đổi tọa độ trục hoành: x: -a  a s:  width (width = PictureBox.ScaleWidth)  Bây ta đưa đầu mút x s giá trị (trong ta chọn đưa 0), cách cộng x với a: a+x:  2a s:  width  (a+x)/2a = s/width  x = s*2a/width - a Đổi tọa độ trục tung: y: -a a t: height  (height = PictureBox.ScaleHeight)  Ta thấy y tăng (-a  a), t giảm (height  0), ta nhân t với -1 để t tăng: y: -a a -t: -height   Bây ta đưa đầu mút y –t giá trị (trong ta chọn đưa 0), cách cộng y với -a: y-a: -2a -t:  0 -height  y-a/-2a = -t/-height  t = (a-y)*height/2a Vẽ Elip: Private Sub cmdVe_Click() Dim a As Integer, b As Integer Dim xc As Integer, yc As Integer Dim BanKinh As Integer a = Val(txtA.Text) b = Val(txtB.Text) If a > b Then BanKinh = a Else BanKinh = b End If xc = pic1.ScaleWidth / yc = pic1.ScaleHeight / pic1.Cls pic1.Circle (xc, yc), BanKinh, RGB(0, 0, 255), , , b / a End Sub Vẽ Elip Tô màu: Nhấp đúp vào form nhập code: Private Dim Dim Dim Sub Ve() R As Integer, G As Integer, B As Integer kieuto As Integer w As Integer, h As Integer If chkRed.Value = vbChecked Then R = 255 Else R = End If If chkGreen.Value = vbChecked Then G = 255 Else G = End If If chkBlue.Value = vbChecked Then B = 255 Else B = End If If optSolid.Value = True Then kieuto = vbFSSolid ElseIf optVerticalLine.Value = True Then kieuto = vbVerticalLine Else kieuto = vbCross End If pic1.Cls pic1.AutoRedraw = True pic1.ForeColor = RGB(0, 0, 255) pic1.DrawWidth = pic1.FillColor = RGB(R, G, B) pic1.FillStyle = kieuto w = pic1.ScaleWidth h = pic1.ScaleHeight pic1.Circle (w / 2, h / 2), w / 2, , , , h / w End Sub Private Sub Form_Load() Call Ve End Sub Lần lượt nhấp đúp vào CheckBox nhập code: Private Sub chkBlue_Click() Call Ve End Sub Private Sub chkGreen_Click() Call Ve End Sub Private Sub chkRed_Click() Call Ve End Sub Lần lượt nhấp đúp vào OptionButton nhập code: Private Sub optCross_Click() Call Ve End Sub Private Sub optSolid_Click() Call Ve End Sub Private Sub optVerticalLine_Click() Call Ve End Sub Vẽ Đồ thị hàm sin: Nhấp đúp vào form nhập code: Private Sub Form_Paint() Dim x As Double, y As Double Dim s As Integer, t As Integer Dim A As Integer Dim width As Integer, height As Integer Dim PI As Double Dim SoChuKy As Integer width = pic1.ScaleWidth height = pic1.ScaleHeight A = height \ PI = * Atn(1) pic1.AutoRedraw = True 'Ve truc Ox pic1.Line (0, height / 2)-(width, height / 2) pic1.DrawWidth = 'Ve chu ky' SoChuKy = For s = To width Step x = SoChuKy * * PI * s / width y = A * Sin(x) t = A - y pic1.PSet (s, t), RGB(255, 0, 0) Next End Sub 6.6 Vẽ đồ thị hàm bậc Nhấp đúp vào form nhập code: Private Sub Form_Paint() 'CHÚ Ý: Sự kiện Form_Paint Dim x As Double, y As Double Dim a As Double Dim s As Long, t As Long Dim width As Integer, height As Integer width = Me.ScaleWidth = Me.ScaleHeight 'Me: form chạy height 'Vẽ trục tọa độ: Ox, Oy Me.ForeColor = RGB(0, 0, 0) Me.DrawWidth = 'Ox Me.Line (0, height / 2)-(width, height / 2) 'Oy Me.Line (width / 2, 0)-(width / 2, height) 'Vẽ đồ thị hàm số: y = -x3 + 3x2 - 2, 'với x từ -a => a y từ -a => a Me.ForeColor = RGB(0, 0, 255) Me.DrawWidth = a=7 ' ' ' ' ' 'Dùng cách sau để vẽ: 'CÁCH 1: cho s chạy (từ -> width) For s = To width Step x = * a * s / width - a y = -x * x * x + * x * x - ' t = (a - y) * height / (2 * a) Me.PSet (s, t) ' Next 'CÁCH 2: cho x chạy (từ -a -> a) For x = -a To a Step 0.001 y = -x * x * x + * x * x - s = (a + x) * width / (2 * a) t = (a - y) * height / (2 * a) Me.PSet (s, t) Next End Sub Lập trình đèn điều khiển giao thông: Private Sub cmdStart_Click() tmrGreen.Enabled = True shGreen.Visible = False lblTime.Caption = "25" cmdStart.Enabled = False cmdStop.Enabled = True End Sub Private Sub cmdStop_Click() tmrRed.Enabled = False tmrYellow.Enabled = False tmrGreen.Enabled = False shRed.Visible = True shYellow.Visible = True shGreen.Visible = True lblTime.Caption = "60" cmdStart.Enabled = True cmdStop.Enabled = False End Sub Private Sub tmrGreen_Timer() lblTime.Caption = CInt(lblTime.Caption) - If CInt(lblTime.Caption) < Then tmrGreen.Enabled = False tmrYellow.Enabled = True shGreen.Visible = True shYellow.Visible = False lblTime.Caption = "5" End If End Sub Private Sub tmrRed_Timer() lblTime.Caption = CInt(lblTime.Caption) - If CInt(lblTime.Caption) < Then tmrRed.Enabled = False tmrGreen.Enabled = True shRed.Visible = True shGreen.Visible = False lblTime.Caption = "25" End If End Sub Private Sub tmrYellow_Timer() lblTime.Caption = CInt(lblTime.Caption) - If CInt(lblTime.Caption) < Then tmrYellow.Enabled = False tmrRed.Enabled = True shYellow.Visible = True shRed.Visible = False lblTime.Caption = "30" End If End Sub Một số câu khác : Đề bài: Nhập vào số nguyên tìm max, UCLN số Code: Private Sub timUCLN(soA As Integer, soB As Integer) a = Abs(soA) b = Abs(soB) If (a = And b = 0) Then Label8.Caption = "khong co UCLN" ElseIf (a = Or b = 0) Then Label8.Caption = a + b Else Do While (a b) If (a > b) Then a = a - b Else b = b - a End If Loop Label8.Caption = a End If End Sub ... -có thể sử dụng biểu thức số học (khơng chứa biến) Để gán giá trị -có thể định nghĩa theo giá trị định nghĩa trước ,khơng sử dụng hàm có sẵn vb để tính tốn Vd : vi? ??t chương trình sử dụng cấu trúc... qua man hinh lblketqua.Caption = Tong End Sub Bài 3 :Vi? ??t chương trình nhập số ngun dương có chữ số, vi? ??t hình dạng: nghìn, trăm, chục, đơn vị Ví dụ, nhập vào số : 9456, kết cho : nghìn Trăm chục... Sub Ví Dụ khác : Private Sub Command1_Click ( ) Text2.Text= Str(Inp (Val("&H"+ Text1.Text)) End Sub Private Sub Command2_Click ( ) Out Val("&H" + Text1.Text), Val(Text2.Text) End Sub Lại ví dụ

Ngày đăng: 31/03/2021, 13:27

TỪ KHÓA LIÊN QUAN

w