السلام عليكم
اخواني استمرارا لدراسة هذه اللغة الرائعة
واجهت سؤالاً 3 أيام كاملة وهو يحيّرني ولم اعرف كيف ابدأ به
السؤال كالتالي:
في احدى المتنزهات قاموا بتجديد الألعاب في المتنزه
نتيجة للضغط قررت ادارة المتنزه ان لا تقوم بتشغيل كل الأجهزة في نفس الوقت وان تحدد لكل لعبة ايام وساعات خاصة لتشغيلها.
قررت ادارة المتنزه ان تقوم ببرمجة برنامج الذي يقدّم للزوار معلومات عامة عن ساعات تشغيل الألعاب المختلفة في المتنزه.
زوار المتنزه يقوم بمساعدة هذا البرنامج ليقرروا في أي ايام يفضلون زيارة المتنزه حسب ساعات تشغيل الألعاب.
وايضا يمكن للزوار ان يحصلوا على المعلومات التي يحتاجونها عن أوقات تشغيل الألعاب والسعر يُحدّد حسب النشاط في المتنزّه في الساعات التي يريد الزائر زيارة المتنزه.
زمن افتتاح كل لعبة في المتنزه يتغير من اسبوع لآخر لكن معلوم ان الأوقات الممكنة لتشغيل الألعاب هي من يوم الأحد (A) حتى يوم الخميس (E) بين الساعات 10:00-18:00 (في الساعة 18:00 المتنزه يقفل لذلك المتنزه على الأكثر يكون مفتوح يوميا على الأكثر 8 ساعات).
معلومات اوقات تشغيل الألعاب المختلفة في المتنزّه في اسبوع معين يتم ادخالها عن طريق ملف تكست باسم facilitiesInfo.txt حسب المبنى التالي:
في السطر الأول يظهر رقم الذي يصف عدد الألعاب التي تفاصيلها ظاهرة في الملف.
ابتداء من السمطر الثاني، كل سطر في ملف التكست يحتوي تفاصيل عن لعبة واحد فقط.
المعطيات التي في كل سطر هي: رقم اللعبة (رفم كامل)، اليوم الاول في الاسبوع الذي فيه يتم افتتاح اللعبة، رقم الأيام على التوالي ابتداء من اليوم الاول ابتداء من يوم الافتتاح التي فيها يتم تشغيل اللعبة، سعر استخدام اللعبة (خلال ساعة واحدة) وساعات تشغيل اللعبة (ساعات تشغيل اللعبة متشابهة بكل الايام التي فيها يتم تشغيل اللعبة).
مثال:
لعبة رقم 113 (الذي يظهر في السطر الثاني في ملف التكست) يتم تشغيله في يوم الأحد (A)، لمدة أربعة ايام (بمعنى من يوم الأحد حتى الأربعاء A-E) ساعة استخدام اللعبة هو 15.5 دولار وساعات تشغيل اللعبة في هذه الأيام هو من الساعة 12:00 حتى الساعى 15:00 (اللعبة تعمل لمدة 3 ساعات).
على البرنامج ان يقوم بحساب وطباعة المعلومات التالية:
1) لكل يوم في الأسبوع يجب طباعة الساعات "الميتة" وعددها الكلي. ساعة ميتة هي ساعة لا يوجد أي لعبة تعمل.
2) في كل ساعة من ساعات افتتاح المتنزه يجب حساب وطباعة كم لعبة تعمل خلال نفس الساعة خلال الاسبوع، وما هو معدل سعر استعمال لعبة واحدة في نفس الساعة. السعر المعدل يتم طباعته فقط في حالة انه يوجد ألعاب تعمل في نفس الساعة.
3) اليوم الذي يعمل فيه اكبر عدد من الألعاب. اذا كان هناك اكثر من يوم يجب طباعة كل هذه الأيام.
4) الساعة، من بين كل الساعات التي يكون فيها المتنزه مفتوح، التي فيها اكبر عدد من الألعاب تعمل، ان كان اكثر من ساعة واحدة يجب طباعة كل هذه الساعات. ويجب طباعة عدد الألعاب التي تعمل في هذه الساعة، ولكل ساعة يجب طباعة هذا اليوم وطباعة الساعة.
5) على كل زائر ان يدخل ايام الأسبوع ومجال الساعات التي يريد فيها الزائر ان يزور المتنزّه وان يقوم البرنامج باخباره عن اليوم "من بين الأيام التي قام بإدخالها" الذي غير مفضّل ان يقوم بزيارة المتنزّه (هذا اليوم هو اليوم الذي فيه عدد الألعاب التي تعمل في الساعات التي قام الزائرة بإدخالها هي الأقل). يمكن ان نفرض انه يوجد يوم واحد كهذا فقط. لكي يقوم البرنامج بإعطاء الزائر هذه المعلومات يجب على الزائر ان يُدخل عدد الأيام التي يريد ان يقوم بفحصها، واسماء أيام الاسبوع ومجال ساعات الزيارة (مثال 14 10 يعني مجال الزيارة من الساعة العاشرة حتى الثانية ظهرا)
محلاظات:
يمكن ان نفرض ان عمليات الإدخال صحيحة
القراءة من الملف تُنفّذ مرة واحدة فقط.
يجب الانتباه: لا يوجد حاجة لحفظ المعطيات التي تم ادخالها من ملف التكست، انما يجب حفظ المعلومات التي تساعد على اعطاء المعلومات المهمة للزائر.
مثال:
مثال على ادخال معطيات عبر ملف تكست في المرفقات
مثال على تشغيل البرنامج:
Section 1:
*************
Number of dead days in the park during the week:
Day A: 11, 15, 16, 17, total = 4
Day B: 11, 15, total = 2
Day C: 11, 15, total =
2
Day D: 11, 15, total = 2
Day E: 10, 11, 12, 15, 16, total = 5
Section 2:
*************
Information about activities hours:
Hour 10: number of activate facilities: 4, average price: 13.50
Hour 11: number of activate facilities: 0
Hour 12: number of activate facilities: 4, average price: 15.50
Hour 13: number of activate facilities: 9, average price: 14.36
Hour 14: number of activate facilities: 9, average price: 14.36
Hour 15: number of activate facilities: 0
Hour 16: number of activate facilities: 3, average price: 9.56
Hour 17: number of activate facilities: 5, average price: 9.5
4
Section 3:
*************
Days with maximum activate facilities: C
Section 4:
*************
Maximum activate facilities: 3
Hours with maximum activate facilities:
Day C, hour 13-14
Day C, hour 14-15
Section 5:
*************
Enter number of days:
3
Enter details for day no. 1:
Enter day:
A
Enter hours range:
10 13
Enter details for day no. 2:
Enter day:
D
Enter hours range:
12 14
Enter details for day no. 3:
Enter day:
E
Enter hours range:
16 18
Within these days and hours, day E is the least worthy day to arrive

