Неожиданный результат программы - 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.
Объяснение кода листинга программы
- Объявлены три переменные:
a
,s
иn
типа integer. - Переменная
n
инициализируется значением 7. - Запускается цикл repeat, который выполняется до тех пор, пока условие не станет ложным.
- Внутри цикла выводится запрос на ввод числа, используя функцию write('Enter new number:').
- Введенное число сохраняется в переменной
a
. - Внутри цикла repeat выводится сообщение
a-7=
, используя функцию write(a,'-7='). - Пользователь вводит число, используя функцию readln(s).
- Цикл repeat продолжается до тех пор, пока значение
a
минус 7 не станет равным введенному числу. - Когда условие выполняется, выводится сообщение
Correct
. - Цикл repeat завершается, когда условие становится ложным.
- Программа завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д