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

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

59 18 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

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 144,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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:a.. Với yêu cầu giao diện như

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'

Trang 3

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

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 taduoc 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 4

'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'

Trang 5

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

Trang 7

Private Sub Command2_Click()

'tim phan so toi gian'

txtkq.Text = Str(a / i) & "/" & Str(b / i)End Sub

Private Sub Command3_Click()

Trang 8

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):

a Tính tổng mảng

b Tính giá trị lớn nhất

c Tính giá trị nhỏ nhất

d Đế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'

Private Function maxmang() As Double

'tim gia tri lon nhat cua mang'

Dim i As Integer

Dim max As Double

Trang 9

Private Function minmang() As Double

'tim gia tri nho nhat cua mang'

Private Function solan() As Double

'dem so lan xuat hien cu so nhap tu ban phim'

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

Trang 10

Private Sub Cmdtinh_Click()

'xuat ket qua ra msgbox'

Private Sub cmdgiam_Click()

Dim a(6) As Integer

Trang 12

'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

Trang 13

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"

Dim i As Integer

Trang 14

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

'nhap cac phan tu cua mang'

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

Trang 15

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"

Trang 16

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

Trang 17

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))

Dim hoa As Integer

Dim thuong As Integer

Trang 18

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 19

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

Trang 20

Loop Until Mid(a, i, 1) = " "

b = b & " " & Left(a, i - 1)

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

c Tìm và in ra các phần tử lớn nhất và nhỏ nhất của mảng

d Tìm các số nguyên tố trong khoảng từ min tới max

e Tính max!

f Tìm ucln và bcnn của min và max

Dim a(1 To 10) As Integer

Trang 21

Private Sub cmdnhap_Click()

Dim max As Integer

Dim min As Integer

Trang 22

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

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

Trang 23

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

Trang 24

'dua ket qua ra man hinh'

MsgBox ("mang nguoc voi mang da cho: " & n & vbCrLf & "cac so nguyen chi het cho2: " & 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

Trang 25

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"

Trang 26

d = Val(b * b - 4 * a * c) 'tinh delta txtd.Text = d

'kiem tra dieu kien cua delta

Private Sub Cmdend_Click()

End 'cau lenh cho nut ket thuc

End Sub

Private Sub Command1_Click()

'cau lech cho nut nhap lai

Trang 27

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")

Trang 28

'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

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 :

a 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

c Tính tổng các số chẵn trong khoảng từ a tới b

Private Sub cmdtinh_Click()

Trang 29

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))

Trang 30

End Sub

Private Sub Form_Load()

End Sub

Câu 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ó 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 31

Private Sub Label1_Click()

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")

Trang 32

Loop Until a = 0

kq = ""

'dao nguoc tap hop cac so du

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

Trang 33

Bài 1 : Viết chương trình tính tổng T = 1 + 2 + … + N, với N là số nguyên dương, nếu N=0 thì T=0 Giao diện tự thiết kế cho phù hợp.

Trang 34

Private Sub CmdTinh_Click()

Dim nghin As Integer

Dim tram As Integer

Dim chuc As Integer

Dim dv As Integer

Dim n As Integer

n = Val(TxtN.Text)

Trang 35

nghin = n / 1000

tram = (n - nghin * 1000) / 100

chuc = (n - nghin * 1000 - tram * 100) / 10

dv = (n - nghin * 1000 - tram * 100 - chuc * 10)

lblketqua.Caption = nghin & "nghin" & tram & "tram" & chuc & "chuc" & dv & "don vi"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.

Trang 36

Private Sub cmdTimmax_Click()Dim A As Double

Trang 39

Private Sub Command3_Click()

If MsgBox("muon thoat khong ?", vbYesNo, "thong bao") = vbYes Then

End

End If

End Sub

Bài 8 :Viết chương trình cho phép nhập vào một mảng n phần tử và xắ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 Command1_Click()

Dim test1() As Integer

For i = 0 To 5

Trang 41

Vd: Line (-5,5)-(5,-5) , qbcolor(3)

Vẽ trực tiếp từ điểm vẽ trước

Line-(x,y), mã màu

Vẽ hình hộp

Line (x1,y1)-(x2,y2), mã màu, B

Vẽ hình hộp tô đặc bên trong

Line (x1,y1)-(x2,y2),mã màu, BF

Trang 42

End sub

Private Sub VSCroll1_Change( )

Text1=Vscro111.Value

Picture1.Backcolor=RGB(Text 1,Text2,Text3)End Sub

Private Sub VSCroll2_Change( )

Text2=Vscro112.Value

Picture1.Backcolor=RGB(Text 1,Text2,Text3)End Sub

Private Sub VSCroll3_Change( )

Text3=Vscro113.Value

Picture1.Backcolor=RGB(Text 1,Text2,Text3)End Sub

Vẽ đường thẳng với 3 đường

Private Sub Command_Click ( )

Dim soA As Single

Dim soB As Single

Dim soC As Single

Picture1.Scale (-110,110)-(110,-100)

Picture1.Line (-105,0)-(105,0), QBColor(4)Picture1.Line(-0,105)-(0.-105) ,QBColor(4)Picture1.Line(105,0)-(100,5) ,QBColor(4)Picture1.Line(105,0)-(100,-5) ,QBColor(4)Picture1.Line(0,105)-(5,100) ,QBColor(4)Picture1.Line(0,105)-(-5,100) ,QBColor(4)

Trang 43

For x=-10 to 10

Picture1.Line(-100,x*10)-(100,x*10), QBColor(4)Picture1.Line(x*10,-100)-(x*10,100), QBColor(4)Next

Trang 44

Picture1.Pset ( x,y),QBColor (1)Next

