Menu
CoddyTech

Ôn tập: phép chia an toàn

Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 43 trên 65.

challenge icon

Thử thách

Dễ

Tạo một chương trình máy tính phép chia an toàn bằng cách xử lý ngoại lệ. Chương trình cần xử lý lỗi chia cho 0 một cách phù hợp và thông báo rõ ràng cho người dùng khi xảy ra lỗi.

  1. Đọc một đầu vào dạng chuỗi biểu thị số thứ nhất (số bị chia)
  2. Đọc một đầu vào dạng chuỗi biểu thị số thứ hai (số chia)
  3. Tạo một hàm (function) có tên safeDivision, nhận hai tham số kiểu double và trả về kết quả kiểu double
  4. Hàm cần dùng khối lệnh try-catch để xử lý các lỗi chia có thể xảy ra:
    • Trong khối lệnh try: Kiểm tra xem số chia có bằng 0 không. Nếu có, ném một ngoại lệ với thông báo "Division by zero is not allowed", nếu không thì thực hiện phép chia
    • Trong khối lệnh catch: Xử lý ngoại lệ và trả về 0.0 làm giá trị mặc định an toàn
  5. Chuyển các chuỗi đầu vào thành giá trị kiểu double bằng double.parse()
  6. Gọi hàm safeDivision với các giá trị đã chuyển đổi
  7. Hiển thị kết quả theo chính xác định dạng bên dưới

Ví dụ, nếu đầu vào là "10.0" và "2.0", chương trình của bạn cần in ra:

Safe Division Calculator
========================
First number: 10.0
Second number: 2.0
Performing division...
Result: 5.0
Operation completed successfully

Nếu đầu vào là "15.0" và "0.0", chương trình của bạn cần in ra:

Safe Division Calculator
========================
First number: 15.0
Second number: 0.0
Performing division...
Error: Division by zero is not allowed
Using safe default value: 0.0
Operation completed with error handling

Nếu đầu vào là "7.5" và "2.5", chương trình của bạn cần in ra:

Safe Division Calculator
========================
First number: 7.5
Second number: 2.5
Performing division...
Result: 3.0
Operation completed successfully

Chương trình của bạn phải triển khai hàm safeDivision, dùng khối lệnh try-catch để xử lý trường hợp chia cho 0. Trong khối lệnh try, hãy kiểm tra xem số chia có bằng 0.0 không và dùng từ khóa throw để chủ động kích hoạt một ngoại lệ nếu có. Trong khối lệnh catch, hãy in thông báo lỗi và trả về 0.0 làm giá trị dự phòng an toàn. Chương trình chính cần gọi hàm này và hiển thị các thông báo hoàn tất khác nhau tùy theo việc có xảy ra lỗi hay không.

Tự làm thử

import 'dart:io';

// TODO: Tạo hàm safeDivision tại đây

void main() {
  // Đọc đầu vào
  String? firstInput = stdin.readLineSync();
  String? secondInput = stdin.readLineSync();
  
  // Chuyển các chuỗi sang double
  double firstNumber = double.parse(firstInput!);
  double secondNumber = double.parse(secondInput!);
  
  // Hiển thị tiêu đề
  print("Safe Division Calculator");
  print("========================");
  print("First number: $firstNumber");
  print("Second number: $secondNumber");
  print("Performing division...");
  
  // TODO: Gọi hàm safeDivision và xử lý kết quả
  // Nhớ kiểm tra xem có lỗi xảy ra không để hiển thị thông báo hoàn tất phù hợp
  
}

Tất cả bài học trong Logic và luồng điều khiển

Tự luyện tập: Trình biên dịch Dart online