Error in statement - Turbo Pascal (29222)

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, не понимаю, что делаю неправильно Выдает ошибку Error in Statement в Until и если ставлю Else Вот задание:

Решение задачи: «Error in statement»

textual
Листинг программы
uses crt;
var a,y,q,w: integer;
   z: extended;
   ans:char;
begin
repeat
clrscr;
writeln('Введите a,y');
readln(a,y);
q:=a-y;
w:=a+y;
if(q<0)or(w<0)or(q=w)or((q+w)*(q-w)<0)then writeln('Z не определено')
else
 begin
  z:=sqrt((sqrt(q)+sqrt(w))/(sqrt(q)-sqrt(w)));
  writeln('Z=',z:0:3);
 end;
writeln('Повторить ? (Y/y-да другое нет)');
readln(ans);
until upcase(ans)<>'Y';
end.

Объяснение кода листинга программы

  1. В первой строке используется библиотека crt, которая является стандартной для Turbo Pascal.
  2. Переменные a, y, q и w объявлены как целочисленные.
  3. Переменная z объявлена как переменная с плавающей запятой.
  4. Переменная ans объявлена как символ.
  5. В цикле repeat-until выполняется следующий код:
    • clrscr очищает экран.
    • writeln('Введите a,y') выводит сообщение для пользователя.
    • readln(a, y) считывает два целых числа от пользователя.
    • q := a - y вычисляет разность между a и y и сохраняет результат в переменной q.
    • w := a + y вычисляет сумму между a и y и сохраняет результат в переменной w.
    • if (q < 0) or (w < 0) or (q == w) or ((q + w) * (q - w) < 0) then выводится сообщение 'Z не определено'.
    • else выполняется следующая часть кода:
      • z := sqrt((sqrt(q) + sqrt(w)) / (sqrt(q) - sqrt(w)));
      • writeln('Z=', z:0:3);
    • end;
    • writeln('Повторить ? (Y/y-да другое нет)');
    • readln(ans) считывает ответ пользователя.
    • until upcase(ans) <> 'Y';
    • end.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5
Похожие ответы