Arithmetic Operators

في لغة Dart، تُستخدم العوامل الحسابية لإجراء العمليات الرياضية الأساسية مثل الجمع، الطرح، الضرب، القسمة، وغيرها.
هذه العوامل تعمل مع أنواع البيانات الرقمية مثل int و double.

1. العوامل الحسابية الأساسية

العاملالوصفمثالالناتج
+جمع رقمين5 + 38
-طرح رقمين10 - 46
*ضرب رقمين7 * 214
/قسمة رقمين (تعطي double)10 / 25.0
~/قسمة صحيحة (تعطي int)10 ~/ 33
%باقي القسمة (المودولو)10 % 31

أمثلة عملية:

void main() {
  int a = 10;
  int b = 3;

  print(a + b);   // 13 (جمع)
  print(a - b);    // 7 (طرح)
  print(a * b);    // 30 (ضرب)
  print(a / b);    // 3.333... (قسمة عادية)
  print(a ~/ b);   // 3 (قسمة صحيحة)
  print(a % b);    // 1 (باقي القسمة)
}
Dart

2. العوامل التزايدية والتناقصية (Increment & Decrement)

هما العوامل التي تستخدم لزيادة أو إنقاص قيمة المتغير بعدد ثابت (غالبًا 1).

النقصان: --

الزيادة: ++

✅ أنواعها:

يوجد نوعان لكل منهما:

  1. الزيادة/النقصان قبل (Prefix): ++x أو --x
  2. الزيادة/النقصان بعد (Postfix): x++ أو x--
العاملالوصفمثالالناتج
++varزيادة قيمة المتغير قبل استخدامه++xx + 1
var++زيادة قيمة المتغير بعد استخدامهx++x (ثم يزيد لاحقًا)
--varإنقاص قيمة المتغير قبل استخدامه--xx - 1
var--إنقاص قيمة المتغير بعد استخدامهx--x (ثم ينقص لاحقًا)
void main() {
  int x = 5;

  print(++x); // 6 (يزيد أولًا ثم يطبع)
  print(x++); // 6 (يطبع أولًا ثم يزيد لاحقًا)
  print(x);   // 7 (القيمة بعد الزيادة)

  print(--x); // 6 (ينقص أولًا ثم يطبع)
  print(x--); // 6 (يطبع أولًا ثم ينقص لاحقًا)
  print(x);   // 5 (القيمة بعد التنقيص)
}
Dart

3. العوامل المركبة (Compound Assignment Operators)

تجمع بين العملية الحسابية والتعيين في خطوة واحدة.

العاملالوصفمثالالمعنى
+=جمع ثم تعيينx += 3x = x + 3
-=طرح ثم تعيينx -= 2x = x - 2
*=ضرب ثم تعيينx *= 4x = x * 4
/=قسمة ثم تعيين (double)x /= 2x = x / 2
~/=قسمة صحيحة ثم تعيينx ~/= 3x = x ~/ 3
%=باقي القسمة ثم تعيينx %= 3x = x % 3

أمثلة:

void main() {
  int num = 10;

  num += 5;   // num = num + 5 → 15
  print(num); // 15

  num ~/= 3;  // num = num ~/ 3 → 5
  print(num); // 5

  num %= 2;   // num = num % 2 → 1
  print(num); // 1
}
Dart

4. أمثلة تطبيقية على العمليات الحسابية

مثال 1: حساب متوسط عددين

void main() {
  double num1 = 15.5;
  double num2 = 20.3;

  double average = (num1 + num2) / 2;
  print("المتوسط هو: $average"); // 17.9
}
Dart

مثال 2: التحويل من فهرنهايت إلى مئوية

void main() {
  double fahrenheit = 77;
  double celsius = (fahrenheit - 32) * 5 / 9;

  print("$fahrenheit°F = ${celsius.toStringAsFixed(1)}°C"); // 77°F = 25.0°C
}
Dart

مثال 3: حساب باقي القسمة (لتحديد الأرقام الزوجية والفردية)

void main() {
  int number = 7;

  if (number % 2 == 0) {
    print("العدد زوجي");
  } else {
    print("العدد فردي"); // هذا ما سيتم طباعته
  }
}
Dart
الخلاصة:
العمليةالعاملمثالالناتج
الجمع+5 + 38
الطرح-10 - 46
الضرب*7 * 214
القسمة العادية/10 / 33.333...
القسمة الصحيحة~/10 ~/ 33
باقي القسمة%10 % 31
الزيادة المسبقة++xint x=5; print(++x);6
الزيادة اللاحقةx++int x=5; print(x++);5 (ثم يصبح 6)
التنقيص المسبق--xint x=5; print(--x);4
التنقيص اللاحقx--int x=5; print(x--);5 (ثم يصبح 4)

تُستخدم هذه العوامل بكثرة في البرمجة لحساب القيم، تحديث المتغيرات، ومعالجة البيانات الرياضية.