84) Чтобы определить наибольшее количество единиц в разрядах маски надо рассчитать ее адрес в двоичной системе счисления. Это можно сделать с поразрядной конъюнкции (в результате побитного логического умножения адреса маски на ip адрес получим адрес сети)
Известен IP адрес: 68.112.69.138 и адрес сети 68.112.64.0
Первые два байта адреса 68 и 112 совпадают, то есть, если применить поразрядную конъюнкцию, получим адрес маски состоящий из восьми единиц: 11111111 и 11111111.
Рассмотрим третий байт.
маска : ip адрес: 69 в двоичной: 01000101 сеть: 64 в двоичной: 01000000
Правилом для маски является то, что если в маске оказывается ноль, то после него могут идти только нули. До нуля соответственно единицы.
Для шестого слева разряда маски: ?&1=0, значит в маске может находится только ноль.По правилу все остальные справа от шестого биты будут тоже равны нулю Второй бит: ?&1=1 значит в маске только 1, перед ним первый бит по правилу= 1 Третий, четвертый и пятый бит ?&0=0 могут быть как 0 так и 1,но по условию задачи нам надо найти наибольшее возможное количество единиц, следовательно примем значение равным 1.
Получаем значение второго байта маски: 11111000 В итоге адрес маски в двоичной системе получится 11111111.11111111.11111000.00000000 получаем 21 единицу. ответ: 21
88) Решение аналогично предыдущей задачи: IP адрес: 63.132.140.28 адрес сети: 63.132.140.0
Первые три байта ip адреса и адреса сети совпадают, в результате поразрядной конъюнкции получим значение маски 11111111.11111111.11111111
Для четвертого байта: маска: 28 в двоичной системе: 00011100 0 в двоичной: 00000000
Четвертый бит у маски ?&1=0 принимает значение 0 Все последующие биты по правилу= 0 Первые три бита могут быть равны только 1
В итоге адрес маски : 11111111.11111111.11111111.11100000 В нем 27 единиц
2. var n,s,i:integer; begin writeln ('Программа, которая вычисляет сумму нечетных чисел от 11 и до n, задаваемого клавиатуры (n>11)'); write ('Введите n: '); readln (n); for i:=11 to n do if i mod 2 = 1 then s:=s+i; writeln ('Сумма нечетных чисел от 11 до ',n,' равна ',s) end.
1. var a,b:real; begin writeln ('Программа для решения уравнения ax=b'); write ('Введите a и b: '); readln (a,b); if (a=0) and (b=0) then writeln ('x - любое число') else if (a=0) and (b<>0) then writeln ('решений нет') else writeln ('x = ',b/a) end.
Известен IP адрес: 68.112.69.138 и адрес сети 68.112.64.0
Первые два байта адреса 68 и 112 совпадают, то есть, если применить поразрядную конъюнкцию, получим адрес маски состоящий из восьми единиц: 11111111 и 11111111.
Рассмотрим третий байт.
маска :
ip адрес: 69 в двоичной: 01000101
сеть: 64 в двоичной: 01000000
Правилом для маски является то, что если в маске оказывается ноль, то после него могут идти только нули. До нуля соответственно единицы.
Для шестого слева разряда маски: ?&1=0, значит в маске может находится только ноль.По правилу все остальные справа от шестого биты будут тоже равны нулю
Второй бит: ?&1=1 значит в маске только 1, перед ним первый бит по правилу= 1
Третий, четвертый и пятый бит ?&0=0 могут быть как 0 так и 1,но по условию задачи нам надо найти наибольшее возможное количество единиц, следовательно примем значение равным 1.
Получаем значение второго байта маски: 11111000
В итоге адрес маски в двоичной системе получится 11111111.11111111.11111000.00000000
получаем 21 единицу.
ответ: 21
88) Решение аналогично предыдущей задачи:
IP адрес: 63.132.140.28 адрес сети: 63.132.140.0
Первые три байта ip адреса и адреса сети совпадают, в результате поразрядной конъюнкции получим значение маски 11111111.11111111.11111111
Для четвертого байта:
маска:
28 в двоичной системе: 00011100
0 в двоичной: 00000000
Четвертый бит у маски ?&1=0 принимает значение 0
Все последующие биты по правилу= 0
Первые три бита могут быть равны только 1
В итоге адрес маски : 11111111.11111111.11111111.11100000
В нем 27 единиц
ответ: 27 единиц
var n,s,i:integer;
begin
writeln ('Программа, которая вычисляет сумму нечетных чисел от 11 и до n, задаваемого клавиатуры (n>11)');
write ('Введите n: ');
readln (n);
for i:=11 to n do
if i mod 2 = 1 then s:=s+i;
writeln ('Сумма нечетных чисел от 11 до ',n,' равна ',s)
end.
1.
var a,b:real;
begin
writeln ('Программа для решения уравнения ax=b');
write ('Введите a и b: ');
readln (a,b);
if (a=0) and (b=0) then writeln ('x - любое число')
else if (a=0) and (b<>0) then writeln ('решений нет')
else writeln ('x = ',b/a)
end.