اذهب إلى المحتوى

السؤال

نشر

السلام عليكم, لدي سؤال ,  مثلا لو اردت ان اعمل برنامج يطلب من الطالب الجامعي ان يدخل عدد المواد الدراسية التي درسها فمثلا ان كان الطالب قد درس 15 مادة فيكتب 15 ويطلب منه البرنامج ان يدخل الدرجة التي حصل عليها في كل المواد (من A+ الى F) ويدخل ايضا عدد ساعات تلك المادة, وان كان قد درس 20 مادة فيطلب منه البرنامج ان يدخل درجات تلك المواد مع الساعات الدراسية لكل مادة فكيف اقدر اسويه؟ 

Recommended Posts

  • 0
نشر

عليك تقسيم المطلوب إلى أجزاء، بمعنى عليك إنشاء دالة ستكون هي البرنامج، ثم بداخلها  أولاً سنقوم بإنشاء num_courses وهو متغير صحيح أي integer  يخزن عدد المواد الدراسية التي درسها الطالب أي يجب تحويل القيمة المدخلة من المستخدم إلى integer، وسيتم الحصول علي قيمته من المستخدم من خلال الدالة المسؤولة عن ذلك في بايثون وهي input.

ولا تنسى التحقق من الإدخال صحيح بوضع شرط للتحقق من ذلك،  أي نتأكد من أن الإدخال هو رقم صحيح باستخدام حلقة while و try-except للتعامل مع حالات الخطأ.

والآن انتهينا من الجزء الخاص بإدخال المستخدم.

ثم سنستخدم قاموسًا حيث يكون مفتاح كل عنصر هو رقم المادة (1, 2, 3, ...)، والقيمة هي قاموس آخر يحتوي على الدرجة وعدد الساعات.

بعد ذلك نستخدم حلقة for لإعادة العملية لعدد المواد التي أدخلها الطالب. في كل دورة، نطلب من الطالب إدخال الدرجة وعدد الساعات،  ونستخدم try-except للتعامل مع حالات إدخال خاطئة (مثل إدخال حرف بدلاً من رقم)، ثم نقوم بتحويل الدرجات إلى قيم رقمية (مثلاً A+ = 4.0, A = 4.0, B+ = 3.5, ... , F = 0.0).

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

ثم نطبع المعدل التراكمي المحسوب.

ويمكنك تجاهل خطوة معالجة الأخطاء في الوقت الحالي والتركيز على كتابة المنطق الأساسي الخاص بالبرنامج.

  • 0
نشر

يمكن ذلك من خلال اتباع عدة خطوات، أولا يجب إنشاء دالة رئيسية هي التي ستتولى إدارة البرنامج وفي داخل هذه الدالة يمكنك استخدام دالة input() لطلب عدد المواد الدراسية من الطالب، مع التأكد من أن المدخل هو عدد صحيح أكبر من صفر باستخدام حلقة while للتحقق من صحة المدخلات الخطوة التالية هي إنشاء قاموس لتخزين معلومات كل مادة، حيث سيكون لكل مادة مفتاح فريد يمثل رقم المادة وقيمة تتضمن درجة المادة وعدد ساعاتها وهنا سيخطر ببالك استخدام حلقة for لطلب الدرجات وعدد الساعات لكل مادة، مع التحقق من صحة إدخالات الساعات باستخدام try-except للتأكد من أنها أرقام صحيحة أم لا وبعد إدخال جميع البيانات، يمكنك طباعة المعلومات المدخلة.

يمكنك إيجاد ما ترغب فيه وأكثر من خلال دروس موسوعة حسوب في بايثون: لغة بايثون Python.

  • 0
نشر
بتاريخ On 11‏/10‏/2024 at 17:20 قال Mustafa Suleiman:

عليك تقسيم المطلوب إلى أجزاء، بمعنى عليك إنشاء دالة ستكون هي البرنامج، ثم بداخلها  أولاً سنقوم بإنشاء num_courses وهو متغير صحيح أي integer  يخزن عدد المواد الدراسية التي درسها الطالب أي يجب تحويل القيمة المدخلة من المستخدم إلى integer، وسيتم الحصول علي قيمته من المستخدم من خلال الدالة المسؤولة عن ذلك في بايثون وهي input.

ولا تنسى التحقق من الإدخال صحيح بوضع شرط للتحقق من ذلك،  أي نتأكد من أن الإدخال هو رقم صحيح باستخدام حلقة while و try-except للتعامل مع حالات الخطأ.

والآن انتهينا من الجزء الخاص بإدخال المستخدم.

ثم سنستخدم قاموسًا حيث يكون مفتاح كل عنصر هو رقم المادة (1, 2, 3, ...)، والقيمة هي قاموس آخر يحتوي على الدرجة وعدد الساعات.

بعد ذلك نستخدم حلقة for لإعادة العملية لعدد المواد التي أدخلها الطالب. في كل دورة، نطلب من الطالب إدخال الدرجة وعدد الساعات،  ونستخدم try-except للتعامل مع حالات إدخال خاطئة (مثل إدخال حرف بدلاً من رقم)، ثم نقوم بتحويل الدرجات إلى قيم رقمية (مثلاً A+ = 4.0, A = 4.0, B+ = 3.5, ... , F = 0.0).

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

ثم نطبع المعدل التراكمي المحسوب.

ويمكنك تجاهل خطوة معالجة الأخطاء في الوقت الحالي والتركيز على كتابة المنطق الأساسي الخاص بالبرنامج.

شكرا لك على التوضيح دكتور, هل يمكنك تقديم كود يوضح طريقة العمل لتتضح الفكرة اكثر 

  • 0
نشر
بتاريخ الآن قال Ahmad Allouh:

شكرا لك على التوضيح دكتور, هل يمكنك تقديم كود يوضح طريقة العمل لتتضح الفكرة اكثر 

حاول القيام بالأمر حتى لو ظهرت أخطاء المهم المحاولة، وسيتم إرشادك للطريقة الصحيحة عند توفير الكود، قم بحل جزء من المطلوب مثلاً

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...