Определите, что будет напечатано в результате работы следующей программы. var s, k:...

0 голосов
347 просмотров

Определите, что будет напечатано в результате работы следующей программы.
var s, k: integer;
begin
s:=500;
for k :=4 to 10 do
s := s-2*k;
write(s);
end.
Объясните всё доступно, пожалуйста.
P.S.: Ответ я знаю,=402, но мне нужно объяснение как это число получилось.
Задание на 34 балла


Информатика | 347 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

S := 500, то есть s изначально была равна 500
Затем начинается цикл for, в каждом повторе цикла переменная k увеличивается на 1, от 4 до 10. То есть в первом повторе k=4, во втором k=5, и так до тех пор, пока k не станет равна 10.
При этом каждый повтор цикла от S отнимается 2*k, то есть в первом повторе от s будет отнято 2*4=8, во втором 2*5 = 10, в третьем 2*6=12 и так далее.

Можно решить, рассмотрев все повторы цикла, у нас получится:
500-8-10-12-14-16-18-20 = 402

Можно найти сумму чисел, которые будут вычтены из S. Числа представляют собой арифметическую прогрессию с разницей в 2, первый элемент прогрессии 8, всего чисел 7. 
Сумму первых членов прогрессии найдем по формуле ((2*8+2(7-1))/2)*7 =  98
500-98 = 402

(15.5k баллов)
0

Пока нет, можно отметить после того, как придет уведомление.

0

Да на здоровье)