🧪 التدريب العملي الوحدة 3: القرار والتكرار وتشخيص الأخطاء · الدرس 6 من 17
تدريب عملي

التدريب العملي 27: عدد أيام الشهر (switch)

من مذكرة العملي. اقرأ المسألة والخوارزمية، ثم اكتب البرنامج ونفّذه.

1234… case 1: الأحدcase 2: الاثنين case 3: الثلاثاءdefault

من الدرس 6. العبارات الشرطية: if و switch · كل التدريبات

١نص المسألة

اكتب برنامج بلغة الجافا يطلب من المستخدم أن يدخل رقم الشهر بالميلادي ثم يطبع له عدد الأيام في ذلك الشهر:

رقم الشهرعدد الأيامرقم الشهرعدد الأيام
131731
228831
331930
4301031
5311130
6301231

قم بحل هذا المثال باستخدام جملة switch مع كتابة الجمل البرمجية مرة واحدة للحالات المتشابهة. يمكن تجميع الشهور كالتالي:

أرقام الشهورعدد الأيام
1، 3، 5، 7، 8، 10، 1231
4، 6، 9، 1130
228

إذا أدخل المستخدم رقمًا لا يساوي أحد أرقام الشهور، اطبع له: الرقم المدخل غير صحيح.

٢الخوارزمية

خوارزمية مقترحة.

  1. ابدأ
  2. اقرأ رقم الشهر وخزنه في a
  3. حسب قيمة a (جملة switch):
  4. في حالة 1, 3, 5, 7, 8, 10, 12 : اطبع 31 days
  5. في حالة 4, 6, 9, 11 : اطبع 30 days
  6. في حالة 2 : اطبع 28 days
  7. غير ذلك (default) : اطبع «الرقم المدخل غير صحيح»
  8. اطبع «مع السلامة»
  9. توقف

٣خريطة التدفق

ابدأاقرأ ⁦a⁩a = 1,3,5,7,8,10,12نعماطبع ⁦31 days⁩لاa = 4,6,9,11نعماطبع ⁦30 days⁩لاa == 2نعماطبع ⁦28 days⁩لااطبع «الرقم المدخل غير صحيح»اطبع «مع السلامة»توقف
خريطة التدفق

٤خطوات التطبيق

  1. أنشئ مشروعًا جديدًا في NetBeans: File‏ ← ‏New Project‏ ← ‏Java with Ant‏ ← ‏Java Application، باسم lab27.
  2. اكتب الكود داخل الدالة main، ثم شغّله بالزر Run أو F6.
  3. اكتب المدخلات في نافذة Output أسفل الشاشة ثم اضغط Enter. وفي الموقع اكتبها في خانة STDIN عند الضغط على «▶ شغّل هنا».

٥المخرجات المطلوبة

نفّذ برنامجك عدة مرات بمدخلات مختلفة، ويجب أن تظهر المخرجات التالية:

التشغيل 1: عند إدخال 5

Output – lab27 (run)×
run:
ادخل رقم الشهر
5
31 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)

التشغيل 2: عند إدخال 3

Output – lab27 (run)×
run:
ادخل رقم الشهر
3
31 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)

التشغيل 3: عند إدخال 4

Output – lab27 (run)×
run:
ادخل رقم الشهر
4
30 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)

التشغيل 4: عند إدخال 2

Output – lab27 (run)×
run:
ادخل رقم الشهر
2
28 days
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)

التشغيل 5: عند إدخال 14

Output – lab27 (run)×
run:
ادخل رقم الشهر
14
الرقم المدخل غير صحيح
مع السلامة
BUILD SUCCESSFUL (total time: 0 seconds)

٦الحل المقترح

حاول بنفسك أولًا، ثم قارن حلّك بالحل التالي:

👁 اعرض الحل المقترح
Lab27.java
import java.util.Scanner;public class Lab27 {      public static void main(String[] args) {       Scanner input = new Scanner(System.in);        System.out.println("ادخل رقم الشهر");        int a = input.nextInt();        switch(a){            case 1:             case 3:             case 5:             case 7:             case 8:            case 10:            case 12: System.out.println("31 days");  break;            case 4:            case 6:            case 9:            case 11: System.out.println("30 days"); break;            case 2: System.out.println("28 days"); break;            default: System.out.println("الرقم المدخل غير صحيح");        }        System.out.println("مع السلامة");    }}