1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Tin học đại cương: Chương 8 - ĐH Bách Khoa

27 83 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 27
Dung lượng 138,13 KB

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

Nội dung

Cùng nắm kiến thức trong chương này thông qua việc tìm hiểu các nội dung sau: Tổng quát về ngôn ngữ VB, các lệnh gán, các lệnh kiểm tra điều kiện và rẽ nhánh, các lệnh lặp, vấn đề lồng nhau giữa các lệnh, thoát đột ngột khỏi khỏi cấp điều khiển, lệnh gọi hàm/thủ tục.

Trang 2

8.1 Tng quát v các lnh thc thi VB

 Ta đã biết giải thuật để giải quyết 1 vấn đề nào đó là trình tự các công việc

nhỏ hơn, nếu ta thực hiện đúng trình tự các công việc nhỏ hơn này thì sẽ

giải quyết được vấn đề lớn

 VB (hay ngôn ngữ lập trình khác) cung cấp 1 tập các lệnh thực thi, mỗi

lệnh thực thi được dùng để miêu tả 1 công việc nhỏ trong 1 giải thuật với ý

tưởng chung như sau:

 Nếu tồn tại lệnh thực thi miêu tả được công việc nhỏ của giải thuật thì

ta dùng lệnh thực thi này

 Nếu công việc nhỏ vẫn còn quá phức tạp và không có lệnh thực thi nào miêu tả được thì ta dùng lệnh gọi thủ tục (Function, Sub, Property) trong đó thủ tục là trình tự các lệnh thực hiện công việc nhỏ này

 Hầu hết các lệnh thực thi có chứa biểu thức và dùng kết quả của biểu

thức này để quyết định công việc kế tiếp cần được thực hiện ⇒ ta thường

gọi các lệnh thực thi là các cấu trúc điều khiển

Trang 3

o Lệnh kiểm tra điều kiện luận lý If Then Else

o Lệnh kiểm tra điều kiện số học Select Case

Trang 4

8.2 Lnh gán d liu

Cú pháp:

lvar = expr

sau)

Trang 5

Lnh gán tham kho đế n đố i t ượ ng

Cú pháp:

Set lvar = expr

sau)

Set objClipbd = New Clipboard

Trang 6

8.3 Lnh kim tra đ iu kin lun lý IF

khác nhau:

Cú pháp 1a:

If condition Then Statement1 [Else Statement2 ]

 condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết

 Statement1, Statement2 là lệnh thực thi VB bất kỳ

Ví d ụ :

If blnThaybenh Then MsgBox("Th ầ y b ệ nh Sinh viên v ề ngh ỉ ")

Trang 7

 [Statement]+ là danh sách các lệnh thực thi VB bất kỳ

False thi thôi

Trang 8

 [Statement1]+, [Statement2]+ là danh sách các lệnh thực thi VB bất kỳ

Trang 9

Ví dụ:

If del >=0 Then

x1 = (-b-sqr(del))/(2*a) x2 = (-b+sqr(del))/(2*a) MsgBox("x1= " & x1 & " ,x2= " & x2) Else

Trang 10

 [Statement1]+, [Statement2]+ là danh sách các lệnh thực thi VB bất kỳ

Trang 11

Thí d ụ sau là l ệ nh Select ph ụ c v ụ vi ệ c th ự c hi ệ n 1 nút l ệ nh trong trình

dblDispValue = dblOldValue * dblDispValue

txtDisplay.Text = Str(dblDispValue)

dblDispValue = dblOldValue / dblDispValue

txtDisplay.Text = Str(dblDispValue)

End Select

Lnh kim tra đ iu kin s hc Select (tt)

Trang 12

VB còn cung c ấ p 1 l ệ nh khác để ki ể m tra đ i ề u ki ệ n s ố h ọ c, nh ư ng y ế u

h ơ n l ệ nh Select, đ ó là l ệ nh On GoSub (th ự c ra đ ây là l ệ nh c ủ a ngôn ng ữ

Basic nguyên th ủ y, Microsoft th ấ y ch ư a trong sáng nên m ớ i cung c ấ p

thêm l ệ nh Select) Cú pháp nh ư sau:

On condition GoSub label1, label2, label3,

 condition là 1 biểu thức số học và nên có giá trị từ 1 tới n, trong đó n là số

Lnh kim tra đ iu kin s hc On GoSub

Trang 13

Đoạn code sau có công dụng như slide thí dụ dùng lệnh Select case (nếu

IDC_ADD = 1, IDC_SUB = 2, IDC_MUL = 3, IDC_DIV = 4):

On bytOperationId GoSub LblAdd, LblSub, LblMul, LblDiv

Trang 14

1 biến thể khác của On GoSub là On Goto, ở đây điều khiển sẽ không trả lại

On bytOperationId GoTo LblAdd, LblSub, LblMul, LblDiv

Trang 15

 [Statement]+ là danh sách các lệnh thực thi VB bất kỳ

[Statement]+, rồi lặp lại qui trình trên đến lúc condition có giá trị False thì

Trang 16

