まとめ:安全な割り算
CoddyのC++ジャーニー「論理と制御フロー」セクションの一部 — レッスン 53/56。
チャレンジ
簡単包括的な例外処理を使用して安全な除算を実装するプログラムを作成してください。このチャレンジでは、関数の設計と例外管理を組み合わせて、ゼロ除算エラーを適切に処理する能力が試されます。
以下の入力が提供されます:
- 被除数を表す double 型の
numerator - 除数を表す double 型の
denominator
プログラムは以下の手順で行ってください:
- 2つの double 型のパラメータ(numerator と denominator)を受け取る
safeDivideという名前の関数を作成します。 - 関数内で、denominator がゼロに等しいかどうかを確認します。
- denominator がゼロの場合、文字列
"Division by zero error"をthrowします。 - denominator がゼロでない場合、除算結果を計算し、double 型として返します。
- メイン関数内で、入力値を使用して
tryブロックの中でsafeDivideを呼び出します。 catchブロックを使用して、スローされた文字列の例外を処理します。- 除算が成功したか失敗したかに基づいて、適切なメッセージを出力します。
以下の正確な出力形式を使用してください:
除算が成功した場合:
Result: [division_result]ゼロ除算エラーの場合:
Error: Division by zero errordenominator がゼロのとき、関数は除算を試みる前に直ちに例外を throw する必要があることに注意してください。catch ブロックでは、スローされた文字列リテラルを処理するために const char* 型を指定する必要があります。例外がスローされると、プログラムは throw 文から対応する catch ブロックへ直接ジャンプし、ゼロ除算の発生を防ぎ、プログラムがクラッシュする代わりにエラーを適切に処理できるようにします。
自分で試してみよう
#include <iostream>
using namespace std;
int main() {
// 入力を読み込む
double numerator, denominator;
cin >> numerator >> denominator;
// TODO: ここにコードを記述してください
// main() の上に safeDivide 関数を作成してください
// 例外を処理するために try-catch ブロックを使用してください
return 0;
}