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.
Объяснение кода листинга программы
- В первой строке используется библиотека crt, которая является стандартной для Turbo Pascal.
- Переменные a, y, q и w объявлены как целочисленные.
- Переменная z объявлена как переменная с плавающей запятой.
- Переменная ans объявлена как символ.
- В цикле 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д