Th.S: XUÂN THỊNH - NAM THUẬN
và nhóm Un học thực dụng
Kỹ thuật và thủ thuật
lập trình
VISUAL BASIC 2010 - 2011
Từ căn bản đến nâng cao - dành cho học sinh, sinh viên
các trường Cao Đẳng và Đ ại Học
♦ M icrosoít V isuaJ B asic 2010-2011 là b ản nâiig cấp và
cải liế n qxian trọng ciia ngôn n g ữ lậ p tr in h lâ ê m trìn h
biên d ịc h V lsual B asic p h o b iế n , m ộ t công Iighệ điíỢc
r ắ t n h iề u các n h à lập trìn li Id iắp th ế giới tin cậy sử
diuig
♦ V ớ i cách bố cục c h ặ t c h ẽ th e o từ n g c h ủ đ ề chitơng và
rát Iihiều bài tập thực Ì i ằ i ử ì từng bước và chương trùửi
New Edition
m ăii, b a n sẽ n h a n h chóĩig học đư ợc cá ch tạ o các ííng
dụncị V isuai Basic
♦ Các tín h n ăn g m ới n h á t c ủ a Visi.ial B asic sẽ giiip b ạn
lập trìn h n h an li hơn và (ĩạ t h iệ u qiiâ cao hơn, n h ấ t là
k h i b ạ n tliíc h sử dụiig và tíc h h ợp th ô n g tlii từ các cơ
sở d ữ liệ u , các phư ơng tiệ n g iả i trí» các tra n g W eb và
Wcb slte. Hy vọng saii k h i học xong các birôc và t h ủ
th u ậ t lậ p trìn h tro n g q u y ển sá c h n ày với V isiial Basic
NHÀ XUẤT BẢN HỒNG ĐỨC
L ỜI NỐI ĐẦU
M icro so ft V isu a l B asic 8010-8011 là b ả n n â n g c ấ p và cải
tiế n q u a ii trọ n g c ủ a n g ò n Iigữ lậ p tr ìn h ld.êm trìrứ i b iê n d ịc h
V istia l B a sic p h ổ b iế n , m ộ t công n g h ệ đưỢc r ắ t lủ iiề u các n h à
lậ p trìiử i Ichắp ứ iế giớ i tin cậy s ử d ụ n g . V is u a l B asic 2 0 1 0 2 0 1 1 lchông p h ả i là s ả n p h ẩ m độc lậ p m à là m ộ t th à iứ i p h ầ n
c h in h c ử a M ỉcro so ít V isu a l S tu d io 201 0 -2 0 1 1 - m ộ t h ệ th ố n g
p h á p t r i ể n to à n d iệ n cho p h é p Hgười d ù n g tạ o r a lứ iữ ng ứ ng
diỊHg m ạ n h m ẽ d à n h ch o W indow s, W eb, các t l ii ế t b ị cầ m
tay , v à r ấ t n liiề u m ô i trư ờ n g Iđiác.
Bộ s á c h "K ỷ t h u ậ t v à tJhủ t h u ậ t lậ p t r ìn h VTSIIA L B A
S IC 2 0 1 0 -2 0 1 1 " gồ m 2 tậ p , h ư ớ ng d ẩ n to à n đ iệ n về lậ p trìn li
V is u a l B a sic s ử d ụ n g p h ầ n m ề m V isu a l B a sic 2010-2011.
V ới c á c h b ố cụ c c h ặ t c h ẽ th e o từ n g c h ủ đ ề ch ư ơ n g và r ắ t
n h iề u b à i tậ p th ự c h à n h từ n g bư ớ c và ch ư ơ n g tr ì n h m ẫ\i,
b ạ n s ẽ n h a n h ch ó n g h ọ c được cá ch tạ o các ứ n g d tư ig V istial
B a sic 2 0 1 0 -2 0 1 1 c h ấ t lượng c h u y ê n n g h iệ p d à n h ch o h ệ đ iề u
h à n h W ữ id o w s và n h iề u bộ t i ì n h d u y ệ t W eb. C ác t í n h n ăn g
m ớ i n h ắ t c ủ a V isu a l B asic sẽ g iú p b ạ n lậ p tr ù ứ i n h a iứ i h ơ n
v à đ ạ t h iệ u q u ả cao hơ n , n liấ t là k lii b ạ n tliic h s ử d ự n g và
t íc h h ợ p th ô iig t i n t ừ các cơ sở d ữ liệ u , các p h ư ơ n g tiệ n g iả i
t r í, các tr a n g W cb v à W cb sitc.
H y v ọ n g s a u k h i h ọ c x o ĩ i g các bư ớ c v à t h ủ t h u ậ t lậ p trìiứ i
tro n g q u y ể n sác li n ày với V isu al B asic và V is u a l S tu d io In teg r a te d D e v e lo p m e n t E n \lro n n ie n t (ID E ), b ạ n s ẽ Id iô n g nhữmg
tạ o đưỢc các ch ư ơ n g tr ìn h ứ ng d iu ig c ă n b ả ii m à còn có k h ả
n ă n g s ử d ụ n g n liiề u công c ụ c ủ a p h ầ n m ề m n à y đ ể v iế t các
ch ư ơ n g tr b ủ i ch o M icro soít V isu a l
2 0 1 0 -2 0 1 1 , M icrosoít
V is u a l c # 2 0 1 0 -2 0 1 1 , M icrosoữ V isu a l W eb D ev elo p er 2010,
v à n h i ề u s ả n p h ẩ m k h ác .
T á c g iả
C h ư ơ n g 11: S ử dụng các m ảng đ ể quản lý dữ liệu s ố và chuỗi
PHẦN (II
Lộp trình nâng coo và thiết kế
giao diện người dùng
Chương II : Sử dụ n g c á c m ản g đ ể qu ản lý
d ừ liệu s ố v à chuỗi
ChtMĩig 12: Làm việ c vớ i cá c tậ p hợp
Chướng 13: K h ả o s ấ t c á c File T ex t v à x ử
lý chuỗi
Chương 14: Q uản lý c á c ịo r tn Windou)s và
c á c cơntroỉ v à o th ờ i g ia n ch ạy
Chương 15: Tbêm đ ồ h ọa v à cá c h iệu ứìig
h o ạ t h ìn h
Chươĩtg 16: Thừa k ế c á c fo r m v à tạ o các
c la s s c ơ s ở
Chương 1 7: Làm việ c vớ i c á c m á y in
8
____________ C h ư d n g 11; Sử dụng các m ảng đ ể quản lý dữ liệu s ố v à chuỗi
”
,
.
.
.
Sử dụng các mỏng để quỏn
ụ dữ liệu số và chuỗi
Sau k h i hoàn th à n h chtM ng n à y bạn s ẽ có thể:
*
TỔ chức thông tin trong các m ảng có kicb cỡ cố định I>à m ảng dộng,
K G iữ gìn d ữ liệu m ảng khi bạn tái định chiềíi các mảng.
*
Sứ dụng các m ảng trong m ã đ ể quản lý các lượng lởn clữ liệu.
a S ứ dụng các phĩccmg tbữc Hort và Keverse trong class Array d ể sáp
xế p lại thứ tự các mảng.
^ S ử dụng control ProgressBar trong các cbĩcơng trình đ ể th ể hiện ĩtĩọt
tác ưít m ất thời gian bao lân.
u ản lý th ô n g tin tro n g m ột ứng dụng M icrosoíl Visual Basic là
m ột tá c vụ quan trọ n g và k h i các chương trìn h trở n ên đáng kể
hơn, b ạn sẽ cần các công cụ bổ sung để lưu trữ v à xử lý dữ liệu.
M ột phường p h áp n h a n h để quản lý dữ liệu tro n g các chương trìn h là lưu
trữ và tru y tìm th ô n g tin tro n g các íĩle tex t phụ n h ư b ạ n sẽ th ấ y trong
chương 13. Tuy n h iên , phưcmg pháp to àn diện n h ấ t là lưu trữ và truy tìm
thông tin b ằn g việc sử dụng các cơ sở dữ liệu và b ạn sẽ b ắ t đầu học cách
tích hợp các chương trìn h với các cơ sd dữ liệu tro n g chương 18-
C h ư ớ n g 11: s ử dụng các m ảng để quản lý dữ liệu s ố và chuỗi
9
T rong chưcmg này, b ạn sẽ học cách tổ chức các biến và th ô n g tin khác
th à n h các k h u n g chứa hữu dụng được gọi là các m ảng (array). B ạn sẽ học
cách hợp lý h ó a những tác vụ quản lý dữ liệu b ằn g các m ảng có kích cỡ cố
đ ịn h và các m ảng động và cách sử dụng các m ảng tro n g m ã để quản lý các
lượng lớn dữ liệu. B ạn sẽ học cách tá i định chiều các m ảng và gìn giữ dữ
liệu tro n g các m ản g k h i b ạn quyết định th a y đổi kích cỡ của m ộ t m ảng. Để
m inh họa các m ảng lớn có th ể xử lý như thê' nào, b ạn sẽ sử dụng các phương
thức S o rt và R everse tro n g class A rray của M icrosoft .NET F ram ew ork để
sắ p xếp lạ i th ứ tự m ột m ảng chứa các giá trị số nguyên 6 chữ sô’ ngầu nhiên.
Sau cùng, b ạ n sẽ học sử dụng control P rogressB ar để cho người dùng biết
m ột tiế n tr ìn h (liên quan đến m ảng hoặc nào dó) m ấ t th ờ i gian bao lâu.
N hững kỹ th u ậ t m à b ạn sẽ học m ang lại m ột bước khởi đầu làm quen vững
chắc với n h ữ n g kỹ th u ậ t lập trìn h cơ sở dữ liệu m à b ạn sẽ k h ai th á c sau đó
tro n g sách.
Làm việc với các mảng của các biến
Trong p h ầ n n ày b ạn sẽ học về các m ảng (array), m ột phương p h áp hữu
dụng để lưu trữ h ầu như b ất kỳ lượng dữ liệu tro n g quá trin h thực th i
chương trìn h . Các m ảng là m ột cơ cấu m ạn h và được th ử nghiệm qua thời
gian để lưu trữ các giá trị liên quan m ột cách logic tro n g m ột chương trìn h .
N hững người p h á t triể n ra BASIC, Pascal, c , và những ngôn ngữ lập trìn h
phổ biến k h á c k ế t n h ập các m ảng vào các p h iên b ả n sớm n h ấ t của những
sả n p h ẩm n à y để th am chiếu đến m ột nhóm giá tr ị b ăn g việc sử dụng một
tê n và để xử lý những giá t n đó m ột cách riên g lẻ hoặc chung.
Các m ản g có th ể giúp b ạn theo dõi m ột tậ p hợp nhỏ các giá trị bằng
nhữ ng cách k h ông thực tiễ n sử dụng những biến tru y ền thống. Ví dụ, hãy
tưởng tượng tạo m ột b ản g điểm bóng chày chín lượt chơi tro n g m ộ t chương
trìn h . Đ ể lưu và gọi lại các số điểm cho mỗi ỉược chơi của tr ậ n đấu, có th ể
b ạn r ấ t m uôn tạo h ai nhóm gồm 9 biến {tổng cộng 18 biến) tro n g chương
trìn h . Có lẽ b ạn sẽ đ ặ t cho chúng m ột tê n nào dó n h ư InninglH om eT eam ,
InninglV istingT eam ... để làm cho chúng rõ ràng. L àm việc riên g lẻ với
nhữ ng biến n ày đòi hỏi thời gian và không gian đ án g kể tro n g chưcmg
trìn h . T h ậ t m ay th ay , với Visual Basic, b ạn có th ể tổ chức các nhóm gồm
các biến tương tự th à n h m ột m ảng có m ột tê n chung và m ột index dễ sử
dụng. Ví dụ, b ạn có th ể tạo m ột m ảng hai chiều (cao h a i đơn vị và rộng 9
đơn vị) được đ ậ t tê n là Scoreboard để chứa các số điểm cho tr ậ n đấu bóng
chày. H ãy xem diều n ày làm việc như th ế nào.
10______________ C h ư ớ n g 11: sử dụng các m àng để quản lý dữ liệu s ố và chuỗi
Tạo m ột mảng
B ạn tạo hoặc k h a i báo các m ảng trong m â chương trìn h tương tự như
bạn k h ai báo các biến dơn giản. N hư thường lệ, vị trí m à b ạn k h ai báo biến
tro n g đó quyết đ ịn h nơi nó có th ể được sử dụng hoặc phạm vi (scope) của nó
nh ư sau:
*
Nếĩt bạn khai báo m ột m ảng một cách cục bộ trong m ột thủ tục, bạn có
th ề sứ dụng nó chỉ trong thủ tục đó.
u Nếu bạn khai báo m ột m ảng ở p h ầ n trôn củng cùa m ột /orm . bạn củ tb ể
sứ dụng nó qua siiốt fo n n .
^ N ếu bạn khai báo m ột m ảng m ột cách pttbỉíc trong m ộtpỉiblỉc, bạn có
th ể s ủ dụng nó ờ bất cứ ncH nào trong proịecỉ.
K hi b ạ n k h ai báo m ột biến, b ạn thường bao hàm th ô n g tin được trìn h
bày tro n g b ản g 11.1 tro n g câu lệnh k h ai báo.
Bảng 11.1 Các phẩn tử cú pháp cho một phẩn khai báo m ảng
Các p h ầ n tử cú pháp
tron g k h ai báo m àng
Mô tà
Tên mảng
Tên mà bạn sẽ sử dụng để đại diện cho mảng
trong chương trình. Nói chung, các tên mảng
tuân theo các quy tắc y như các tên biến,
(Xem chương 5, để biết thêm thông tin về
các biến).
Kiểu dữ liệu
Kiểu dữ liệu mà bạn sẽ lưu trữ trong mảng.
Trong hầu hết các trường hợp. tấ t cả biến
trong inộL mảug là cùng một kiểu. Bạn có
th ể xác định một trong các kiểu dữ liệu cơ
bản hoặr nếu bạn chưa chắc chắn kiểu dữ
liệu nào sẽ dược lưu trữ trong m ảng hoặc
bạn sẽ sử đụng nhiều kiểu hay không, bạn
có thể xác định kiểu Object.
Số chiều
Số chiều mà mảng sẽ chứa. Hầu h ế t các mảng
là một chiều (raột danh sách các giá trị) hoặc
hai chiều (một bảng các giá trị), nhưng bạn
có thể xác định các chiều bổ sung nếu bạn
làm việc với một mô hình toán học phức lạp
chẳng hạn như một hình dạng ba chiều. Số
chiều trong một mảng đôi khi được gọi là
hạng (rank) của mảng.
SỐ phần tử
Sô' phần tử mà mảng sẽ chứa. Các phần tử
trong mảng tương ứng trực tiếp với iniex
mảng. Index mảng đầu tiên luôn là 0 (zero)-
C h ư ơ n g 1 1 : S ử d ụ n g c á c m ả n g đ ể q u ản !ý d ữ liệ u s ố v à c h u ỗ i
11
• • • • • • •
Thủ thuật
Các mảng chứa một số phần tử được xác lập được gọi là các mảng có kích cỡ cố
đ ịn h (flx e d size array). Các m ảng chứa m ọt số phần tử khả biến (các mảng có
th ể m ở rộ n g tro n g quá trìn h thực th i chương trìn h ) được gọi là các m ảng động
(d y n a tĩiic array).
Khai báo m ột mảng có kích cỡ cố định
Cú p h áp cơ b ản cho m ột m ảng có kích cỡ cô' định public là
Dim ArrayNam e(Dim 1lndex, Dim2lndex, ... ) As DataType
Các đối sô’ sau đây quan trọng:
a D im là từ khóa khai báo mảng, sứ dụng Public thay ỉ’ì nếu bạn đặi
m ả n g trong m ột modnỉe.
m A rrayN am e là tên biển của mảng.
» D im lỉn d e x là giởi hạn trẽn của chiều thứ n h ấ t của mảng, đ â y là số
p h ầ n tứ trt'c cho 1.
a D im 2 ỉn d ex là giới hạn trên của chiền thứ hai của mảng, đ â y là số p h ầ n
tứ tnc cho 1. (Các chiều bổ sung có th ề được đìCa vào nếu chúng được
tách biệt bàng các ảấn phẩy).
M D ataType là m ột tì( khóa ticơng ứng t>ới kiểu d ũ liệu m à sẽ được đìCa vào
m ảng.
Ví dụ để k h a i báo m ột m ảng chuỗi m ột chiều có tê n là Em ployees có chồ
d àn h cho 10 tê n n h ân viên (dược đ án h số từ 0 đ ến 9), b ạn có th ể gõ nhập
dòng m ả sau đây tro n g m ột thủ tục sự kiện;
Dim Employees{9) As string
T rong m ột module, p h ần khai báo m ảng này trô n g như sau:
Public Employees(9) As string
B ạn cùng có th ể xác định m ột cách tường m inh giới h ạ n dưới của m ảng
là zero b ằn g việc sử dụng m ã tro n g m ột th ủ tục sự kiện:
Dim Employees(0 To 9) As string
Cú p h áp "0 to 9" n ày được đưa vào để làm cho m ã dễ đọc hơn - những
nểười mới đ ến chương trìn h của bạn sẽ hiểu ngay ra rằ n g m ảng Employees
có 10 p h ầ n tử được đ án h số từ 0 đến 9. Tuy nhiên, giới h ạ n dưới của m ảng
12
C h ư ơ n g 11: S ử dụng các m ảng đ ể quản lý dư liệu s ố và chuỗi
p h ải luôn là zero. B ạn không th ể sử dụng cú pháp n ày để tạo m ộ t giới hạn
dưới khác cho mảngOành riêng bộ nhớ
K hi b ạn tạo m ột m ảng, Visual Basic dành riên g chỗ trố n g cho nó tro n g
bộ nhớ. Ả nh chụp m àn h ìn h sau đây m inh họa về k h á i niệm m ả n g Employees 10 p h ần tử được tổ chức n h ư th ế nào. Các p h ần tử được đ án h sô' từ 0 đến
9 th a y vì từ 1 đến 10 bdi vì các index m ảng luôn b ắ t đầu với 0.
E m p lo y e e s
Đ ể k h ai báo m ột m ảng 2 chiều public có tên là Scoreboard có chỗ trống
đ àn h cho hai h àn g và chín cột dữ Uệu số nguyên S h o rt, b ạn có th ể gõ n h ập
câu lện h sau đây tro n g m ột th ủ tục sự kiện hoặc ở p h ần trê n cùng của form:
Dim Scoreboard(1, 8) As Short
Sử dụng cú pháp n h ấ n m ạ n h giới h ạn dưới (zero), b ạn cũng có th ể khai
báo m ảng n h ư sau:
Dim Scoreboard(0 To 1, 0 To 8) As Short
Sau khi b ạn k h ai báo m ột m ản g hai chiều như vậy và Visual B asic d ành
riê n g chỗ trố n g cho nó tro n g bộ nhớ, bạn có th ể sử dụng m ả n g trong
chưcmg trìn h n h ư th ể nó là m ộ t b ản g các giá tr ị n h ư được m in h h ọ a trong
ả n h chụp m àn h ìn h dưới đây. (Trong trường hợp n ày các p h ầ n tử m ảng
được đánh sô' từ 0 đến 1 và từ 0 dến 8).
C h ư ớ n g 11: S ử dụng các m ảng để quản iý dừ liệu s ố và chu ỗi
13
Scoreboârd
C á c cột
0
C ác hàng
1
0
Làm việc vớ i các phần tử mảng
Để th a m chiếu đ ến m ột p h ần tử của m ột m ảng, b ạn có th ể sử dụng tên
m ảng và m ột index m ảng được đ ặ t trong các dấu ngoặc đơn. Index sẽ là m ột
số nguyên hoặc m ột biểu thức vốn tạo n ên m ột số nguyên, Ví dụ, index có
th ể là m ột b iế n số nguyên chẳng h ạ n như num, hoặc m ột biểu thức chẳng
h ạn n h ư num -1. (Biến bộ đếm cho m ột vòng lặp For... N ex t thường được sử
dụng). Ví dụ, câu lệ n h sau đây gán giá trị "Leslie" vào p h ầ n tử có m ột index
là 5 tro n g ví dụ m ản g Employees trong p h ần trưức:
Employees(5) = ‘ Leslie’
Câu lệ n h n ày tạo r a k ế t quả dưới đây tro n g m ột m ản g Employees:
E m ployees
Lesile
Tương tự, câu lệ n h sau đây gán số 4 vào h à n g 0, cột 2 (phần trê n cùng
của lượt chơi th ứ ba) tro n g ví dụ m ảng Scoreboard tro n g p h ần trước:
Scoreboard{0, 2) = 4
14
C h ư ơ n g 11: Sử dụng các m ảng đ ể quản lý dữ liệu s ố và chu ôi
Câu lện h n ày tạo ra k ế t quả sau dây tro n g m ảng Scoreboard:
Scoreboard
C ác cột
0
1
2
3
4
5
6
7
8
C ả c hàng
B ạn có th ể sử dụng những kỹ th u ậ t tạo index n ày để g án hoặc tru y tìm
b ấ t kỳ p h ần tử m ảng.
Khai báo m ột mảng và gán cho nó các giá t r ị ban đầu
Cũng có th ể k h a i báo m ột m ản g và g án cho nó các g iá tr ị b a n đầu cùng
m ột lúc. Cú p h áp câu lệ n h n ày đôi khi tương đương với n h ữ n g gì b ạ n đã
học về việc g án m ộ t g iá tr ị ban đầu vào m ộ t b iế n tạ i th ờ i đ iểm k h a i báo
và hừu dụng k h i b ạn b iế t trước m ộ t m ản g cần lớ n bao n h iê u và nội dung
của nó là gì.
Để tạo m ột m ảng b ằn g cách này, bạn sử dụng nhữ ng gì được gọi là một
trực kiện m ảng (array liberal). M ột trực kiện m ản g gồm m ột d an h sách các
giá tr ị dược p h ân cách b ằn g dấu phẩy được đ ặ t tro n g các dấu ngoặc (II). Khi
b ạ n sử dụng cú p h áp này, b ạn có th ể cung cấp kiểu m ản g hoặc để Visual
B asic sử dụng sự suy lu ận kiểu (type inference) để quyết đ ịn h m ả n g n ên có
kiểu nào. Ví dụ, để k h a i báo m ột m ảng m ột chiều có tê n là W a ite rs có kiểu
S trin g và điền vào nó 7 tê n , b ạn sử dụng cú p h áp sau đây:
Dim W aiters() As strin g = {"Ben", "Sue", "Lee", "Kim-, "Pat", "Eve", “S a i")
Chú ý rằ n g kích cỡ của m ảng này được tự động quyết đ ịn h bởi Visual
Basic k h i W aiters được khai báo. Ngoài ra, nếu b ạn k h ông biểu th ị m ột
kiểu m ảng, Visual B asic sẽ sử dụng sự suy luận kiểu để quyết đ ịnh đúng
kiểu dữ liệu m ảng cho bạn. Rõ ràng, nếu tấ t cả dữ liệu có cùng m ột kiểu,
trìn h biên dịch sẽ b iế t rõ kiểu dữ liệu nào n ê n được sử dụng cho m ảng.
N hưng nếu có m ột hồn hợp các kiểu chẳng h ạ n n h ư n h iều sô' nguyên, sô' có
độ chính xác đơn và sô' có độ chính xác kép, M icrosoĩt Visual Studio sẽ chọn
m ột kiểu dữ liệu cho m ản g đủ lớn để chứa tấ t cả giá trị. T ro n g n h iều trường
hợp, đây sẽ là kiểu dữ liệu Object bởi vì các biến (và các m ảng) O bject được
th iế t k ế đậc b iệt để chứa b ấ t kỳ kiểu dữ liệu.
Câu lệ n h sau đây k h ai báo m ột m ảng có tê n là In v e stm e n ts và sử dụng
m ột trực k iện m ản g dể th ê m bốn giá trị vào m ản g k h i nó được tạo. Vì kiểu
C h ư d n g 1 1 : S ử d ụ n g c á c m ả n g đ ể q u ầ n lý d ữ liệ u s ổ v à ch u ò i_______________ 15
không được xác định, Visual B asic đánh giá các p h ần tử m ảng và quyết
định rằn g tro n g trường hợp này kiểu Object th ì th íc h hợp n h ất.
Dim investmentsO = (5000, 20350, 499.99, 10000}
------------------------------------------------------------------------------------------------------------------
Nếu xác lập Option Infer của trình biên dịch được xác lập sang On,
kiểu Double sẽ đưỢc xác định khi câu lệnh ở ưên đưỢc thực thi,
Xem chương 1 đ ể ^ ^ t r Ợ ^ ú p đ i ề u chỉnh xác lập nàỵ^________
M ột m ả n g đa chiều cũng có th ể được k h ai báo b ằn g cách n ày m ặc dù bạn
cần cẩn th ậ n liệ t kê các phần tử tro n g th ứ tự phù hợp (nghĩa là h àn g 0
trước tiê n rồi đ ến h àn g 1 h àn g 2...), Ví dụ, câu lện h sau đây k h a i báo m ột
m ảng h a i chiều có tê n là Rectangle và gán bốn giá tr ị san g mảng;
Dim Rectangle = ({10, 20}, {50, 60})
M ảng n à y có h a i h àn g và hai cột. P h ần tử m ảng (0,0 - đó là h àn g 0 cột
0) bây giờ chứa m ột giá trị 10 và p h ần tử (0,1 ' đó là h àn g 0 cột 1) bây giờ
chứa m ột g iá trị 20. Cũng chú ý rằ n g có ba tậ p hợp dấu ngoặc được sử dụng
tro n g p h ầ n k h a i báo; những dâu ngoặc n ày làm rõ các p h ần tử nào đang
được gán và giữ chúng trong th ứ tự phù hợp.
Ảnh chụp m àn h ìn h dưới đây m in h họa Visual Studio Code E d ito r với ba
ví dụ về các p h ần k h ai báo trực k iệ n m ảng đâ được tr ìn h bày tro n g phần
này. Chú ý rằ n g Code E ditor à ch ế độ debugging (hoặc b reak mode) và cửa
sổ W atch x u ấ t h iệ n và h iển thị nội dung của m ảng W aiters. (C hế độ Debugging mode và cửa sổ W atch đã được giới thiệu tro n g chưcmg 8). M ột vòng
lặp For... N ex t cũng đang được sử dụng để h iển th ị nội dung của m ảng
W aiters tro n g m ộ t hộp thông báo m ặc dù b ạ n k hông th ể th ấ y k ế t quả của
vòng lập n ày tr ê n m àn h ìn h này. Các vòng lặp F or... N e x t là nhữ ng công
cụ ho àn hảo để xử lý các m ảng như bạn sẽ th ấ y tro n g p h ần tiếp theo.
C h ư ớ n g 11: s ử dụng các m ảng đ ể quản lý dữ liệu s ố và chuôi
16
:ÍÍS33;V'W»fW C-pl6 . ♦ ậ ,x*
ỉ
^^Suttanỉ
_____________
i i -‘-M
rA
A»
sV
^rM
* ’*'’,
.
^ : «jVí»\«rr
»wtrwCỉi
V
ũ*.*. ~
êv^il
+
év b
«•
éT
• {‘^**.
* ">
*»'i' 'vaì
WMowiAp^i(«li«
&{« ỉnv*ttM >'tỉ() • fSỈM» :« )» .$ , 4«> '<9, ieC9í'
ỈA.*mI «A
2ÍS M s u n ậ ỉ * • « / : » . M ) , [ i t , M } ỉ
ữl« 1 6 t
r < r i • • Te 0
Ind Svn
'|4 CỈAỉ»
NlA^t
> w»inr)
Vfữ>
f 0)
*ữ)
*
n)
*«
^o
Ty^
Vllui
|L 0 Then ReDim Temperatures(Days - 1 )
For i = 0 To UBoiJnd{Temperatures)
Title = “ Day “ & (i + 1)
Temperatures(i) = lnpưtBox(Prompt, Title)
Next
Dòng th ứ tư và dòng th ứ năm nhắc nhở người dùng về số n h iệ t độ
m à người dùng m uôn lưu và sau đó dữ liệu đầu vào của người dùng
được sử dụng để đ ịn h chiều cho m ột m ảng động. Câu trúc quyết định