Skip to content

الفصل 15: مشاريع عملية

📖 المستوى: متوسط  |  ⏱ الوقت المقدّر: 90 دقيقة  |  📝 مشاريع: 3

ما ستتعلم في هذا الفصل

  • بناء مشاريع كاملة من الصفر
  • تطبيق المفاهيم المتعلمة عملياً
  • أفضل الممارسات في تنظيم الكود

المشروع 1: آلة حاسبة متقدمة

sad
صنف حاسبة
    متغير السجل = []

    دالة احسب(تعبير)
        # تقييم التعبير وحفظ في السجل
        متغير أجزاء = تعبير.قسم(" ")
        متغير أ = رقم(أجزاء[0])
        متغير عملية = أجزاء[1]
        متغير ب = رقم(أجزاء[2])

        متغير نتيجة = 0
        طابق (عملية)
            عندما "+":
                نتيجة = أ + ب
            عندما "-":
                نتيجة = أ - ب
            عندما "*":
                نتيجة = أ * ب
            عندما "/":
                إذا (ب == 0)
                    ارمي "قسمة على صفر!"
                نهاية
                نتيجة = أ / ب
            افتراضي:
                ارمي "عملية غير معروفة"
        نهاية

        هذا.السجل.أضف(تعبير + " = " + نتيجة)
        ارجع نتيجة
    نهاية

    دالة السجل_الكامل()
        اطبع_سطر("=== سجل العمليات ===")
        لكل عملية في هذا.السجل
            اطبع_سطر(عملية)
        نهاية
    نهاية
نهاية

متغير ح = جديد حاسبة()
اطبع_سطر(ح.احسب("10 + 5"))
اطبع_سطر(ح.احسب("20 * 3"))
ح.السجل_الكامل()

المشروع 2: نظام إدارة طلاب

sad
صنف طالب
    متغير اسم
    متغير رقم
    متغير درجات = {}

    باني(اسم، رقم)
        هذا.اسم = اسم
        هذا.رقم = رقم
    نهاية

    دالة أضف_درجة(مادة، درجة)
        هذا.درجات[مادة] = درجة
    نهاية

    دالة المعدل()
        متغير مجموع = 0
        متغير عدد = 0
        لكل مادة في هذا.درجات
            مجموع = مجموع + هذا.درجات[مادة]
            عدد = عدد + 1
        نهاية
        إذا (عدد == 0)
            ارجع 0
        نهاية
        ارجع مجموع / عدد
    نهاية
نهاية

صنف نظام_طلاب
    متغير الطلاب = []

    دالة سجّل(طالب)
        هذا.الطلاب.أضف(طالب)
        اطبع_سطر("✅ تم تسجيل " + طالب.اسم)
    نهاية

    دالة الأوائل(عدد)
        # فرز حسب المعدل تنازلياً
        متغير مرتبون = هذا.الطلاب
        # فرز بسيط
        متغير ن = طول(مرتبون)
        متغير ي = 0
        بينما (ي < ن - 1)
            متغير ج = 0
            بينما (ج < ن - ي - 1)
                إذا (مرتبون[ج].المعدل() < مرتبون[ج + 1].المعدل())
                    متغير م = مرتبون[ج]
                    مرتبون[ج] = مرتبون[ج + 1]
                    مرتبون[ج + 1] = م
                نهاية
                ج = ج + 1
            نهاية
            ي = ي + 1
        نهاية

        اطبع_سطر("=== أوائل الطلاب ===")
        متغير ف = 0
        بينما (ف < عدد و ف < طول(مرتبون))
            اطبع_سطر((ف + 1) + ". " + مرتبون[ف].اسم +
                       " — معدل: " + مرتبون[ف].المعدل())
            ف = ف + 1
        نهاية
    نهاية
نهاية

# الاستخدام
متغير نظام = جديد نظام_طلاب()

متغير ط1 = جديد طالب("أحمد"، "001")
ط1.أضف_درجة("رياضيات"، 95)
ط1.أضف_درجة("فيزياء"، 88)
نظام.سجّل(ط1)

متغير ط2 = جديد طالب("سارة"، "002")
ط2.أضف_درجة("رياضيات"، 98)
ط2.أضف_درجة("فيزياء"، 92)
نظام.سجّل(ط2)

نظام.الأوائل(3)

المشروع 3: لعبة تخمين الأرقام

sad
دالة لعبة_التخمين()
    متغير السر = 42  # في الواقع يمكن استخدام عشوائي()
    متغير محاولات = 0
    متغير فاز = خطأ

    اطبع_سطر("🎮 لعبة تخمين الأرقام!")
    اطبع_سطر("خمّن رقماً بين 1 و 100")

    بينما (ليس فاز)
        متغير تخمين = رقم(اقرأ("تخمينك: "))
        محاولات = محاولات + 1

        إذا (تخمين == السر)
            فاز = صحيح
            اطبع_سطر("🎉 أحسنت! خمّنت الرقم في " + محاولات + " محاولات!")
        وإلا
            إذا (تخمين < السر)
                اطبع_سطر("⬆️ الرقم أكبر")
            وإلا
                اطبع_سطر("⬇️ الرقم أصغر")
            نهاية
        نهاية
    نهاية
نهاية

لعبة_التخمين()

مُرخَّص بموجب رخصة MIT