🔷 C#

العمليات الحسابية في C#

```html

ما هذا ولماذا؟

تخيل أنك تلعب لعبة كمبيوتر. لديك 5 أرواح. تجتاز مستوى وتجد صندوق إسعافات أولية يمنحك +3 أرواح. كم روحًا لديك الآن؟ صحيح، 8. هذه هي العملية الحسابية — الجمع.

في البرمجة، كما في الحياة، نحتاج باستمرار إلى حساب شيء ما: كم عدد النقاط التي سجلها اللاعب، كم من المال بقي في الحساب، بعد كم يوم سيأتي رأس السنة الجديدة. العمليات الحسابية هي العمليات الرياضية الأساسية (الجمع، الطرح، الضرب، القسمة) التي يمكن للكمبيوتر تنفيذها في لحظة.

لماذا تحتاج إلى معرفة هذا؟ إذا كنت تريد إنشاء ألعاب، أو آلات حاسبة، أو برامج لتتبع النفقات، أو حتى روبوتات محادثة بسيطة — سيتعين عليك استخدام الحساب باستمرار. الكمبيوتر بدونها يشبه الآلة الحاسبة بدون أزرار: قطعة معدنية عديمة الفائدة.

الصيغة وأمثلة الكود

في لغة C#، تبدو العمليات الحسابية تقريبًا كما في الرياضيات. إليك العلامات الأساسية:

  • + — الجمع
  • - — الطرح
  • * — الضرب (علامة النجمة، وليس علامة x)
  • / — القسمة (الشرطة المائلة)
  • % — باقي القسمة (غير واضح بعد؟ سنشرحه قريبًا)

دعنا نلقي نظرة على الأمثلة. تخيل أننا نكتب برنامجًا لحساب مصروف الجيب لتلميذ.

// مثال 1: جمع المال
int pocketMoney = 500; // كان لدى بيتيا 500 روبل
int giftFromGrandma = 200; // أعطته الجدة 200 روبل إضافية
int totalMoney = pocketMoney + giftFromGrandma; // نجمع
Console.WriteLine("أصبح لدى بيتيا: " + totalMoney + " روبل");
// الإخراج: أصبح لدى بيتيا: 700 روبل

هنا قمنا بإنشاء متغيرين (خلايا ذاكرة) بأرقام، وجمعناهما، وسجلنا النتيجة في متغير ثالث. كل شيء كما في الرياضيات: 500 + 200 = 700.

// مثال 2: طرح النفقات
int money = 1000; // كان لديه ألف
int iceCreamPrice = 150; // سعر المثلجات 150
int remaining = money - iceCreamPrice; // نطرح
Console.WriteLine("المتبقي: " + remaining + " روبل");
// الإخراج: المتبقي: 850 روبل

هنا نطرح سعر المثلجات من المال الموجود. يقوم الكمبيوتر بذلك في جزء من الميكروثانية.

// مثال 3: الضرب (كم المال في الأسبوع؟)
int dailyAllowance = 100; // 100 روبل في اليوم
int daysInWeek = 7;
int weeklyTotal = dailyAllowance * daysInWeek; // نضرب
Console.WriteLine("سيتراكم في الأسبوع: " + weeklyTotal + " روبل");
// الإخراج: سيتراكم في الأسبوع: 700 روبل

الضرب هو مجرد جمع متكرر. بدلاً من كتابة 100+100+100+100+100+100+100، نكتب 100 * 7. مريح، أليس كذلك؟

// مثال 4: القسمة (كم لكل صديق؟)
int totalCandies = 20; // 20 حلوى
int friends = 4; // 4 أصدقاء
int candiesPerFriend = totalCandies / friends; // نقسم
Console.WriteLine("لكل صديق: " + candiesPerFriend + " حلوى");
// الإخراج: لكل صديق: 5 حلوى

تعمل القسمة كالمعتاد، ولكن هناك خدعة: إذا قسمت أعدادًا صحيحة، ستكون النتيجة أيضًا عددًا صحيحًا. 20 / 4 = 5، كل شيء على ما يرام. ولكن ماذا عن 20 / 3؟ ستكون النتيجة 6، وليس 6.666... لأننا نعمل مع أعداد صحيحة (int). للأعداد الكسرية، نستخدم double أو float.

// مثال 5: باقي القسمة (من هو الزائد؟)
int totalCandies = 20;
int friends = 3;
int remainder = totalCandies % friends; // % هو باقي القسمة
Console.WriteLine("سيتبقى زائد: " + remainder + " حلوى");
// الإخراج: سيتبقى زائد: 2 حلوى

العامل % (النسبة المئوية) ليس في الواقع نسبة مئوية، بل هو باقي القسمة. 20 مقسومة على 3 — نحصل على 6 صحيح و 2 كباقي. هذا العامل مفيد جدًا عندما تحتاج إلى التحقق مما إذا كان الرقم زوجيًا أم لا (إذا كان الرقم % 2 == 0، فهو زوجي).

مقارنة مع Python

Python هي لغة برمجة شائعة أخرى. تبدو العمليات الحسابية فيها متشابهة جدًا، ولكن هناك بعض الاختلافات. دعنا نقارن:

العملية C# Python
الجمع int a = 5 + 3; a = 5 + 3
الطرح int b = 10 - 4; b = 10 - 4
الضرب int c = 6 * 7; c = 6 * 7
القسمة double d = 10.0 / 3; (تحتاج إلى نقطة) d = 10 / 3 (في Python 3 سيعطي 3.333...)
باقي القسمة int e = 10 % 3; e = 10 % 3
الرفع إلى قوة double f = Math.Pow(2, 3); (عبر Math) f = 2 ** 3 (ببساطة **)

الاختلافات الرئيسية:

  • في C#، تحتاج إلى تحديد نوع المتغير (int, double)، بينما في Python لا.
  • في C#، قسمة الأعداد الصحيحة تعطي نتيجة صحيحة (10 / 3 = 3)، بينما في Python 3 تعطي كسرية (10 / 3 = 3.333...).
  • في C#، للرفع إلى قوة تحتاج إلى استدعاء دالة خاصة Math.Pow، بينما في Python يوجد عامل بسيط **.
  • في C#، ينتهي كل أمر بفاصلة منقوطة (;)، بينما في Python لا.

مثال في Python للمقارنة:

# نسخة Python
pocket_money = 500
gift = 200
total = pocket_money + gift
print("أصبح لدى بيتيا:", total, "روبل")
# الإخراج: أصبح لدى بيتيا: 700 روبل

كما ترى، المنطق هو نفسه، ولكن الصيغة أبسط (بدون int، بدون ;). ومع ذلك، تمنحك C# تحكمًا أكبر في أنواع البيانات، مما يساعد على تجنب الأخطاء في البرامج الكبيرة.

الأخطاء النموذجية للمبتدئين

عندما تبدأ للتو، الأخطاء أمر طبيعي. إليك أكثر المزالق شيوعًا:

  1. نسيت الفاصلة المنقوطة
    int x = 5 — خطأ! يجب أن يكون: