Встречено 'until', а ожидалось ';' - PascalABC.NET
Формулировка задачи:
Решение задачи: «Встречено 'until', а ожидалось ';'»
textual
Листинг программы
program calculator; //v1.1
var
a, b, rez: real;oper, calc: string;flag_start: boolean;
begin
flag_start := false;
calc := 'N';
rez := 0;
repeat
if(flag_start = false) then
begin
writeln('Are you want to use calculator:Y/N/');
readln(calc);
if(calc <> 'Y') then break;
writeln('Please input the first number');
readln(a);
writeln('please choose operator:+,-,*,/,div,mod');
readln(oper);
rez := a;
writeln('Please input a second number');
readln(a);
case oper of
'+': rez := rez + a;
'-': rez := rez - a;
'*': rez := rez * a;
'/': rez := rez / a;
'div': rez := int(round(rez) div round(a));
'mod': rez := int(round(rez) mod round(a));
else writeln( 'You chose wrong operator');
end;
end
else
begin
writeln('please choose operator:+,-,*,/,div,mod');
readln(oper);
rez := a;
writeln('Please input a second number');
readln(a);
case oper of
'+': rez := rez + a;
'-': rez := rez - a;
'*': rez := rez * a;
'/': rez := rez / a;
'div': rez := int(round(rez) div round(a));
'mod': rez := int(round(rez) mod round(a));
else writeln( 'You chose wrong operator');
end;
end; // <--- Этого не хватало
writeln('Will you continue to use a calculator?Y/N');
readln(calc);
until(calc = 'N');
WriteLn('Result is', rez:8:2);
readln;
end.
Объяснение кода листинга программы
- Объявлены переменные: a, b, rez (результат) типа real (число с плавающей точкой), oper (оператор), calc (выбор пользователя) типа string (строка).
- Инициализированы переменные: rez = 0, flag_start = false, calc = 'N'.
- Входим в цикл repeat.
- Если flag_start = false, то выводим приглашение для ввода пользователем выбора.
- Читаем ввод пользователя и сохраняем его в переменную calc.
- Если calc не равно 'Y', то выходим из цикла.
- Выводим приглашение для ввода первого числа.
- Читаем ввод пользователя и сохраняем его в переменную a.
- Выводим приглашение для выбора оператора.
- Читаем ввод пользователя и сохраняем его в переменную oper.
- Присваиваем rez значение a.
- Выводим приглашение для ввода второго числа.
- Читаем ввод пользователя и сохраняем его в переменную a.
- Определяем операцию по значению переменной oper.
- Выполняем соответствующую арифметическую операцию и присваиваем результат переменной rez.
- Проверяем корректность выбранного оператора.
- Если пользователь ввел неверный оператор, выводим сообщение об ошибке.
- Повторяем шаги 4-17 для случая, когда flag_start = true.
- Выводим приглашение для выбора продолжения использования калькулятора.
- Читаем ввод пользователя и сохраняем его в переменную calc.
- Цикл повторяется до тех пор, пока calc не станет равным 'N'.
- Выводим результат на экран.
- Ждем ввода пользователя для завершения работы программы.