Предмет: Информатика, автор: dimagggtop

Даю 100 баллов информатика
в коде снизу когда запускаю код пишет ошибку Встречено 'else', а ожидался оператор что там нужно дописать/написать что бы все получилось вот условие задачи Перший товар коштує А грн., другий йде зі знижкою 20%. У покупця є К грн.
Чи зможе він купити обидва ці товари, якщо так, то яка його решта?
program f;
begin
var A,k:integer;
var c,d,b:real;
writeln ('введіть скільки коштує перший товар');
readln(A);
writeln ('введіть скільки у покупця є грошей');
readln(k);
b:=a*0.8;
d:=a+b;
c:=k-d;
if (d<=k) then
writeln ('так зможе купити');
writeln (c);
else
('ні не зможе')
end.


dimagggtop: так же забыл сказать в вопросе если перед else убрать точку с зпятой пишет что встречено else а ожидалось ;

Ответы

Автор ответа: Ziorar
2

Ошибки:

1) ошибка "ожидается оператор" потому, что между then и else у вас стоят два оператора writeln.

Без дополнительных конструкций там можно только один оператор (и он идёт без точки с запятой в конце, если после него будет else). Я так и сделал- оба сообщения уместил в один оператор writeln.

Если хотите два или больше операторов- то их надо помещать в составной оператор - то есть, начинать с begin и заканчивать end;

2) перед последним сообщением не было оператора writeln.

3) также, переменные a и k были целыми (а ведь цена на товар и сумма денег у покупателя могут быть и дробными)

Программа после устранения ошибок:

program f;

begin

var A,k,c,d,b:real;

writeln ('Введіть скільки коштує перший товар');

readln(A);

writeln ('Введіть скільки у покупця є грошей');

readln(k);

b:=a*0.8;

d:=a+b;

c:=k-d;

if (d<=k) then

writeln ('Так зможе купити.  Решта= ',c)

else

writeln ('Ні не зможе.')

end.


dimagggtop: Невероятно если бы вы не расписали ошибки я бы низа что не понял в чем ошибки гигантское вам спасибо
Ziorar: Пожалуйста )
Похожие вопросы