<h2>Уточнение</h2>
Если в выражении z:= (z + x/2)/2 всё-таки сначала высчитывается (z + x), а потом делится на 4, то ответ будет другой.
Но также влияет на ответ то, какой тип у x и z. Если они оба int, то дробная часть отбрасывается и в ответе получится также, если же тип double или float, то ответ будет другим.
<h2>Ответ</h2>
x = 39
z = 1, i = 0
z = (z + x/2)/2 = (1 + 39/2)/2 = 10.25
i = 0 + 1 = 1
1 < 4 - да
...
z = (10.25 + 39/2)/2 = 14.87500
i = 2
2 < 4 - да
...
z = (14.87500 + 39/2)/2 = 17.1875
i = 3
3 < 4 - да
...
z = (17.1875 + 39/2)/2 = 18.34375
i = 4
4 < 4 нет
<h3>z = 18.34375</h3>
От 0до 255-254 либо нет потомучто не получается как у тебя ответы
1 байт - 8 бит т. е от 00000000=0 до 11111111=255,
все что между ними, - это разные переборы нулей и единиц ни разу не повторяющихся, например 01001100 или 00001111 и т. д. таких переборов как раз 255, 00000001=1 00000010=2 00000011=3 00000100=4 и т. д. 11111110=254
2000 кб= 2 048 000б
2 048 000б ÷ 1024000 б/с= 2 сек (сек сокращяются)
Var
a:array[1..12]of integer;
m, n:integer;
Begin
a[1]:=31;a[7]:=31;
a[2]:=28;a[8]:=31;
a[3]:=31;a[9]:=30;
a[4]:=30;a[10]:=31;
a[5]:=31;a[11]:=30;
a[6]:=30;a[12]:=31;
Write('Введите номер месяца -> ');
Readln(m);
Write('Год високосный(1 - да || 0 - нет)?');
Readln(n);
if (m = 2) then Writeln(a[m] + n) else
Writeln(a[m]);
end.