Lnh lp While Wend

 VB còn cung c ấ p 1 l ệ nh khác có ch ứ c n ă ng gi ố ng nh ư l ệ nh Do While Loop, cú pháp c ủ a nó nh ư sau:

 [Statement]+ là danh sách các lệnh thực thi VB bất kỳ

[Statement]+, rồi lặp lại qui trình trên đến lúc condition có giá trị False thì

Trang 17

Lnh lp Do Loop (tt)

Cú pháp 2:

Do

[Statement]+

Loop While condition

 condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết

 [Statement]+ là danh sách các lệnh thực thi VB bất kỳ

Trang 18

Loop Until condition

 condition là 1 biểu thức luận lý miêu tả điều kiện cần kiểm tra, nó có kết

Trang 19

 counter là biến điều khiển số lần lặp, start là biểu thức qui định giá trị đầu

 [Statement]+ là danh sách các lệnh thực thi VB bất kỳ

Trang 20

 group là 1 collection các đối tượng hay 1 dãy các phần tử element là biến

Trang 21

8.5 Các lnh lng nhau

 Nh ư ta đ ã th ấ y trong cú pháp c ủ a h ầ u h ế t các l ệ nh VB đề u có ch ứ a thành ph ầ n Statement, đ ây là 1 l ệ nh th ự c thi VB b ấ t k ỳ ⇒ ta g ọ i cú pháp đị nh ngh ĩ a l ệ nh VB là đệ qui ⇒ t ạ o ra các l ệ nh VB l ồ ng nhau Ta

g ọ i c ấ p ngoài cùng là c ấ p 1, các l ệ nh hi ệ n di ệ n trong cú pháp c ủ a l ệ nh

c ấ p 1 đượ c g ọ i là l ệ nh c ấ p 2, các l ệ nh hi ệ n di ệ n trong cú pháp c ủ a

l ệ nh c ấ p 2 đượ c g ọ i là l ệ nh c ấ p 3, Để d ễ đọ c, các l ệ nh c ấ p th ứ i nên dóng hàng nh ờ n ký t ự Tab

Ví d ụ : đ o ạ n ch ươ ng trình tính ma tr ậ n t ổ ng c ủ a 2 ma tr ậ n

Dim A(N,N) As Double, B(N,N) As Double

Dim C(N,N) As Double

For i = 1 to n ' duy ệ t theo hàng

For j = 1 to n ' duy ệ t theo c ộ t

C(i,j) = A(i,j) + B(i,j)

Next j

Next i

Trang 22

8.6 Vn đề thoát độ t ngt khi cp đ iu khin

 Nh ư ta đ ã th ấ y trong cú pháp c ủ a h ầ u h ế t các l ệ nh VB đề u có ch ứ a thành ph ầ n [Statement]+ Theo trình t ự thi hành thông th ườ ng, các

l ệ nh bên trong này s ẽ đượ c th ự c thi tu ầ n t ự , h ế t l ệ nh này đế n l ệ nh khác cho đế n l ệ nh cu ố i, lúc này thì vi ệ c thi hành l ệ nh cha m ớ i có th ể

k ế t thúc Tuy nhiên trong 1 vài tr ạ ng thái thi hành đặ c bi ệ t, ta mu ố n thoát ra kh ỏ i l ệ nh cha độ t ng ộ t ch ứ không mu ố n th ự c thi h ế t các l ệ nh con trong danh sách Để ph ụ c v ụ yêu c ầ u này, VB cung c ấ p l ệ nh Exit

v ớ i cú pháp sau đ ây:

Exit [For | Do | Property | Sub | Function]

 L ư u ý VB cho phép dùng Exit để thoát kh ỏ i tr ự c ti ế p ra nhi ề u c ấ p VB không cung c ấ p l ệ nh Exit If và Exit While để thoát kh ỏ i l ệ nh If và l ệ nh While ⇒ dùng l ệ nh Do Loop thay th ế l ệ nh While và/ho ặ c l ệ nh Goto ( đượ c trình bày sau)

Trang 23

 Để th ấ y vi ệ c dùng các l ệ nh l ồ ng nhau và yêu c ầ u c ầ n thoát kh ỏ i độ t

ng ộ t 1 c ấ p đ i ề u khi ể n nào đ ó, ta hãy xem th ủ t ụ c sau, nó cho phép in

ra t ấ t c ả các font ch ữ mà có th ể dùng để hi ể n th ị lên màn hình l ẫ n in ra máy in

Private Sub Form_Click()

Dim objSFont As Object, objPFont As Object

' duy ệ t t ừ ng font màn hình

For Each objSFont In Screen.Fonts()

' duy ệ t t ừ ng font máy in

For Each objPFont In Printer.Fonts()

If objSFont = objPFont Then

Print objSfont End If

Next objPFont

Next objSFont

End Sub

Vn đề thoát độ t ngt khi cp đ iu khin (tt)

Trang 24

 Quan sát l ệ nh If ta th ấ y r ằ ng đ i ề u ki ệ n ch ỉ đ úng t ố i đ a 1 l ầ n trong vòng

