Неожиданный результат программы - Free Pascal

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

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

Проблема в том что после первой итерации в цикле (которая проходит верно) программа начинает отнимать по одному. Программа должна спросить у пользователя число которое он загадал, потом спросить сколько будет разность от этого числа и числа 7, если ответ правильный спросить следующее, если не правильный попросить ответить заново. Help pls.
program minus7;
var
    s, a, n: integer;
begin
    n := 7;
    readln (s);
for s := s-n downto 0 do
    begin
    writeln ('what number next?');
    readln (a);
    writeln(s);
    end;
        if a = s then
        writeln('Yes');
end.

Решение задачи: «Неожиданный результат программы»

textual
Листинг программы
var
 a,s,n:integer;
begin
  n:=7;
  repeat
    write('Enter new number:');
    readln(a);
    repeat
      write(a,'-7=');
      readln(s);
    until a-7=s;
    writeln('Correct');
  until false;
end.

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

  1. Объявлены три переменные: a, s и n типа integer.
  2. Переменная n инициализируется значением 7.
  3. Запускается цикл repeat, который выполняется до тех пор, пока условие не станет ложным.
  4. Внутри цикла выводится запрос на ввод числа, используя функцию write('Enter new number:').
  5. Введенное число сохраняется в переменной a.
  6. Внутри цикла repeat выводится сообщение a-7=, используя функцию write(a,'-7=').
  7. Пользователь вводит число, используя функцию readln(s).
  8. Цикл repeat продолжается до тех пор, пока значение a минус 7 не станет равным введенному числу.
  9. Когда условие выполняется, выводится сообщение Correct.
  10. Цикл repeat завершается, когда условие становится ложным.
  11. Программа завершается.

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


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

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

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