آرایه‌ها (Arrays)

آرایه یک‌بعدی: تعریف array[1..n] of، دسترسی با ایندکس، پیمایش و الگوهای رایج.

مشکل: ۱۰۰ متغیر؟!

اگر نمره ۱۰۰ دانش‌آموز را بخواهید نگه دارید، ۱۰۰ متغیر جدا نمی‌سازید! آرایه یعنی یک اسم برای دنباله‌ای از خانه‌های هم‌نوع — مثل واگن‌های قطار که هرکدام شماره دارند.

تعریف آرایه

var
  scores: array[1..5] of integer;   { ۵ خانه عددی، ایندکس ۱ تا ۵ }
ایندکس آرایه در پاسکال از شما شروع می‌شود — نه لزوماً صفر! array[1..5] یعنی خانه‌های ۱، ۲، ۳، ۴، ۵. می‌توانید array[0..4] یا حتی array[10..20] هم داشته باشید.

استفاده از آرایه

program Arrays;
var
  scores: array[1..5] of integer;
begin
  scores[1] := 18;    { نوشتن در خانه ۱ }
  scores[2] := 15;
  scores[3] := 20;
  scores[4] := 12;
  scores[5] := 17;

  writeln(scores[3]);          { خواندن خانه ۳ — 20 }
  writeln(scores[1] + scores[2]);  { 33 }
end.

پیمایش آرایه با حلقه

var
  scores: array[1..5] of integer;
  i: integer;
begin
  { پر کردن }
  for i := 1 to 5 do
    scores[i] := i * 3;

  { چاپ }
  for i := 1 to 5 do
    writeln('scores[', i, '] = ', scores[i]);
end.

مثال: میانگین نمرات

program Avg;
var
  scores: array[1..5] of integer;
  i, sum: integer;
begin
  scores[1] := 18; scores[2] := 15; scores[3] := 20;
  scores[4] := 12; scores[5] := 17;

  sum := 0;
  for i := 1 to 5 do
    sum := sum + scores[i];

  writeln('Sum: ', sum);
  writeln('Average: ', sum / 5:0:2);
end.

مثال: بزرگ‌ترین عنصر

var
  a: array[1..6] of integer;
  i, maxVal: integer;
begin
  { مقداردهی }
  for i := 1 to 6 do
    a[i] := 0;   { یا مقادیر دلخواه }

  maxVal := a[1];
  for i := 2 to 6 do
    if a[i] > maxVal then
      maxVal := a[i];
  writeln('Max: ', maxVal);
end;
الگوی یافتن بزرگ‌ترین: اول فرض کن اولین بزرگ‌ترین است، بعد بقیه را با آن مقایسه کن و در صورت لزوم به‌روزرسانی کن.

length — طول آرایه

writeln(length(scores));   { 5 — تعداد خانه‌ها }

خطای رایج: خارج از محدوده!

دسترسی به ایندکس خارج از محدوده خطاست (در کامپایلر واقعی با Range Check فعال، خطای اجرا):
var a: array[1..5] of integer;
begin
  a[6] := 1;   { ❌ خانه ۶ وجود ندارد! }
end;

خلاصه

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

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