Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ملخص - آلة حاسبة آمنة

جزء من قسم المنطق وتدفق العمليات في رحلة Ruby على Coddy — الدرس 47 من 56.

قم ببناء آلة حاسبة صغيرة تتعامل مع المدخلات الخاطئة، وتجمع بين raise، وعدة جمل rescue، و ensure.

challenge icon

التحدي

متوسط

قم بتعريف دالة calc(a, op, b) تقوم بما يلي:

  • تثير ArgumentError مع الرسالة "unknown operator" إذا لم يكن op واحداً من +، -، *، /
  • تنفذ العملية بخلاف ذلك (استخدم حساب الأعداد الصحيحة لـ /)

ثم اقرأ ثلاثة أسطر من المدخلات، a، op، b: واستدعِ calc داخل كتلة begin / rescue / ensure:

  • في حالة النجاح، اطبع <a> <op> <b> = <result>
  • عند حدوث ArgumentError، اطبع Bad operator
  • عند حدوث ZeroDivisionError، اطبع Cannot divide by zero
  • في ensure، اطبع دائماً --- end ---

استخدم Integer(...) لتحليل a و b، داخل نفس كتلة begin، بحيث تقع المدخلات غير الصحيحة أيضاً ضمن Bad operator (حيث يغطي ArgumentError كلتا الحالتين).

للمدخلات 6 / * / 7، يكون المخرج:

6 * 7 = 42
--- end ---

للمدخلات 10 / / / 0:

Cannot divide by zero
--- end ---

جرّب بنفسك

# TODO: قم بتعريف calc(a, op, b)، يطلق ArgumentError عند op غير معروف

raw_a = gets.chomp
op    = gets.chomp
raw_b = gets.chomp

# TODO: begin/rescue/ensure كما هو موضح

جميع دروس المنطق وتدفق العمليات