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

التدريب العملي 24: خصم المشتريات

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

if true ✓ false → else

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

١نص المسألة

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

إذا كان مجموع المشتريات أكثر من أو يساوي 4000، الخصم يكون 15%

إذا كان مجموع المشتريات أكثر من أو يساوي 2000 إلى أقل 4000، الخصم يكون 10%

إذا كان مجموع المشتريات أكثر من أو يساوي 1000 إلى أقل من 2000، الخصم يكون 5%

إذا كان مجموع المشتريات أقل من 1000، لن يستحق الخصم

في حالة لو أدخل المستخدم مجموع المشتريات صفر أو أقل نطبع الرسالة (قيمة المشتريات خاطئة)

٢الخوارزمية

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

  1. ابدأ
  2. discount = 0
  3. اقرأ قيمة المشتريات وخزنها في sales
  4. إذا كان sales >= 4000 :
  5. discount = sales * 0.15
  6. وإلا إذا كان sales >= 2000 :
  7. discount = sales * 0.10
  8. وإلا إذا كان sales >= 1000 :
  9. discount = sales * 0.05
  10. وإلا إذا كان sales > 0 :
  11. discount = 0
  12. غير ذلك:
  13. اطبع «قيمة المشتريات خاطئة»
  14. اطبع قيمة sales قبل الخصم
  15. اطبع مبلغ الخصم discount
  16. sales = sales - discount
  17. اطبع قيمة sales بعد الخصم
  18. توقف

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

ابدأdiscount = 0اقرأ ⁦sales⁩sales >= 4000نعمdiscount = sales * 0.15لاsales >= 2000نعمdiscount = sales * 0.10لاsales >= 1000نعمdiscount = sales * 0.05لاsales > 0نعمdiscount = 0لااطبع «قيمة المشتريات خاطئة»اطبع ⁦sales⁩ ، ⁦discount⁩sales = sales - discountاطبع ⁦sales⁩توقف
خريطة التدفق

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

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

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

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

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

Output – lab24 (run)×
run:
ادخل قيمة المشتريات
5000
قبل الخصم 5000.0
مبلغ الخصم750.0
بعد الخصم4250.0
BUILD SUCCESSFUL (total time: 0 seconds)

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

Output – lab24 (run)×
run:
ادخل قيمة المشتريات
3000
قبل الخصم 3000.0
مبلغ الخصم300.0
بعد الخصم2700.0
BUILD SUCCESSFUL (total time: 0 seconds)

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

Output – lab24 (run)×
run:
ادخل قيمة المشتريات
1500
قبل الخصم 1500.0
مبلغ الخصم75.0
بعد الخصم1425.0
BUILD SUCCESSFUL (total time: 0 seconds)

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

Output – lab24 (run)×
run:
ادخل قيمة المشتريات
900
قبل الخصم 900.0
مبلغ الخصم0.0
بعد الخصم900.0
BUILD SUCCESSFUL (total time: 0 seconds)

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

Output – lab24 (run)×
run:
ادخل قيمة المشتريات
0
قيمة المشتريات خاطئة
قبل الخصم 0.0
مبلغ الخصم0.0
بعد الخصم0.0
BUILD SUCCESSFUL (total time: 0 seconds)

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

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

👁 اعرض الحل المقترح
Lab24.java
import java.util.Scanner;public class Lab24 {    public static void main(String[] args) {        Scanner input = new Scanner(System.in);        double sales, discount = 0;        System.out.println("ادخل قيمة المشتريات");        sales = input.nextDouble();        if(sales >= 4000)            discount= sales * 0.15;        else if( sales >= 2000)            discount = sales * 0.10;        else if( sales >= 1000)            discount = sales * 0.05;        else if( sales < 1000 && sales > 0) // or just sales > 0            discount = 0;        // zero or less        else         {            discount = 0;            System.out.println("قيمة المشتريات خاطئة");         }            System.out.println("قبل الخصم" + " " + sales);            System.out.println("مبلغ الخصم" + discount);            sales = sales - discount;            System.out.println("بعد الخصم" + sales);    }}