Phát biểu định nghĩa kiểu Array (tt)

Một phần của tài liệu BÀI GIẢNG MÔN TIN HỌC-MÔN TIN HỌC (Trang 85)

I E= T*R

Phát biểu định nghĩa kiểu Array (tt)

‰ Nếu trong 1 module nào đó cần danh sách gồm nhiều dữliệu có cấu trúc đồng nhất, ta sẽdùng phát biểu định nghĩa kiểu array đểmiêu tảdanh sách này. Cú pháp cơ bản như sau :

Dim varname[([subscripts])] [As [New] type]

trong đó subscripts là danh sách từ 1 đến n chiều cách nhau bằng dấu ',', mỗi chiều miêu tảphạm vi chỉsốcác phần tửthuộc chiều đóởdạng :

[lowerTo] upper.

ƒ Nếu chỉsốcận dưới của 1 chiều nào đó không được miêu tảthì VB chọn giá trị

ngầm định (là 0 hay 1).

ƒ Phát biểu định nghĩa giá trịcận dưới ngầm định có cú pháp :

Option Base {0|1}

Lưu ý dấu {..} miêu tả có 1 và chỉ1 lần. Nếu không có phát biểu này thì VB chọn cận dưới là 0.

Ví dụ:

Dim vector(50) As Double 'vector có 51 phần từtừ0 - 51 Dim MyArray (1 to 100, 1 to 50) As Double

Chương 6 : Các lệnh định nghĩa & khai báo VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 170

Phát biu định nghĩa kiu Array (tt)

Nếu số lượng phần tửcủa danh sách chưa biết tại thời điểm viết chương trình và chỉbiết tại thời điểm chạy, ta dùng 1 trong 2 cách sau :

‰ khai báo số lượng tĩnh tại thời điểm viết, cách này thường phí phạm bộnhớhay khai báo thiếu số lượng phần tử.

ƒ Thí dụđểgiải hệ n phương trình tuyến tính, n ẩn số, ta có thểkhai báo tĩnh ma trận thông số như sau :

Option Base 1

Dim matran(100,100) As Double

ƒ nhưng nếu đại đa sốlần dùng ứng dụng này, ta chỉgiải các hệ phương trình có 2, 3,... ẩn sốthì sẽrất phí phạm bộnhớ. Còn 1 lần chạy nào đó, nếu ta cần giải hệ 200 phương trình thì chương trình sẽchạy sai.

‰ khai báo số lượng động tại thời điểm chạy. Cú pháp như sau :

Dim varname() [As [New] type]

Ví dụ : Dim matran() As Double 'đểtrống số lượng ...

n = Val(txtInput.Text)

ReDim matran(n,n) 'phân phối phần tửcho ma trận

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 171

6.6 Lnh khai báo Declare

ƒ Các lệnh định nghĩa hằng, biến, kiểu, thủtục cho phép ta sản sinh phần tử tương ứng trong phạm vi ngữcảnh tương ứng (thủtục, module, toàn cục).

ƒ Ngoài ra Windows (và nhiều hãng, cá nhân khác) đã viết nhiều module tổng quát, mỗi module chứa nhiều thủtục khác nhau, các thủtục này giải quyết những vần đềnào đó. Thí dụta có module các hàm lượng giác, module các hàm thống kê, module các hàm xửlý dữliệu multimedia,...

ƒ Windows dùng kỹthuật liên kết động các module trên vào ứng dụng dùng chúng, mỗi module được cất trên 1 file *.dll (dynamic link library).

ƒ VB cung cấp lệnh khai báo "Declare" đểcho phép người lập trình khai báo chữký (signature, interface, prototype, header,...) của các thủtục có sẵn trong các module *.dll đểgọi nó trong ngữcảnh của mình (module).

Chương 6 : Các lệnh định nghĩa & khai báo VB

Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM

Môn : Tin học

Slide 172

Cú pháp 1 :

[Public | Private] Declare SubnameLib"libname" [Alias"aliasname"] [([arglist])]

Cú pháp 2 :

[Public | Private] Declare FunctionnameLib"libname" [Alias"aliasname"] [([arglist])] [As type]

ƒ Cú pháp 1 cho phép khai báo 1 subroutine với tên lànameở thư viện tên làlibname, ta có thểgọi subroutine này bằng 1 tên khác làaliasnamevà truyền cho nó 1 danh sách đối số tương thích với arglist.

ƒ Cú pháp 2 cho phép khai báo 1 function với tên lànameở thư viện tên là

libname, ta có thểgọi function này bằng 1 tên khác làaliasnamevà truyền cho nó 1 danh sách đối số tương thích với arglist. Sau khi hoàn thành, function sẽtrảvề1 giá trịkết quảthuộc kiểu type.

ƒ Chi tiết vềsựkhác biệt giữa subroutine và function sẽđược trình bày trong chương 9 và 10.

Một phần của tài liệu BÀI GIẢNG MÔN TIN HỌC-MÔN TIN HỌC (Trang 85)

Tải bản đầy đủ (PDF)

(175 trang)