Bước tới nội dung

Học Pascal/Mảng

Tủ sách mở Wikibooks

Mảng 1 chiều

[sửa]

Khái niệm

[sửa]
  • Mảng một chiều là một dãy hữu hạn các phần tử có 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

[sửa]
Trự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

[sửa]
  • 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 cần chạy>;
For i:= n downto 1 do <câu lệnh cần chạy>;


Mảng 2 chiều

Khái niệm

[sửa]
  • 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

[sửa]
Trự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

[sửa]
  • 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

[sửa]

Mảng 1 chiều

[sửa]
  • 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

[sửa]
  • Đa số là áp dụng vào ma trận.
  • Thông tin con cho danh sách.

Học Pascal/Kiểu tệp-->