№4
Цикл для i от 5 до 3. То есть 3 повтора(итерации) (для i = 5;4;3)
На каждой итерации x уменьшается на 3, а у умножается на 3.
То есть по цикла x уменьшится на 3 3 раза.
x = 33 - 3 - 3 - 3 = 24
у по цикла умножится на 3 3 раза
у = 2 * 3 * 3 * 3 = 54
Итого, в конце работы программы получаем x = 24, y = 54
№5
Цикл для i от 8 до 8. То есть всего 1 повтор.
x = 3 * 3 = 9 (значение х изменилось с 3 на 9)
y = 700 - 9 = 691
Итого, в конце работы программы получаем x = 9, y = 691
№6
Идем по порядку
x = 3
y = x * 3 = 3 * 3 = 9
Далее идет цикл для i от 13 до y, то есть от 13 до 9. Это 5 итераций (i =13;12;11;10;9)
В цикле за одну итерацию x увеличивается на 4, а y уменьшается на 1.
То есть через 5 итераций получаем:
x = x + 4 + 4 + 4 + 4 + 4 = 3 + 4 + 4 + 4 + 4 + 4 = 23
y = y - 1 - 1 - 1 - 1 - 1 = 9 - 1 - 1 - 1 - 1 - 1 = 4
Итого, в конце работы программы получаем x = 23, y = 4
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i]
TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2
TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2
TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1
Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
Вроде все?