Error in statement - Turbo Pascal (29222)

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

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

Помогите, пожалуйста, не понимаю, что делаю неправильно Выдает ошибку Error in Statement в Until и если ставлю Else Вот задание:
Листинг программы
  1. USES CRT;
  2. VAR
  3. a, y: integer; {parameters set by the user}
  4. s: extended; {parameter set by the computer}
  5. ans: char;
  6. q, w: double;
  7. Begin
  8. Repeat
  9. ClrScr;
  10. WriteLn(' Calculate programe #3');
  11. WriteLn(' /в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”ђ');
  12. WriteLn(' /в”Ђв”Ђв”Ђв”ђ в”Ђв”Ђв”Ђв”ђ ');
  13. WriteLn(' /в€љa-y + в€љa+y ');
  14. WriteLn(' /в”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђв”Ђ ');
  15. WriteLn(' _ / в”Ђв”Ђв”Ђв”ђ в”Ђв”Ђв”Ђв”Ђв”ђ ');
  16. WriteLn(' в€љ в€љa-y - в€љ a+y ');
  17. Write('Set the "a" = '); ReadLn(a);
  18. Write('Set the "y" = '); ReadLn(y);
  19. IF a<>0 Then
  20. begin
  21. If (a>0) and (y>0) Then
  22. begin
  23. If a>y Then
  24. q:=sqrt(a-y); ReadLn(q);
  25. w:=sqrt(a+y); ReadLn(w);
  26. s:=sqrt((q+w)/(q-w)); WriteLn('s= ', s:6:2);
  27. end;
  28. If (a>0) and (y<0) Then
  29. begin
  30. If a<y Then
  31. q:=sqrt(a-y); ReadLn(q);
  32. w:=sqrt(a+y); ReadLn(w);
  33. s:=sqrt((q+w)/(q-w)); WriteLn('s= ', s:6:2);
  34. end;
  35. If (a>0) and (y=0) Then
  36. begin
  37. q:=sqrt(a-y); ReadLn(q);
  38. w:=sqrt(a+y); ReadLn(w);
  39. s:=sqrt((q+w)/(q-w)); WriteLn('s= ', s:6:2);
  40. end;
  41. end;
  42. WriteLn('Return to the start? (Y/N)'); ReadLn(ans);
  43. Until (ans='N') or (ans='n');
  44. ReadLn;
  45. END.

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

textual
Листинг программы
  1. uses crt;
  2. var a,y,q,w: integer;
  3.    z: extended;
  4.    ans:char;
  5. begin
  6. repeat
  7. clrscr;
  8. writeln('Введите a,y');
  9. readln(a,y);
  10. q:=a-y;
  11. w:=a+y;
  12. if(q<0)or(w<0)or(q=w)or((q+w)*(q-w)<0)then writeln('Z не определено')
  13. else
  14.  begin
  15.   z:=sqrt((sqrt(q)+sqrt(w))/(sqrt(q)-sqrt(w)));
  16.   writeln('Z=',z:0:3);
  17.  end;
  18. writeln('Повторить ? (Y/y-да другое нет)');
  19. readln(ans);
  20. until upcase(ans)<>'Y';
  21. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы