Что будет выведено ** экран в результате выполнения фрагмента программы: s:=0; For k:=0...

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

Что будет выведено на экран в результате выполнения фрагмента программы: s:=0; For k:=0 to 10 do begin x:=-10+3*k; if x>0 then s:=s+x; write(x:4); end; writeln(s); Как просчитать S? S должно быть 2077, но я не могу его рассчитать


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

s = 0

k = 0: x = -10+3*0 = -10; x>0 - нет

k = 1: x = -10+3*1 = -7; x>0 - нет

k = 2: x = -10+3*2 = -4; x>0 - нет

k = 3: x = -10+3*3 = -1; x>0 - нет

k = 4: x = -10+3*4 = 2; x>0 - да; s = 0+2 = 2

k = 5: x = -10+3*5 = 5; x>0 - да; s = 2+5 = 7

k = 6: x = -10+3*6 = 8; x>0 - да; s = 7+8 = 15

k = 7: x = -10+3*7 = 11; x>0 - да; s = 15+11 = 26

k = 8: x = -10+3*8 = 14; x>0 - да; s = 26+14 = 40

k = 9: x = -10+3*9 = 17; x>0 - да; s = 40+17 = 57

k = 10: x = -10+3*10 = 20; x>0 - да; s = 57+20 = 77

На экран будут выводиться значения: -10  -7  -4  -1   2   5   8  11  14  17  20

После 20 выведется значение s = 77. Т.е подряд, без пробелов, будут выведены числа 20 и 77.

Значение s = 77.

(194k баллов)
0

Спасибо, всё понятно