Diễn đàn ITK36 - ĐH Sư phạm TPHCM

Diễn đàn ITK36 - ĐH Sư phạm TPHCM
Diễn đàn đang nâng cấp ...
 
Trang ChínhCalendarTrợ giúpTìm kiếmThành viênNhómĐăng kýĐăng Nhập

Share | 
 

 [Lý thuyết] Mảng

Xem chủ đề cũ hơn Xem chủ đề mới hơn Go down 
Tác giảThông điệp
Admin
Administrator
avatar


Nam
Tổng số bài gửi : 219
Điểm kinh nghiệm : 15651
Danh tiếng : 104
Ngày tham gia : 02/10/2010
Age : 25
Đến từ : Lớp CNTT K36
Tài sản : Ring of The Creator
Tài năng của Admin Danh vọng:219%/1000%
Tài năng:25%/100%


Bài gửiTiêu đề: [Lý thuyết] Mảng   Tue Dec 07, 2010 5:33 pm

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.
Về Đầu Trang Go down
Xem lý lịch thành viên http://cnttk36.forumotion.net

Bài viết mới cùng chuyên mục

Bài viết liên quan

 

[Lý thuyết] Mảng

Xem chủ đề cũ hơn Xem chủ đề mới hơn Về Đầu Trang 
Trang 1 trong tổng số 1 trang

Permissions in this forum:Bạn không có quyền trả lời bài viết
Diễn đàn ITK36 - ĐH Sư phạm TPHCM :: Góc học tập :: Tài liệu học tập-
Chuyển đến