Ringkasan: Pembagian Aman
Termasuk bagian Logika dan Alur dalam perjalanan C++ di Coddy. Pelajaran 53 dari 56.
Tantangan
MudahBuat program yang menerapkan pembagian aman dengan penanganan pengecualian yang menyeluruh. Tantangan ini akan menguji kemampuanmu menggabungkan perancangan fungsi dengan pengelolaan pengecualian untuk menangani error pembagian dengan nol secara tepat.
Input berikut akan diberikan:
- Bilangan
doublenumeratoryang mewakili bilangan yang akan dibagi - Bilangan
doubledenominatoryang mewakili bilangan pembagi
Programmu harus:
- Membuat fungsi bernama
safeDivideyang menerima dua parameterdouble(numeratordandenominator) - Di dalam fungsi, memeriksa apakah
denominatorsama dengan nol - Jika
denominatorbernilai nol, lakukanthrowterhadap string"Division by zero error" - Jika
denominatortidak bernilai nol, hitung hasil pembagian dan kembalikan sebagaidouble - Di dalam fungsi utama, panggil
safeDividedi dalam bloktrymenggunakan nilai input - Gunakan blok
catchuntuk menangani pengecualian string yang dilempar - Cetak pesan yang sesuai berdasarkan keberhasilan atau kegagalan pembagian
Gunakan format output persis seperti berikut:
Untuk pembagian yang berhasil:
Result: [division_result]Untuk error pembagian dengan nol:
Error: Division by zero errorIngat, saat denominator bernilai nol, fungsi harus langsung melakukan throw terhadap pengecualian sebelum mencoba melakukan pembagian. Blok catch harus menentukan tipe const char* untuk menangani literal string yang dilempar. Saat pengecualian dilempar, program akan langsung berpindah dari pernyataan throw ke blok catch yang cocok, sehingga pembagian dengan nol tidak terjadi dan programmu dapat menangani error dengan tepat alih-alih mengalami crash.
Coba sendiri
#include <iostream>
using namespace std;
int main() {
// Baca input
double numerator, denominator;
cin >> numerator >> denominator;
// TODO: Tulis kodemu di sini
// Buat fungsi safeDivide di atas main()
// Gunakan blok try-catch untuk menangani pengecualian
return 0;
}Semua pelajaran di Logika dan Alur
1Pointer dan Memori
Apa Itu Pointer?Operator Address-OfOperator DereferencePointer NullPointer dan ArrayMemori Dinamis dengan 'new'Membebaskan Memori dengan 'delete'Rangkuman: Latihan Pointer2Vektor (array Dinamis)
Memperkenalkan std::vectorMembuat VektorMenambahkan ElemenMengakses ElemenUkuran VektorIterasi dengan for loopFor loop Berbasis RentangMenghapus ElemenRangkuman: Operasi Vektor5Proyek: Alat Inventaris
Menyiapkan ProyekMenambahkan dan Memperbarui Barang8Penanganan error Dasar
Pengenalan ExceptionBlok 'try' dan 'catch'Kata Kunci 'throw'Berbagai Tipe ExceptionPenangan Semua ExceptionRingkasan: Pembagian AmanLatihan sendiri: Compiler C++ online