آرایهها (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;
خلاصه
array[شروع..پایان] of نوع— ایندکس از شما تعیین میشود- دسترسی با
اسم[ایندکس] - پیمایش با for — بهترین دوست آرایه
- مراقب خارج از محدوده باشید
این مبحث بخشی از دوره آموزش کامل پاسکال است.