تدريب عملي
التدريب العملي 22: آلة حاسبة بسيطة
من مذكرة العملي. اقرأ المسألة والخوارزمية، ثم اكتب البرنامج ونفّذه.
من الدرس 6. العبارات الشرطية · كل التدريبات
١نص المسألة
أكتب برنامج عبارة عن آلة حاسبة بسيطة، بحيث يطلب من المستخدم أن:
يدخل العدد الأول
ثم رمز العملية ( + للجمع أو - للطرح أو * للضرب أو / للقسمة)
ثم العدد الثاني
وبعد ذلك يقوم البرنامج بتنفيذ العملية الحسابية على الرقمين ويطبع النتيجة. إذا ادخل المستخدم رمزاً آخر نطبع له رمز العملية غير صحيح.
٢الخوارزمية
خوارزمية مقترحة.
- ابدأ
- اقرأ العدد الأول وخزنه في n1
- اقرأ رمز العملية وخزنه في op
- اقرأ العدد الثاني وخزنه في n2
- result = 0
- إذا كان op يساوي + :
- result = n1 + n2
- وإلا إذا كان op يساوي - :
- result = n1 - n2
- وإلا إذا كان op يساوي * :
- result = n1 * n2
- وإلا إذا كان op يساوي / :
- result = n1 / n2
- غير ذلك:
- اطبع «الرمز المدخل غير صحيح»
- اطبع n1 op n2 = result
- توقف
٣خريطة التدفق
٤خطوات التطبيق
- أنشئ مشروعًا جديدًا في NetBeans: File ← New Project ← Java with Ant ← Java Application، باسم lab22.
- اكتب الكود داخل الدالة main، ثم شغّله بالزر Run أو F6.
- اكتب المدخلات في نافذة Output أسفل الشاشة ثم اضغط Enter. وفي الموقع اكتبها في خانة STDIN عند الضغط على «▶ شغّل هنا».
٥المخرجات المطلوبة
نفّذ برنامجك عدة مرات بمدخلات مختلفة، ويجب أن تظهر المخرجات التالية:
التشغيل 1: عند إدخال 12، ثم -، ثم 4
run:
ادخل العدد الأول
12
ادخل رمز العملية: + - * /
-
ادخل العدد الثاني
4
12.0-4.0 = 8.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 2: عند إدخال 8، ثم +، ثم 2
run:
ادخل العدد الأول
8
ادخل رمز العملية: + - * /
+
ادخل العدد الثاني
2
8.0+2.0 = 10.0
BUILD SUCCESSFUL (total time: 0 seconds)
التشغيل 3: عند إدخال 15، ثم @، ثم 5
run:
ادخل العدد الأول
15
ادخل رمز العملية: + - * /
@
ادخل العدد الثاني
5
الرمز المدخل غير صحيح
15.0@5.0 = 0.0
BUILD SUCCESSFUL (total time: 0 seconds)
٦الحل المقترح
حاول بنفسك أولًا، ثم قارن حلّك بالحل التالي:
👁 اعرض الحل المقترح
import java.util.Scanner;public class Lab22 { public static void main(String[] args) { Scanner numbers = new Scanner(System.in); System.out.println("ادخل العدد الأول"); double n1 = numbers.nextDouble(); System.out.println("ادخل رمز العملية: + - * /"); String op = numbers.next(); // قراءة رمز العملية System.out.println("ادخل العدد الثاني"); double n2 = numbers.nextDouble(); double result = 0; if(op.equals("+")) result = n1 + n2; else if(op.equals("-")) result = n1 - n2; else if(op.equals("*")) result = n1 * n2; else if(op.equals("/")) result = n1 / n2; else System.out.println("الرمز المدخل غير صحيح"); String e = n1 + op + n2 + " = " + result; System.out.println(e); } }