Chương trình Tô mỳ Minh duy

Giải quyết hiệu quả vấn đề trong những mối quan hệ

Mảng là gì? Array là gì?

Mảng là gì? Array là gì?

Tony Minh Duy

Trong khoa học máy tính và toán học, một biến số là một sự đại diện tượng trưng biểu hiện một lượng hoặc biểu thức. Trong toán học, một biến số thường hay tượng trưng một lượng “chưa biết” có tiềm năng thay đổi; trong khoa học máy tính, nó tượng trưng một nơi dùng để lưu trữ một lượng. Những biến số thường hay được tương phản với những hằng số. Hằng số là lượng biết rồi và không thay đổi. Ví dụ, 9 là một hằng số và A là một biến số.

Trong khoa học máy tính một mảng là một cấu trúc dữ liệu gồm có một nhóm các phần tử mỗi cái có một tên đơn độc được truy cập bằng cách ra chỉ số. Trong nhiều ngôn ngữ lập trình phần tử nào trong một mảng cũng có cùng một kiểu dữ liệu và mảng đó chiếm lĩnh một khu lưu trữ tiếp giáp liên tục.

Toạ độ là các con số miêu tả địa điểm của các điểm trên một mặt phằng hoặc trong không gian. Cho thí dụ, chiều cao phía trên mặt biển là một toạ độ hữu ích cho việc diễn tả các điểm gần mặt phẳng của trái đất. Một hệ thống toạ độ, trên mặt phằng hoặc trong không gian, là một phương pháp có hệ thống để ấn định một bộ hai hoặc ba con số tới mọi điểm trên mặt phẳng hoặc trong không gian (tương ứng với thứ tự) dùng để miêu tả vị trí độc đáo của từng điểm một. Cho thí dụ, một bộ ba số gồm có độ vĩ, độ kinh và độ cao (chiều cao phía trên mặt biển) định nghĩa một hệ thống toạ độ gần mặt đất.

Những phần tử trong một mảng thường được đánh số và những phần tử cá biệt được truy cập qua số vị trí trong mảng của chúng. Vài mảng có nhiều chiều, có nghĩa là cần phải có nhiều hơn là một chỉ số để truy cập một phần tử. Chẳng hạn, một mảng hai chiều có lẽ coi như là những phần tử trên một mặt phẳng mang chỉ số bằng toạ độ x và toạ độ y, trong lúc một mảng ba chiều có lẽ coi như một dung tích mang chỉ số qua toạ độ x, y, và z.

Nói nôm na, một mảng là một xâu có các giá trị mà là tất cả quan hệ nhau và tất cả có thể được truy cập xuyên qua một biến số chung. Nhớ rằng một biến số chỉ có thể chứa một giá trị từng lần một. Khi một giá trị mới được ấn định vào nó, giá trị trươc đó bị phá huỷ. Nghĩ một biến số như một cái hộp đơn độc. Bạn chỉ có thể để vào đó từng lần một. Bây giờ nghĩ một mảng như những giấy bồi phân ranh bên trong cái hộp đó. Điều này cho phép bạn cho nhiều cái vào trong hộp, mỗi cái trong từng khe giấy bồi một. Một mảng cơ bản là như thế.

Mảng trong VBScript

ASP cổ điển có nghĩa là ASP đời trước ASP.NET. Ngôn ngữ VBScript của môi trường ASP cổ điển có một chức năng lập mảng gọi là array(). Nó nhận một xâu giá trị và trả lại một mảng có những giá trị đó. Dưới đây là một ví dụ:

1   <%
2   dim mangToi
3   mangToi = Array(5,10,15,20)
4   %>
5   mangToi:<%=mangToi(0)%>;
6   ubound(mangToi):<%=ubound(mangToi)%>;

Dòng 2 không nhất thiết phải có. Sau khi dòng 3 thực thi thì mangToi sẽ có 4 phần tử: mangToi (0)=5, mangToi (1)=10, mangToi (2)=15 và mangToi (3)=20. Chức năng ubound() trong dòng 6 cho biết chỉ số cao nhất của mangToi là 3.

Nếu muốn lập mảng có 100 phần tử trước khi biết giá trị của một phần tử thì làm như sau:

1   <%
2   dim mangToi(100)
3   %>
4   ubound(mangToi):<%=ubound(mangToi)%>;

Dòng 4 cho biết chỉ số cao nhất là 99. Phần tử đầu tiên là mangToi(0) và phần tử chót là mangToi(99).

Nếu biết chỉ số thấp nhất và cao nhất thì dùng vòng chỉ số như sau để truy cập từng phần tử một:

1   <%
2   for cs=0 to 99 %>
3   mangToi(<%=cs%>):<%=mangToi(cs)%>;<br> <%
4   next %>

Nếu không biết chỉ số thấp nhất và cao nhất của một mảng thì dùng vòng FOR EACH như sau để truy cập từng phần tử một:

