Причина перевыполнения, исправить repeat - Turbo Pascal

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

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

Листинг программы
  1. x, y, z, w, n: LongInt;
  2. var
  3. x, y, z, w, n: LongInt;
  4. begin
  5. n := MaxLongInt;
  6. n := Trunc(Sqrt(n));
  7. n := n - 7;
  8. x := 0:
  9. WriteLn('Все целые решения уравнения x^3 = y^2 + 63,');
  10. WriteLn('для 1 <= y <= ', n, ':');
  11. for y := 1 to n do
  12. begin
  13. z := y * y + 63:
  14. repeat
  15. Inc(x);
  16. w := x * x * x;
  17. until w>= z;
  18. if w = z then
  19. Writeln('(x, y) = (', x, ' ,' ,y, ')')
  20. else Dec(x);
  21. end
  22. Write('Работа закончена, нажчмите <Enter>:');
  23. ReadLn;
  24. end.

Решение задачи: «Причина перевыполнения, исправить repeat»

textual
Листинг программы
  1. var
  2.   x, y, z, w, n: LongInt;
  3.  
  4. begin
  5.   n := MaxInt;
  6.   n := Trunc(Sqrt(n));
  7.   n := n - 7;
  8.   x := 0;
  9.   WriteLn('Все целые решения уравнения x^3 = y^2 + 63,');
  10.   WriteLn('для 1 <= y <= ', n, ':');
  11.   for y := 1 to n do
  12.   begin
  13.     z := y * y + 63;
  14.     repeat
  15.       Inc(x);
  16.       w := x * x * x;
  17.     until w >= z;
  18.     if w = z then
  19.       Writeln('(x, y) = (', x, ' ,', y, ')')
  20.     else Dec(x);
  21.   end;
  22.   Write('Работа закончена, нажчмите <Enter>:');
  23.   ReadLn;
  24. end.

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

  1. В начале объявляются переменные x, y, z, w и n типа LongInt.
  2. Переменная n инициализируется значением MaxInt.
  3. Значение переменной n затем округляется в сторону меньшего значения с помощью функции Trunc.
  4. Из полученного значения вычитается 7, что приводит к новому значению переменной n.
  5. Переменная x инициализируется значением 0.
  6. Выводится строка «Все целые решения уравнения x^3 = y^2 + 63,», где x — это текущее значение переменной x, а y — это текущее значение переменной y.
  7. Далее идет цикл for, который выполняется от 1 до n.
  8. Внутри цикла переменная z инициализируется значением y*y+63.
  9. Затем выполняется повторное увеличение значения переменной x, пока значение переменной w (xxx) не станет больше или равно значению переменной z.
  10. Если значение переменной w равно значению переменной z, то выводится пара значений (x, y) с помощью строки «(x, y) = (», x, ' ,', y, ')».
  11. Если значение переменной w не равно значению переменной z, то значение переменной x уменьшается на 1.
  12. Цикл for завершается, и выводится сообщение «Работа закончена, нажчтите
  13. Считывается ввод пользователя с помощью функции ReadLn.

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


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

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

12   голосов , оценка 3.917 из 5

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

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

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