For j= -3,14 to 3,14 Step 0,01R=Sin (n+j)

X= r * cos (j)

Y=r*sin (j)

Picture1.Pset(x,y),QBColor(3)Next

Ptivate Sub timer1_Timer ( )Text 5 = Now

Static bankinh As Single

If bankinh >10 Then bankinh =0Bankinh=bankinh+1

Picture1.Scale(-20,20)-(20,-20)Picture1.Cls

Timer1.Enabled=True

For j= -6,28 to 6,28 Step 0,001R=1+cos (j)

X= r * cos (j)

Trang 45

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 1 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 bài thiếu:

1.2.3 khai báo biến

Trang 46

+ không cần khai báo,chỉ cần viết tên biến và sử dụng như 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 chính ,đầu chương trình con

-khai báo trước khi sử dụng lần đầu tiê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 trên 1 dòng.Khi khai báo nhiều biến trên 1 dòng có thể xảy ra lỗi định dạng.Mỗi biến chỉ được khai báo 1 kiểu biến nhất định

-khai báo kiểu varrian không cần định dạng sau tên biến

Dim tong As Single

*giá trị của biến

-các biến số: giá trị đầu là 0

-Biến String:giá trị đầu là null

Trang 47

-Biến Variant:giá trị đầu là empty

-Nếu giá trị đầu của 1 biến không phải là giá trị mặc đinh trên thì phải gián giá ban đầu chobiến ở đầu chương trình

1.2.4 Phạm vi của biến

*Biến toàn cục

-có ý nghĩa tại mọi điểm của chương trình

-bị biến cục bộ che khuất trong phạm vi hoạt động của biến cục bộ

*Biến cục bộ

-Có ý nghĩa trong phạm vi xác định của mình (hàm,thủ tục)

-Các hàm,thủ tục khác nhau có thể có tên biến giống nhau

=> để chia sẻ các giá trị của biến qua các thủ tục khác nhau cần dùng biến mức biểu mẫuVD: Số A=10

Trang 48

Text 1 = Tong

**Giá trị bền vững của biến ( biến tĩnh ,Static)

*khai báo = từ khóa static

*Static Tong as single

*khi chương trình con chạy lần đầu tiên ,biến tĩnh được khởi tạo.Khi chương trình con kết thúc,biến tĩnh có được lưu giữ,ở lần chạy tiếp theo của chương trình con giá trị lưu giữ sẽ được đem vào sử dụng

*các phép toán trên chuỗi

-Có thể dùng dấu cộng "+" hoặc dấu & cho việc cộng chuỗi

-Dấu & cộng chuỗi đơn thuần

-Dấu "+" có thể bao gồm có chuyển đổi số học

*Các mã ASCII/ANSI

-CMR(n):trả về mã ASCII tương ứng với vị trí n trong bảng mã

-ASC(ký tự): cho vị trí ký tự trong bảng mã

VD:tiêu đề = " chao cac ban"

Lop="ĐCN"

Hienthi=Tieu de + lop

*Một số hằng xây dựng sẵn

Ký tự rỗng Vbnullchar CHR(0)

Trang 49

*Phương pháp biểu diễn số học

VD: kết quả= 10 Mod 3 =3,1…… lấy 1

-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 khi gián đoạn giá trị

-Nếu số không có dấu chấm thập phân và trong 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 và trong 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 và trong khoảng số thực ngắn=>gán kiểu Single

-Nếu có dấu chấm thâp phân và trong khoảng số thực dài => gán kiểu double

Chuyển dổi giữa các kiểu dữ liệu

Trang 50

Vd : viết chương trình sử dụng cấu trúc select Case

*câu lệnh go to: được dùng cho bẫy lỗi

On Error Goto ErrorHandler

Khi có lỗi,chương trình sẽ nhảy đến nhãn

Error handler và thi hành lệnh ở đó

*Exit for cho phép thoát khỏi vòng for

*Exit do cho phép thoát khỏi Do Loop

Ví dụ đặc biệt:

Ví dụ 1: Vẽ hàm y = Asin(x), với A là một số dương, x từ 02π

Đổi tọa độ trục hoành:

x: 0 => 2πs: 0 => width (width = PictureBox.ScaleWidth)

=> x/2π = s/width => x = s*2π/width

Đổi tọa độ trục tung:

y: -A  A

Trang 51

t: height  0 (height = PictureBox.ScaleHeight)

 Ta thấy y tăng (-A  A), t giảm (height  0), vì vậy ta nhân t với -1 để

 y-A/-2A = -t/-height  t =

(A-y)*height/2A Nếu ta chọn A = height/2 thì t = A-y

Ví dụ 2: Vẽ hàm y = -x3 + 3x2 - 2, với x từ -a  a hoặc y từ -a  a (tức là gốc tọa

độ Oxy nằm chính giữa PictureBox)

Đổi tọa độ trục hoành:

x: -a  as: 0  width (width = PictureBox.ScaleWidth)

 Bây giờ ta đưa một đầu mút của x và s về cùng một giá trị (trong bài này ta chọn đưa về 0), bằng cách cộng x với a:

a+x: 0  2as: 0  width

 (a+x)/2a = s/width  x = s*2a/width - a

Đổi tọa độ trục tung:

y: -a  a

t: height  0 (height = PictureBox.ScaleHeight)

 Ta thấy y tăng (-a  a), t giảm (height  0), vì vậy ta nhân t với -1 để

t cũng tăng: y: -a  a-t: -height  0

 Bây giờ ta đưa một đầu mút của y và –t về cùng một giá trị (trong bài này ta chọn đưa về 0), bằng cách cộng y với -a:

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

TỪ KHÓA LIÊN QUAN

w