آرایه‌های چندبعدی

آرایه دوبعدی (ماتریس) و چندبعدی: تعریف، پیمایش با حلقه تودرتو و کاربردها.

از خط به صفحه!

آرایه یک‌بعدی مثل یک ردیف است. آرایه دوبعدی مثل یک جدول — سطر و ستون دارد. به آن ماتریس هم می‌گویند.

تعریف آرایه دوبعدی

var
  grid: array[1..3, 1..4] of integer;   { ۳ سطر × ۴ ستون }

معادل تعریف جایگزین:

var
  grid: array[1..3] of array[1..4] of integer;

دسترسی: [سطر, ستون]

grid[2, 3] := 42;   { سطر ۲، ستون ۳ }

پیمایش با حلقه تودرتو

program Matrix;
var
  m: array[1..3, 1..4] of integer;
  i, j: integer;
begin
  { پر کردن: حاصل‌ضرب ایندکس‌ها }
  for i := 1 to 3 do
    for j := 1 to 4 do
      m[i, j] := i * 10 + j;

  { چاپ به شکل جدول }
  for i := 1 to 3 do
  begin
    for j := 1 to 4 do
      write(m[i, j]:5);
    writeln;
  end;
end.

خروجی:

   11   12   13   14
   21   22   23   24
   31   32   33   34

مثال: جمع دو ماتریس

var
  a, b, c: array[1..2, 1..2] of integer;
  i, j: integer;
begin
  a[1,1] := 1; a[1,2] := 2; a[2,1] := 3; a[2,2] := 4;
  b[1,1] := 5; b[1,2] := 6; b[2,1] := 7; b[2,2] := 8;

  for i := 1 to 2 do
    for j := 1 to 2 do
      c[i, j] := a[i, j] + b[i, j];

  for i := 1 to 2 do
  begin
    for j := 1 to 2 do
      write(c[i, j]:5);
    writeln;
  end;
end.

مثال: صفحه بازی دوز (Tic-Tac-Toe)

var
  board: array[1..3, 1..3] of char;
  i, j: integer;
begin
  { خالی کردن }
  for i := 1 to 3 do
    for j := 1 to 3 do
      board[i, j] := '.';

  board[1, 1] := 'X';
  board[2, 2] := 'O';
  board[3, 1] := 'X';

  for i := 1 to 3 do
  begin
    for j := 1 to 3 do
      write(board[i, j], ' ');
    writeln;
  end;
end.

آرایه سه‌بعدی و بیشتر

var
  cube: array[1..3, 1..3, 1..3] of integer;   { مکعب ۳×۳×۳ }
تا هر بعدی که بخواهید ممکن است — اما معمولاً بیش از ۲-۳ بعد لازم نمی‌شود.

خلاصه

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط