PASCAL/Mảng

From Wikiversity

Mảng 1 chiều[edit]

Khá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:
  1. Kiểu của các phần tử
  2. 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[edit]

Trực tiếp Gián tiếp
Cú pháp
VAR <tên biến mng> : ARRAY[<ch s đầu>..<ch s cui>] OF <kiu d liu>;
TYPE <tên kiu mng> = ARRAY[<ch s đầu>..<ch s cui>] OF <kiu d liu>;
VAR  <tên biến mng> : <tên kiu mng>;
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 lnh>;
For i:= n downto 1 do <câu lnh>;


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:
  1. Kiểu của các phần tử
  2. Số lượng phần tử con của mỗi phần tử
  3. Cách đánh số của các phần tử con

VD:

Phần tử
1
2
3
...
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[edit]

Trực tiếp Gián tiếp
Cú pháp
VAR <tên biến mng> : ARRAY[<ch s đầu>..<ch s cui>] OF ARRAY[<ch s đầu>..<ch s cui>] OF <kiu d liu>;
TYPE <tên kiu mng> = ARRAY[<ch s đầu>..<ch s cui>] OF ARRAY[<ch s đầu>..<ch s cui>] OF <kiu d liu>;
VAR  <tên biến mng> : <tên kiu mng>;
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 lnh>;
For i:= n downto 1 do for ii:= m downto 1 do <câu lnh>;

Ứng dụng[edit]

Mả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.