Đáp án:
program CanBuyBooks;
var
a, b, c, n: integer;
function CanBuyBooks(a, b, c, n: integer): string;
begin
// Sắp xếp số tiền theo thứ tự giảm dần để dùng loại tiền lớn nhất trước
if a < b then
begin
if b < c then
begin
if a < c then
begin
a := a + c;
c := a - c;
a := a - c;
end
else
begin
a := a + b;
b := a - b;
a := a - b;
end;
end
else
begin
a := a + b;
b := a - b;
a := a - b;
end;
end
else
begin
if a < c then
begin
a := a + c;
c := a - c;
a := a - c;
end;
end;
while n > 0 do
begin
if n >= a then
n := n - a
else if n >= b then
n := n - b
else if n >= c then
n := n - c
else
break;
end;
if n = 0 then
CanBuyBooks := 'Có thể mua hết số tiền n đồng để mua sách.'
else
CanBuyBooks := 'Không thể mua hết số tiền n đồng, số tiền còn dư nhỏ nhất là ' + IntToStr(n) + ' đồng.';
end;
begin
// Nhập giá trị của a, b, c và n từ bàn phím
writeln('Nhập giá trị tiền loại a: ');
readln(a);
writeln('Nhập giá trị tiền loại b: ');
readln(b);
writeln('Nhập giá trị tiền loại c: ');
readln(c);
writeln('Nhập số tiền n đồng: ');
readln(n);
writeln(CanBuyBooks(a, b, c, n));
end.
Giải thích các bước giải:
Chương trình Pascal trên được viết để giải quyết vấn đề sau: Bạn Hùng có 3 loại tiền là a, b, và c, và bạn muốn mua sách với tổng số tiền là n đồng. Chương trình sử dụng các biến a, b, c, và n để lưu giá trị của loại tiền và số tiền bạn muốn mua sách.
Chương trình sử dụng một hàm có tên CanBuyBooks để kiểm tra xem bạn có thể mua hết số tiền n đồng để mua sách hay không, và nếu không, in ra giá trị số tiền còn dư nhỏ nhất. Hàm này hoạt động như sau:
Sắp xếp các giá trị của loại tiền a, b, và c theo thứ tự giảm dần để đảm bảo bạn sử dụng loại tiền lớn nhất trước.
Sử dụng một vòng lặp while để cố gắng trừ đi giá trị của loại tiền lớn nhất cho đến khi số tiền n trở thành 0 hoặc khi không còn loại tiền nào có thể trừ. Vòng lặp này kiểm tra n có còn lớn hơn hoặc bằng giá trị của loại tiền lớn nhất (a) hay không, sau đó kiểm tra n có còn lớn hơn hoặc bằng giá trị của loại tiền tiếp theo (b) hay không, và cuối cùng là kiểm tra n có còn lớn hơn hoặc bằng giá trị của loại tiền cuối cùng (c) hay không.
Nếu sau khi vòng lặp while kết thúc và n bằng 0, chương trình sẽ trả về thông báo "Có thể mua hết số tiền n đồng để mua sách."
Nếu n không bằng 0 sau khi vòng lặp kết thúc, chương trình sẽ trả về thông báo "Không thể mua hết số tiền n đồng, số tiền còn dư nhỏ nhất là [số tiền còn dư] đồng."
Chương trình cuối cùng sẽ yêu cầu bạn nhập giá trị của loại tiền a, b, c, và số tiền n từ bàn phím và sau đó hiển thị kết quả để cho biết bạn có thể mua hết số tiền n đồng để mua sách hay không, và nếu không, in ra số tiền còn dư nhỏ nhất.
Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!
Lớp 9 - Là năm cuối ở cấp trung học cơ sở, chúng ta sắp phải bước vào một kỳ thi căng thẳng và sắp chia tay bạn bè, thầy cô. Áp lực từ kỳ vọng của phụ huynh và tương lai lên cấp 3 thật là lớn, nhưng hãy tin vào bản thân và giữ vững sự tự tin!
Copyright © 2024 Giai BT SGK