☕ Java

عمليات الحساب — Java

```html

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

تخيل أنك أمين صندوق في متجر للحلويات. لديك صندوق به 10 قطع شوكولاتة، وجاء مشتري يريد شراء 3. كم سيبقى؟ وإذا تم توصيل 5 صناديق أخرى كل منها 10 قطع شوكولاتة غدًا — كم سيكون المجموع؟ لحساب ذلك، ليس من الضروري عد كل قطعة حلوى بإصبعك. يكفي إجراء العمليات الحسابية — الجمع والطرح والضرب والقسمة.

في Java، تبدو هذه العمليات تقريبًا كما في الرياضيات، لكن بدلاً من علامة الضرب «×» نكتب *، وبدلاً من علامة القسمة «÷» نكتب /. الكمبيوتر هو نفس أمين الصندوق، لكنه سريع جدًا ولا يخطئ أبدًا (إذا لم تخطئ أنت في الأمر).

لماذا نحتاج هذا في البرمجة؟ تخيل أنك تكتب لعبة حيث يجمع البطل العملات. كل ثانية تحتاج إلى إضافة عدد العملات المجمعة إلى رصيده. أو أنك تصنع آلة حاسبة لدروس الرياضيات. أو برنامجًا يحسب عدد الأيام المتبقية حتى رأس السنة الجديدة. في كل مكان تحتاج إلى عمليات حسابية.

في Java هناك 5 عمليات حسابية أساسية:

  • + — الجمع (كما في الرياضيات)
  • - — الطرح
  • * — الضرب
  • / — القسمة (لكن في Java هناك خدعة مع الأعداد الصحيحة)
  • % — باقي القسمة (هذا جديد! يظهر المقدار المتبقي إذا قسمنا بدون كسر)

دعنا نتفق فورًا: في Java، كما في Python، هناك أنواع بيانات. للأعداد، غالبًا ما نستخدم int (الأعداد الصحيحة، مثل 5، -3، 100) و double (الأعداد الكسرية، مثل 3.14، -0.5). إذا قمت بخلطهم في عملية واحدة — ستتعامل Java مع الأمر بنفسها، لكن هذا يؤدي أحيانًا إلى نتائج غير متوقعة (سنناقش هذا في الأخطاء).

على عكس Python، حيث يمكنك ببساطة كتابة print(2 + 3) وسيعمل كل شيء، في Java تحتاج أولاً إلى إنشاء كلاس وطريقة main. لا تخف — هذا مجرد «وعاء» لبرنامجك. جميع الأمثلة أدناه ستكون داخل هذا الوعاء.

أمثلة كود مع شرح

مثال 1: الجمع والطرح (كما في الحياة)

تخيل أن لديك 15 روبلًا، وجدت 7 روبلات أخرى، ثم أنفقت 10 على آيس كريم. كم تبقى؟

public class Main {
    public static void main(String[] args) {
        // نعلن عن المتغيرات — هذه مثل صناديق صغيرة عليها ملصقات
        int bylo = 15;          // كان لديك 15 روبلًا
        int nashel = 7;         // وجدت 7 روبلات
        int potratil = 10;      // أنفقت 10 روبلات

        // نحسب: كان + وجد - أنفق
        int ostalos = bylo + nashel - potratil;

        // نعرض النتيجة على الشاشة
        // في Java للعرض نستخدم System.out.println()
        System.out.println("تبقى لديك: " + ostalos + " روبلًا");
        // على الشاشة سيظهر: تبقى لديك: 12 روبلًا
    }
}

كيف يعمل هذا: تنفذ Java العمليات من اليسار إلى اليمين، كما في الرياضيات. أولاً 15 + 7 = 22، ثم 22 - 10 = 12. يتم حفظ النتيجة في المتغير ostalos. علامة + في System.out.println تُستخدم لربط النص والأرقام — وهذا يسمى الدمج (Concatenation). في Python، يُستخدم الفاصلة أو f-strings لهذا، بينما في Java تُستخدم علامة الجمع.

مثال 2: الضرب (حساب مساحة الغرفة)

قررت معرفة عدد الأمتار المربعة في غرفتك. الطول — 6 أمتار، العرض — 4 أمتار.

public class Main {
    public static void main(String[] args) {
        int dlina = 6;
        int shirina = 4;

        // الضرب: المساحة = الطول * العرض
        int ploshad = dlina * shirina;

        System.out.println("مساحة الغرفة: " + ploshad + " متر مربع");
        // الإخراج: مساحة الغرفة: 24 متر مربع

        // والآن لنحسب المحيط: (الطول + العرض) * 2
        int perimetr = (dlina + shirina) * 2;
        System.out.println("محيط الغرفة: " + perimetr + " متر");
        // الإخراج: محيط الغرفة: 20 متر
    }
}

انتبه إلى الأقواس! في Java، كما في الرياضيات، يتم تنفيذ العمليات داخل الأقواس أولاً. إذا كتبنا dlina + shirina * 2، فسيتم ضرب 4 في 2 أولاً (لنحصل على 8)، ثم يضاف 6 — ليكون الناتج 14، وليس 20. الأقواس تغير الترتيب!

في Python، تعمل الأقواس بنفس الطريقة تمامًا — هذه قاعدة عامة لجميع لغات البرمجة.

مثال 3: القسمة وباقي القسمة (تقسيم البيتزا)

لديك 23 قطعة بيتزا، و5 أصدقاء. كم قطعة سيحصل عليها كل واحد إذا تم التقسيم بالتساوي؟ كم سيبقى لك؟

public class Main {
    public static void main(String[] args) {
        int kuskov = 23;
        int druzei = 5;

        // القسمة الصحيحة: 23 / 5 = 4 (الباقي 3)
        // Java تتجاهل الجزء الكسري إذا كان كلا الرقمين صحيحين!
        int kazhdomu = kuskov / druzei;
        System.out.println("كل صديق سيحصل على: " + kazhdomu + " قطعة");
        // الإخراج: كل صديق سيحصل على: 4 قطع

        // باقي القسمة: 23 % 5 = 3
        int ostatok = kuskov % druzei;
        System.out.println("سيتبقى لك: " + ostatok + " قطعة");
        // الإخراج: سيتبقى لك: 3 قطع

        // التحقق: 4 * 5 + 3 = 23 — كل شيء صحيح!
    }
}

نقطة مهمة: في Java، إذا قمت بقسمة عدد صحيح على عدد صحيح، ستكون النتيجة أيضًا عددًا صحيحًا — يتم تجاهل الجزء الكسري ببساطة (لا يتم تقريبه، بل يتم تجاهله!). 23 / 5 = 4، وليس 4.6. إذا كنت بحاجة إلى نتيجة كسرية، يجب أن يكون رقم واحد على الأقل كسريًا (على سبيل المثال، 23.0 / 5 أو 23 / 5.0). في Python 3، قسمة الأعداد الصحيحة تعطي نتيجة كسرية افتراضيًا، وللقسمة الصحيحة يُستخدم //. في Java لا يوجد مثل هذا العامل — يجب تحديد النوع بوضوح.

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

```