MẢNG MỘT CHIỀU Trong nhiều tình huống, ta cần làm việc với một tập hợp dữ liệu nhiều lần. Ví dụ như trong bài toán sau đây: Đọc vào một danh sách điểm kiểm tra học kỳ; tìm giá trị trung bình; sắp danh sách điểm theo thứ tự giảm dần và in ra những điểm lớn hơn giá trị trung bình. Để giải quyết bài toán một cách hữu hiệu, ta cần một cấu trúc dữ liệu cho phép lưu trữ cũng như truy cập nhanh chóng các điểm số. Đó chính là dữ liệu kiểu mảng (array), trong đó các số liệu cùng kiểu được tổ chức thành chuỗi và mỗi số liệu có thể được truy cập trực tiếp qua chỉ số của nó. Mảng được khai báo như sau
var <tên mảng> : array[<giới hạn dưới>..<giới hạn trên>] of <kiểu phần tử>
trong đó <giới hạn dưới> và <giới hạn trên> là các hằng số. Kiểu của chúng cũng chính là kiểu chỉ số và có thể là kiểu số nguyên, kí tự hay kiểu boolean - tức là những kiểu đếm được, nhưng không thể là kiểu số thực. Còn <kiểu phần tử> có thể có kiểu bất kỳ.
Ví dụ: var a : array [1..10] of real; b : array [‘A’..’Z’] of integer;
Các phần tử của mảng được truy cập thông qua tên mảng và chỉ số. Ví dụ như a[1], a[2], b[‘A’], b[‘B’],... và được sử dụng hệt như các biến thông thường khác. Chú ý không truy cập mảng với các chỉ số nằm ngoài vùng giới hạn.
Mặc dù mảng có thể khai báo trực tiếp trong phần khai báo biến như trên, ta nên định kiểu trong phần type trước khi khai báo.
MẢNG NHIỀU CHIỀU Pascal cũng cho phép ta sử dụng các mảng nhiều chiều. Ví dụ mảng hai chiều có thể hữu ích khi ta muốn sắp xếp dữ liệu theo dạng hàng và cột. Giả sử ta cần lập trình quản lí việc bán vé máy bay. Mỗi vé đã bán được ghi lại bằng cách đánh dấu ‘x’ vào sơ đồ chỗ ngồi. Các hàng được đánh số 1, 2, 3, ..., 20, và các chỗ trong cùng một hàng được đánh A, B, C, D. Sơ đồ chỗ ngồi khi đó có thể được trình bày như một mảng hai chiều có kiểu phần tử là char, chỉ số thứ nhất trong khoảng 1..20 và chỉ số thứ hai trong khoảng ‘A’..’D’. Mảng này có thể được khai báo như sau
var so_do : array [1..20, ‘A’..’D’] of char;
Việc bán vé ở vị trí 5D có thể được ghi lại bằng phép gán:
so_do[5,’D’] := ‘x’;
Tương tự như vậy, ta cũng có thể sử dụng các mảng có số chiều cao hơn, nhưng cần chú ý rằng khi số chiều của mảng tăng, bộ nhớ mà nó sử dụng cũng tăng theo rất nhanh và sự rõ ràng của chương trình thường bị giảm thiểu.