program Tinh_tien;
uses crt;
var
soluong: integer; {sua lai soluong: longint; de chay dung}
dongia, thanhtien: real;
thongbao: string;
const phi = 10000;
begin
clrscr;
thongbao:= 'Tong so tien phai thanh toan: ';
{Nhap don gia va so luong hang}
write('Don gia = '); readln(dongia);
write('So luong = '); readln(soluong);
thanhtien := soluong * dongia + phi;
(*In ra so tien phai tra*)
writeln(thongbao, thanhtien:10:2);
readln
end.
-------------------------------------------------------------
TRẢ LỜI CÂU HỎI:
c) Chạy chương trình với các bộ dữ liệu (đơn giá và số lượng) như sau (1000, 20), (3000, 200), (18500, 123). Kiểm tra tính đúng của các kết quả in ra?
Trả lời:
- Kết quả với cặp dữ liệu (1000, 20) là: 30000.00
- Kết quả với cặp dữ liệu (3500, 200) là: 710000.00
- Kết quả với cặp dữ liệu (18500, 123) là: 2285500.00
d) Chạy chương trình với bộ dữ liệu (1, 35000). Quan sát kết quả nhận được. Hãy thử đoán lí do tại sao chương trình cho kết quả sai.
Trả lời:
- Kết quả với cặp dữ liệu (1, 35000) là: -20536.00
- Kết quả cho ra sai vì biến soluong có kiểu dữ liệu là integer với tầm giá trị là các số nguyên trong đoạn [-2^15, 2^15-1]. Mà 2^15-1 = 32767 < 35000.
- Để chương trình chạy đúng bạn phải khai báo biến soluong có kiểu dữ liệu là longint hay real
Không có nhận xét nào:
Đăng nhận xét