Menu
Coddy logo textTech

סיכום – חלוקה בטוחה

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-C++ של Coddy. שיעור 53 מתוך 56.

challenge icon

אתגר

קל

צרו תוכנית שמממשת חילוק בטוח באמצעות טיפול מקיף בחריגות. האתגר הזה יבחן את היכולת שלכם לשלב תכנון פונקציות עם ניהול חריגות כדי לטפל בשגיאות חלוקה באפס בצורה אלגנטית.

הקלטים הבאים יסופקו:

  • ערך double numerator שמייצג את המספר שיש לחלק
  • ערך double denominator שמייצג את המספר שבו יש לחלק

התוכנית שלכם צריכה:

  1. ליצור פונקציה בשם safeDivide שמקבלת שני פרמטרים מסוג double (מונה ומכנה)
  2. בתוך הפונקציה, לבדוק אם המכנה שווה לאפס
  3. אם המכנה הוא אפס, לבצע throw למחרוזת "Division by zero error"
  4. אם המכנה אינו אפס, לחשב את תוצאת החלוקה ולהחזיר אותה בתור double
  5. בפונקציה הראשית, לקרוא ל-safeDivide בתוך בלוק try עם ערכי הקלט
  6. להשתמש בבלוק catch כדי לטפל בחריגת המחרוזת שנזרקה
  7. להדפיס את ההודעה המתאימה בהתאם להצלחת החלוקה או לכישלונה

השתמשו בפורמט הפלט המדויק הבא:

במקרה של חלוקה מוצלחת:

Result: [division_result]

במקרה של שגיאת חלוקה באפס:

Error: Division by zero error

זכרו שכאשר המכנה הוא אפס, הפונקציה שלכם צריכה לבצע מיד throw של חריגה לפני ניסיון לבצע את החלוקה. בלוק ה-catch צריך לציין את הטיפוס const char* כדי לטפל בליטרל המחרוזת שנזרק. כאשר נזרקת חריגה, התוכנית תדלג ישירות מהפקודה throw לבלוק ה-catch המתאים, וכך תמנע חלוקה באפס ותאפשר לתוכנית שלכם לטפל בשגיאה בצורה אלגנטית במקום לקרוס.

נסו בעצמכם

#include <iostream>
using namespace std;

int main() {
    // קראו את הקלט
    double numerator, denominator;
    cin >> numerator >> denominator;
    
    // TODO: כתבו כאן את הקוד שלכם
    // צרו את הפונקציה safeDivide מעל main()
    // השתמשו בבלוק try-catch כדי לטפל בחריגות
    
    return 0;
}

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר C++ אונליין