آرایههای چندبعدی
آرایه دوبعدی (ماتریس) و چندبعدی: تعریف، پیمایش با حلقه تودرتو و کاربردها.
از خط به صفحه!
آرایه یکبعدی مثل یک ردیف است. آرایه دوبعدی مثل یک جدول — سطر و ستون دارد. به آن ماتریس هم میگویند.
تعریف آرایه دوبعدی
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; { مکعب ۳×۳×۳ }
تا هر بعدی که بخواهید ممکن است — اما معمولاً بیش از ۲-۳ بعد لازم نمیشود.
خلاصه
- دوبعدی = جدول:
array[1..r, 1..c] of نوع - دسترسی:
m[سطر, ستون] - پیمایش = حلقه تودرتو (بیرونی سطر، داخلی ستون)
- کاربرد: ماتریس، صفحه بازی، تصویر
این مبحث بخشی از دوره آموزش کامل پاسکال است.