Не могу понять код - Free Pascal
Формулировка задачи:
Всем привет! Я абсолютный новичек в программировании и в паскале, поэтому прошу вас помочь разобраться.
Одна из задач в ЕГЭ выглядит так:
Нужно определить какое число будет выведено на экран.
Я рассуждал так:
1) Функция F принимает значение 1 при условии, что х является четным числом, и -1 при условии, что х - это нечетное число.
2) Далее переменной m задается значение 0.
3) Создается цикл, который срабатывает 20 раз при этом каждый раз подставляет в функцию F значение, равное номеру цикла (то есть по очереди 1,2,3 и так до 20).
4) В зависимости от этого функция принимает либо значение 1, либо -1 (при нечетных t)
5) Далее, каждый раз переменной m присваивается значение равное сумме 0 + (1\-1)*1,2,3,4...20. Итого в последнем цикле m должно быть равно 0 + 1*20=20
Я дал ответ к задаче 20. Он оказался неверным. Верный ответ это 10. Но я не могу понять, почему, как это работает, что в итоге мы получаем 10. Пожалуйста объясните.
var t, m: integer; Function F (x: integer): integer; begin if x mod 2 = 0 then F:= 1 else F:= -1 end; begin m:= 0; for t:= 1 to 20 do begin m:= m+F(t)*t end; write (m); end.
Решение задачи: «Не могу понять код»
textual
Листинг программы
for t:= 1 to 20 do begin m:= m+F(t)*t//если t четное, то +t, если нечетное, то -t end;
Объяснение кода листинга программы
- Объявляется цикл for с переменной t от 1 до 20
- В каждой итерации цикла значение переменной m увеличивается на произведение F(t) и t
- Если t четное, то к значению переменной m добавляется значение переменной t, если нечетное, то отнимается значение переменной t
- Код не содержит операций присваивания, поэтому предполагается, что переменная m инициализируется до начала цикла и используется после его завершения
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д