Написать задачу про кассу,паскаль информатика 9 класс.Касса должна считатать кол во...

0 голосов
63 просмотров

Написать задачу про кассу,паскаль информатика 9 класс.Касса должна считатать кол во товаров,их стоимость и выдавать сдачу.Должна выдавать ошибку если пользователю не хватает денег


Информатика (58 баллов) | 63 просмотров
Дан 1 ответ
0 голосов

Код прекреплен к ответу, всё прокоментрировано. Так же продублирован в коментариях. Если есть вопросы, велком в те же коментарии.

Спасибо за отметку "Лучший ответ" и нажатую кнопочку "Спасибо" (:

(1.4k баллов)
0

program laba;

var
productCounter{счётчик товаров}
: integer;

var
currentProductCost, {цена текущего введенного товара}
tax, {счёт - цена всех товаров}
monney, {кол-во денег данных покупателем}
residue {сдача с данных покупателем денег}
: real;

var
userAnswer {сюда будем записывать ответ пользователя при добавлении нового товара}
: string[1];

0

var
cicleRepeat, {эта переменная определяет будет ли продолжаться цикл}
enterCommandCicleRepeat {эта переменная определяет будет ли продолжаться цикл}
: Boolean;

begin

tax:=0; {обнуляем счёт}
productCounter:=0;{обнуляем счётчик товаров}

cicleRepeat:=true;{ставим значение, на true, то есть цикл будет работать}

while cicleRepeat do{бесконечный цикл ввода товаров}
begin

0

Writeln('Enter product cost: ');
Readln(currentProductCost); {записываем стоимость текущего товара}
if (0 >= currentProductCost) then{если она меньше нуля}
begin

Writeln('Error! Wrong cost! Cost must be more then 0.');{то выдать ошибку}

end
else {иначе}
begin

tax:=tax+currentProductCost; {прибавляем все к общему счёту}
productCounter:=productCounter+1;{увеличиваемсчётчик товаров}

end;

0

enterCommandCicleRepeat:=true; {ставим значение, на true, то есть цикл будет работать}

while enterCommandCicleRepeat do{вложенный цикл, необходим для корректного ввода команды для продолжения или выхода из цикла ввода товаров}
begin

Writeln('Add new product? (enter Y/N);');
Readln(userAnswer); {спрашиваем мользователя, хочет ли он добавить ещё один товар}

0

if 'N' = userAnswer then
begin

cicleRepeat:=false; {если нет, то поставить переменную цикла на false, то есть выйти из основного цикла}
enterCommandCicleRepeat:=false; {поставить переменную цикла на false, то есть выйти из вложенного цикла тоже}

end;

0

if 'Y' = userAnswer then
begin

Writeln('Current tax: ', tax:0:2);{если да, то вывести значение текущего счёта на экран и продолжить выполнение основного цикла}
enterCommandCicleRepeat:=false; {поставить переменную цикла на false, то есть выйти из вложенного цикла}
end
else
begin

Writeln('Wrong command!'); {вывести сообщение о не верно введенной команде и вернуться к вводу оной}

end;

end;

end;

0

Writeln('Your tax is: ', tax:0:2); {вывести значение всего счёта}
Writeln('Enter monney: ');
Readln(monney); {ввести деньги}

if (monney < tax) then {если размер введеных денег меньше чем размер счёта}
begin
Writeln('Error! To less money. Abording...');{то выдать ошибку}
end

0

else
begin
residue:=monney-tax; {иначе, посчитать сдачу}
Writeln('Tax is: ', tax:0:2); {вывести весь счёт}
Writeln('Products count is: ', productCounter); {вывести кол-во продуктов}
Writeln('Your monney: ', monney:0:2); {вывести кол-во введеных денег}
Writeln('Your residue is: ', residue:0:2); {вывести кол-во сдачи}
end;

end.