الفصل 15: مشاريع عملية
ما ستتعلم في هذا الفصل
- بناء مشاريع كاملة من الصفر
- تطبيق المفاهيم المتعلمة عملياً
- أفضل الممارسات في تنظيم الكود
المشروع 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
إذا (تخمين == السر)
فاز = صحيح
اطبع_سطر("🎉 أحسنت! خمّنت الرقم في " + محاولات + " محاولات!")
وإلا
إذا (تخمين < السر)
اطبع_سطر("⬆️ الرقم أكبر")
وإلا
اطبع_سطر("⬇️ الرقم أصغر")
نهاية
نهاية
نهاية
نهاية
لعبة_التخمين()