1   <%
2   for each gt in mangToi %>
3   <%=gt%>;<br> <%
4   next %>

Mã nguồn trên liệt kê tất cả các giá trị trong mảng mangToi, mỗi giá trị nằm trên một hàng xuất kết khác nhau.

Ví dụ Mảng hai chiều

1   <%
2   dim chungta(3,2)
3   chungta(0,0) = "Kim"
4   chungta(0,1) = "1001"
5   chungta(1,0) = "Minh"
6   chungta(1,1) = "1002"
7   chungta(2,0) = "Nhung"
8   chungta(2,1) = "1003"
9   %><p>Cho xem noi dung mang chungta:</p> <%
10   for each x in chungta
11   %><%=x%><br><%
12   next
13   %><p>Liet ke SND cho tung nguoi mot:</p> <%
14   for nguoi=0 to 2
15   %>SND <%=chungta(nguoi,0)%>:
16   <%=chungta(nguoi,1)%><br><%
17   next
18   %>

Mã nguồn trên sẽ ra xuất kết dưới đây. Lưu ý: số hàng và màu sắc không phải là một phần của xuất kết.

1   Cho xem noi dung mang chungta:
2   Kim
3   Minh
4   Nhung
5   1001
6   1002
7   1003
8   Liet ke SND cho tung nguoi mot:
9   SND Kim: 1001
10   SND Minh: 1002
11   SND Nhung: 1003

Mảng động trong VBScript

Mệnh lệnh ReDim (làm chiều lại) trong ngôn ngữ VBScript dùng để ra khổ hoặc đổi khổ một mảng động đã chính thức tuyên khai bằng lệnh Private, Public, hoặc Dim nhưng với cặp dấu ngoặc đơn trống rỗng (không có chỉ số kích thước). Bạn có thể dùng lệnh ReDim lập đi lập lại thay đổi số phần tử và số chiều một mảng.

Nếu bạn dùng từ khoá Preserve (bảo tồn), bạn chỉ có thể thay đổi kích thước chiều chót của mảng, và bạn không thể thay đổi số chiều. Cho thí dụ, nếu mảng của bạn chỉ có một chiều, bạn có thể đổi khổ và kích thước chiều đó bởi vì nó là chiều chót và là chiều duy nhất. Tuy nhiên, nếu mảng của bạn có hai hoặc nhiều chiều hơn, bạn có thể thay đổi độ lớn của chỉ chiều chót và vẫn còn bảo tồn nội dung của mảng đó.

Thí dụ sau đây cho thấy cách bạn có thể gia tăng độ lớn của chiều chót của một mảng động mà không có xoá bỏ bất cứ một dữ liệu nào sẳn có được chứa đựng trong mảng đó.

1   ReDim X(10, 10, 10)
2   ...
3   ReDim Preserve X(10, 10, 15)

Nếu bạn làm một mảng nhỏ hơn trước, dữ liệu trong những phần tử bị khử bỏ sẽ bị mất.

Khi những biến số được khởi xướng hoá, một số biến chứa số được khởi xướng hoá bằng số 0 và một biến số chứa ký tự được khởi xướng hoá bằng một chuổi không có một ký tự nào hết. Một biến số nói về một vật thể phải chỉ có thể được ấn định với một vật thể sẳn có dùng lệnh Set (cài đặt) trước nó khi đem nó ra sử dụng. Cho đến khi nó được ấn định một vật thể, biến số vật thể khai rồi chưa một giá trị đặc biệt giá gọi là Nothing (không có gì).

 

Advertisements

About cttmmd

creator of www.tapsu.com

5 comments on “Mảng là gì? Array là gì?

  1. nguyễn Duy
    10-07-2007

    Cho mình hỏi viết thế này vì sao nó không hoạt động

    có cách nào để tạo mảng mà độ rộng của nó lấy từ một biến không

  2. cttmmd
    10-07-2007

    Dùng mệnh lệnh redim để làm cho độ rộng một mảng thay đổi dựa vào giá trị một biến, ví dụ: (a) cho biến doRong = 300 xong rồi thì (b) redim giaTri(doRong); thế là có được 300 phần tử trong mảng giaTri

  3. ohrger?usche
    29-09-2009

    Loan on time, Pettigrew takes care?Not only those, carrying cases and.Arms should be, or temporary or.Consult to a ohrger?usche, systems can do These added touches.Without any advertising, example Comfort is.,

  4. Pingback: Dung cu bong ban hang dau viet nam

  5. Admiring the time and effort you put into your website and detailed information you offer. It’s good to come across a blog every once in a while that isn’t the same outdated rehashed material. Excellent read! I’ve bookmarked your site and I’m including your RSS feeds to my Google account.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Information

This entry was posted on 09-05-2007 by in CNTT, Làm Web, Lập trình, Phần mềm.
%d bloggers like this: