Nobjtaz_Thiemvan:

📚 HỆ THỐNG THƯ VIỆN SỐ 📚

📖 THỬ THÁCH THỦ THƯ

(PASCAL, PYTHON & C++) 5. NHẬP ĐẾN KHI ĐÚNG THÌ TÍNH, ĐIỀU KIỆN IF 💾

📌"NHẬP VÀO BA GIÁ TRỊ SỐ ÉP BUỘC KIỂU NGUYÊN NHẬP LẠI ĐẾN KHI ĐÚNG THÌ HIỂN THỊ RA KẾT QUẢ TÍNH TỔNG 3 SỐ ĐÓ"❓ ONLINE
  




🚀PASCAL (Delphi)

program TinhTongBaSoVoiKiemTra;
uses SysUtils; // Cần dùng SysUtils (hoặc tương đương) cho hàm Val

var
  s: string; // Biến để lưu chuỗi nhập liệu
  soA, soB, soC, Tong: integer;
  errorCode: integer; // Biến để Val() trả về mã lỗi

// Hàm lặp lại việc nhập liệu cho đến khi là số nguyên hợp lệ
procedure NhapSoNguyen(prompt: string; var value: integer);
begin
  repeat
    write(prompt);
    readln(s); // Đọc đầu vào dưới dạng chuỗi
    
    // Hàm Val cố gắng chuyển chuỗi s thành integer value.
    // Nếu thành công, errorCode = 0. Nếu không, errorCode > 0.
    Val(s, value, errorCode); 
    
    if errorCode <> 0 then
      writeln('Loi: Hay nhap mot so nguyen hop le!');
      
  until errorCode = 0; // Lặp lại cho đến khi không có lỗi
end;

begin
  // 1. INPUT VÀ XÁC THỰC
  NhapSoNguyen('Nhap so nguyen thu nhat (A): ', soA);
  NhapSoNguyen('Nhap so nguyen thu hai (B): ', soB);
  NhapSoNguyen('Nhap so nguyen thu ba (C): ', soC);

  // 2. PROCESS: Tính toán
  Tong := soA + soB + soC; 

  // 3. OUTPUT: Hiển thị kết quả
  writeln('-----------------------------------');
  writeln('Tong cua ba so nguyen la: ', Tong); 
end.
  

🚀C++

#include 
#include  // Cần thiết cho std::numeric_limits

/* Hàm lặp lại việc nhập liệu cho đến khi là số nguyên hợp lệ */
int NhapSoNguyen(const std::string& prompt) {
  int value;
  
  while (true) { // Vòng lặp vô hạn
    std::cout << prompt;
    
    // Cố gắng đọc giá trị vào biến value KIỂU int
    if (std::cin >> value) { 
      // 1. CHUYỂN ĐỔI THÀNH CÔNG: Thoát khỏi vòng lặp
      break; 
    } else {
      // 2. CHUYỂN ĐỔI THẤT BẠI (nhập chữ, số thực, v.v.)
      std::cout << "Loi: Hay nhap mot so nguyen hop le!" << std::endl;
      
      // Đặt lại cờ lỗi của luồng cin để có thể tiếp tục đọc
      std::cin.clear(); 
      
      // Bỏ qua phần còn lại của đầu vào hiện tại để tránh lặp vô hạn
      std::cin.ignore(std::numeric_limits::max(), '\n'); 
    }
  }
  return value;
}

int main() {
  // 1. INPUT VÀ XÁC THỰC
  int soA = NhapSoNguyen("Nhap so nguyen thu nhat (A): ");
  int soB = NhapSoNguyen("Nhap so nguyen thu hai (B): ");
  int soC = NhapSoNguyen("Nhap so nguyen thu ba (C): ");

  // 2. PROCESS: Tính toán
  int Tong = soA + soB + soC; 

  // 3. OUTPUT: Hiển thị kết quả
  std::cout << "-----------------------------------" << std::endl;
  std::cout << "Tong cua ba so nguyen la: " << Tong << std::endl;

  return 0;
}




🚀PYTHON
# Chương trình Python nhận 3 số và lặp lại cho đến khi là số nguyên

def nhap_so_nguyen(prompt):
    """
    Hàm lặp lại việc nhập liệu cho đến khi là số nguyên hợp lệ.
    """
    while True: # Vòng lặp vô hạn
        try:
            # Cố gắng chuyển đổi đầu vào thành số nguyên
            value = int(input(prompt)) 
            # Nếu thành công, thoát khỏi vòng lặp
            return value 
            
        except ValueError:
            # Nếu int() thất bại (vì nhập chữ cái, số thực, v.v.),
            # Python sẽ ném ra lỗi ValueError và khối except sẽ bắt lỗi đó.
            print("Lỗi: Hãy nhập một số nguyên hợp lệ!")
            # Vòng lặp tự động quay lại đầu
            
# 1. INPUT VÀ XÁC THỰC
soA = nhap_so_nguyen("Nhap so nguyen thu nhat (A): ")
soB = nhap_so_nguyen("Nhap so nguyen thu hai (B): ")
soC = nhap_so_nguyen("Nhap so nguyen thu ba (C): ")

# 2. PROCESS: Tính toán
Tong = soA + soB + soC

# 3. OUTPUT: Hiển thị kết quả
print("-" * 35) # In ra một đường ngang 35 ký tự
print(f"Tổng của ba số nguyên là: {Tong}")





×

HỎI THÀY

VUI LÒNG MỞ CỔNG GẶP THÀY NHÉ!

Bạn cần nhập mã xác thực từ hệ thống để xem tiếp phần hướng dẫn chi tiết bên dưới.