Чему будут равны значения величин a и b после выполнения этого фрагмента? a : = -1 b : = 2 c : = 1 b : = b - 2 * a a : = (4 + a) / c b : = b - 8 / b + a
Работа не моя: Program raketa; uses graph; var gd,gm:integer; begin detectgraph (gd,gm); initgraph (gd,gm,'C:\tp7 '); line (300,60,240,120); line (240,120,240,360); line (360,120,360,360); line (240,360,360,360); line (300,60,360,120); line (240,210,210,240); line (210,240,240,240); line (360,210,390,240); line (390,240,360,240); circle (300,150,15); circle (300,210,15); circle (300,270,15); Bar (270,300,240,360); line (240,360,180,450); line (180,450,420,450); line (420,450,360,360); line (330,450,330,370); line (300,450,300,365); line (270,450,270,370); line (240,330,180,330); line (180,330,90,450); line (172,330,80,445); line (300,60,300,30); readln end.
Представим 155 в двоичном виде: 10011011 Представим 145 в двоичном виде: 10010001 Маска в IPv4 - последовательность из 32-х 1 и 0 такая, что сначала идет n единиц, затем 32-n нулей. Число единиц равно наибольшему количеству совпавших бит у адресов слева направо. Видим, что первые два блока полностью совпадают, так как их десятичные записи совпадают. Различия уже начинаются в третьем блоке. В разложении чисел видно, что совпадают лишь первые 4 бита, дальше уже идет первое несовпадение. поэтому маска для этих адресов выглядит так: 11111111.11111111.11110000.00000000 Переводим 11110000 в десятичный вид и получаем 240.
b = 2
c = 1
b = b - 2 * a = 2 - 2 * (-1) = 2 + 2 = 4
a = (4 + a) / c = (4+(-1)) / 1 = 3 / 1 = 3
b = b - 8 / b + a = 4 - 8 / 4 + 3 = 4 - 2 - 3 = 5
Окончательно
a = 3
b = 5