عملگرها

عملگرهای حسابی، مقایسه‌ای و منطقی در پاسکال و قوانین اولویت آن‌ها.

سه دسته عملگر

۱. عملگرهای حسابی

عملگرعملمثالنتیجه
+جمع7 + 29
-تفریق7 - 25
*ضرب7 * 214
/تقسیم (همیشه real)7 / 23.5
divتقسیم صحیح7 div 23
modباقیمانده7 mod 21

۲. عملگرهای مقایسه‌ای

عملگرمعنیمثالنتیجه
=مساوی5 = 5true
<>نامساوی5 <> 3true
<کوچک‌تر3 < 5true
>بزرگ‌تر3 > 5false
<=کوچک‌تر یا مساوی5 <= 5true
>=بزرگ‌تر یا مساوی3 >= 5false
توجه: = مقایسه است اما := تخصیص! برعکس C که = و == است.

۳. عملگرهای منطقی

عملگرمعنیمثالنتیجه
andو (هر دو)(5>3) and (2>4)false
orیا (حداقل یکی)(5>3) or (2>4)true
notنقیضnot (5>3)false
xorیای انحصاریtrue xor truefalse

اولویت عملگرها

مثل ریاضی: اول ضرب/تقسیم، بعد جمع/تفریق:

writeln(2 + 3 * 4);     { 14 — نه 20! }
writeln((2 + 3) * 4);   { 20 — پرانتز اولویت را عوض می‌کند }
اولویتعملگرها
۱ (بالاترین)not، منفی یکانی (-)
۲* / div mod and shl shr
۳+ - or xor
۴ (پایین‌ترین)= <> < > <= >=
وقتی شک دارید، پرانتز بگذارید! (a + b) * c همیشه واضح‌تر از اتکا به اولویت‌هاست.

عملگرهای بیتی (پیشرفته)

writeln(1 shl 3);    { 8 — شیفت چپ: 1×2³ }
writeln(16 shr 2);   { 4 — شیفت راست: 16÷2² }
writeln(12 and 10);  { 8 — AND بیتی }
writeln(12 or 10);   { 14 — OR بیتی }

مثال: شرط‌های مرکب

var age: integer;
begin
  age := 20;
  { آیا نوجوان است؟ بین ۱۳ تا ۱۹ }
  if (age >= 13) and (age <= 19) then
    writeln('نوجوان')
  else
    writeln('نوجوان نیست');

  { آیا کودک یا سالمند است؟ }
  if (age < 13) or (age > 64) then
    writeln('کودک یا سالمند');
end;

خلاصه

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

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