PASCAL/Mảng
< PASCAL
Mảng 1 chiều
editKhái niệm
edit- Mảng một chiều là một dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và một phần tử có một chỉ số.
- Để mô tả mảng, cần xác định:
- Kiểu của các phần tử
- Cách đánh số phần tử
VD:
Phần tử 1 1 2 3 5 8 13 ... Chỉ số 1 2 3 4 5 6 7 ...
Khai báo
editTrực tiếp Gián tiếp Cú pháp VAR <tên biến mảng> : ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF <kiểu dữ liệu>;
TYPE <tên kiểu mảng> = ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF <kiểu dữ liệu>; VAR <tên biến mảng> : <tên kiểu mảng>;
Ví dụ VAR A : ARRAY[1..50] OF real;
TYPE ten = ARRAY[1..50] OF string; VAR B : ten;
Các thao tác cơ bản
edit- Nhập mảng A gồm N phần tử:
Write('Số lượng phần tử: ');
readln(n);
For i:= 1 to n do readln(a[i]);
- In mảng ra màn hình:
For i:= 1 to n do write(a[i]); {bình thường}
For i:= n downto 1 do write(a[i]); {quay lui}
- Duyệt mảng:
For i:=1 to n do <câu lệnh>;
For i:= n downto 1 do <câu lệnh>;
Mảng 2 chiều
Khái niệm
edit- Mảng hai chiều là một dãy hữu hạn của hữu hạn của phần tử. Mảng được đặt tên và một phần tử có kiểu dữ liệu là mảng và gồm nhiều phần tử con. Mỗi phần tử con cùng kiểu dữ liệu.
- Để mô tả mảng 2 chiều, cần xác định:
- Kiểu của các phần tử
- Số lượng phần tử con của mỗi phần tử
- Cách đánh số của các phần tử con
VD:
Phần tử 123... Phần tử con 1 | 2 | 3 1 | 2 | 3 1 | 2 | 3 ... Chỉ số 1 | 2 | 12 3 | 9 | 0 5 | 1 | 2004 ...
Khai báo
editTrực tiếp Gián tiếp Cú pháp VAR <tên biến mảng> : ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF <kiểu dữ liệu>;
TYPE <tên kiểu mảng> = ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF ARRAY[<chỉ số đầu>..<chỉ số cuối>] OF <kiểu dữ liệu>; VAR <tên biến mảng> : <tên kiểu mảng>;
Ví dụ VAR A : ARRAY[1..10] OF ARRAY[1..4] OF word;
TYPE hello = ARRAY[1..10] OF ARRAY[1..3] OF string; VAR B : hello;
Các thao tác cơ bản
edit- Nhập mảng A gồm N phần tử:
Write('Số lượng phần tử: ');
readln(n);
write('Số lượng phần tử con : ');
readln(m);
For i:= 1 to n do
for ii:= 1 to m do
begin
write('[',i,',',ii,']','= ');
read(a[i,ii]);
end;
- In mảng ra màn hình:
For i:= 1 to n do for ii:= 1 to m do write(a[i,ii]); {bình thường}
For i:= n downto 1 do for ii:= m to 1 do write(a[i,ii]); {quay lui}
- Duyệt mảng:
For i:=1 to n do for ii:= 1 to m do <câu lệnh>;
For i:= n downto 1 do for ii:= m downto 1 do <câu lệnh>;
Ứng dụng
editMảng 1 chiều
edit- Dùng để làm việc chung với các số liệu có số lượng lớn.
- Áp dụng vào nhiều thuật toán.
Mảng 2 chiều
edit- Đa số là áp dụng vào ma trận.
- Thông tin con cho danh sách.