l ặ p objPFont, do đ ó khi đ ã th ỏ a đ i ề u ki ệ n r ồ i thì ta nên thoát kh ỏ i vòng

l ặ p này ngay ( để th ờ i gian ch ạ y ít h ơ n ⇒ hi ệ u qu ả h ơ n)

Private Sub Form_Click()

Dim objSFont As Object, objPFont As Object

' duy ệ t t ừ ng font màn hình

For Each objSFont In Screen.Fonts()

' duy ệ t t ừ ng font máy in

For Each objPFont In Printer.Fonts()

If objSFont = objPFont Then

Print objSfont Exit For 'thoát độ t ng ộ t kh ỏ i vòng For trong cùng End If

Next objPFont

Next objSFont

Vn đề thoát độ t ngt khi cp đ iu khin (tt)

Trang 25

 C ũ ng thí d ụ ở slide tr ướ c, nh ư ng n ế u ta ch ỉ mu ố n in tên font ch ữ đầ u tiên đượ c dùng b ở i c ả màn hình và máy in, thì ta ph ả i dùng l ệ nh Exit Sub sau khi đ ã in tên font đầ u tiên này

Private Sub Form_Click()

Dim SFont As objObject, objPFont As Object

' duy ệ t t ừ ng font màn hình

For Each objSFont In Screen.Fonts()

' duy ệ t t ừ ng font máy in

For Each objPFont In Printer.Fonts()

If objSFont = objPFont Then

Print objSfont Exit Sub 'thoát độ t ng ộ t kh ỏ i th ủ t ụ c End If

Next objPFont

Next objSFont

End Sub

Vn đề thoát khi cp đ iu khin độ t ngt (tt)

Trang 26

 Th ủ t ụ c là ph ươ ng ti ệ n phân chia code c ủ a module (class, form, standard) ra nhi ề u đơ n v ị nh ỏ h ơ n để d ễ qu ả n lý và s ử d ụ ng Đ ây là

v ấ n đề khá l ớ n và s ẽ đượ c trình bày chi ti ế t trong ch ươ ng k ế

 Ở đ ây chúng ta gi ớ i thi ệ u 1 vài ý t ưở ng ban đầ u v ề th ủ t ụ c đủ để gi ớ i thi ệ u l ệ nh g ọ i (s ử d ụ ng) chúng Th ủ t ụ c là 1 danh sách các l ệ nh VB

th ự c hi ệ n 1 ch ứ c n ă ng rõ ràng (và th ườ ng đơ n gi ả n), các l ệ nh này

đượ c h ọ p thành 1 đơ n v ị và đượ c gán cho 1 tên nh ậ n d ạ ng, tên này nên g ợ i ý đượ c ch ứ c n ă ng c ủ a th ủ t ụ c (thí d ụ ta đặ t danh sách các

l ệ nh VB tính cos c ủ a góc x trong 1 đơ n v ị và đặ t tên cho nó là Cos)

 Để th ủ t ụ c có độ s ử d ụ ng cao, khi đị nh ngh ĩ a nó ng ườ i ta k ế t h ợ p 1 danh sách tham s ố hình th ứ c v ớ i nó M ỗ i tham s ố hình th ứ c miêu t ả 1

d ữ li ệ u mà th ủ t ụ c s ẽ x ử lý khi th ủ t ụ c đượ c thi hành Các tham s ố là

ph ươ ng ti ệ n trao đổ i d ữ li ệ u gi ữ a l ệ nh g ọ i và code c ủ a th ủ t ụ c Thí d ụ

ta k ế t h ợ p v ớ i th ủ t ụ c Cos 1 tham s ố là góc x, ta nói Cos (x) là th ủ t ụ c

8.7 Lnh gi th tc

Trang 27

 Sau khi đ ã đị nh ngh ĩ a th ủ t ụ c, ta có th ể dùng (g ọ i) nó Th ủ t ụ c ch ỉ

đượ c thi hành khi ng ườ i ta g ọ i nó b ằ ng l ệ nh g ọ i th ủ t ụ c Cú pháp c ủ a

l ệ nh g ọ i nh ư sau:

[Call] name [arglist]

Ví d ụ : gi ả s ử ta đ ã đị nh ngh ĩ a (vi ế t) 1 th ủ t ụ c sau đ ây:

Private Sub Update_Display(d As Byte)

nó cho phép hi ệ u ch ỉ nh giá tr ị Display sau khi ng ườ i dùng ấ n thêm ký

s ố d Nh ư v ậ y khi ng ườ i dùng ấ n thêm ký s ố 5, ta s ẽ th ự c hi ệ n g ọ i th ủ

t ụ c nh ư sau:

Call Update_Display (5) hay: Update_Display (5)

L ư u ý: Trong tr ườ ng h ợ p g ọ i th ủ t ụ c không có b ấ t k ỳ tham s ố nào ta nên dùng thêm t ừ khóa "Call' để ch ươ ng trình trong sáng, d ễ đọ c

Lnh gi th tc (tt)

Ngày đăng: 30/01/2020, 13:45

TỪ KHÓA LIÊN QUAN