Программу надо сформатировать и тогда её структура будет видна лучше. А чтобы понять, как идет выполнение, в нужных точках ставим промежуточную выдачу - это называется "трассировкой".
var s, k: integer; label met; begin s:=-12; k:=90; Writeln('s=',s,', k=',k); s:=s+10; Writeln('s=',s); met: Writeln('Метка met:'); k:=k+10; Write('k=',k); if k<200 then s:=50 else s:=s+k; Writeln(', s=',s); if k<200 then goto met; Writeln('Результат: s=',s) end.
4
Объяснение:
фрагмент кода меняет соседние элементы массива, если предыдущий меньше последующего и считает кол-во этих перестановок
Исходный
8 9 5 3 2 8 4 2 1 9 d := 0 ( 8 < 9)
1) 9 8 5 3 2 8 4 2 1 9 d := 1 (8 !< 5)
2) 9 8 5 3 2 8 4 2 1 9 d := 1 (5 !< 3)
3) 9 8 5 3 2 8 4 2 1 9 d := 1 (3 !< 2)
4) 9 8 5 3 2 8 4 2 1 9 d := 1 (2 < 8)
5) 9 8 5 3 8 2 4 2 1 9 d := 2 (2 < 4)
6) 9 8 5 3 8 4 2 2 1 9 d := 3 (2 !< 2)
7) 9 8 5 3 8 4 2 2 1 9 d := 3 (2 !< 1)
8) 9 8 5 3 8 4 2 2 1 9 d := 3 (1 < 9)
8) 9 8 5 3 8 4 2 2 9 1 d := 4
ответ: d := 4