Переводим третий байт IP и адреса сети в двоичную систему
50 - 110010
48 - 110000
Так как это байт (а в байте 8 бит), допишем два незначащих нуля к получившимся числам:
00110010 - IP
00110000 - адрес сети
Адрес сети получается с применения поразрядной конъюнкции к маске и IP, проще говоря, при перемножении разрядов маски и IP-адреса. И в маске всегда сначала идут только единицы, а потом только нули. То есть можно записать так:
- маска
00110010 - IP
00110000 - адрес сети
где иксы в маске и цифры в IP-адресе - множители, а разряды адреса сети - произведение.
На 3 и 4 месте в маске однозначно должны быть единицы, т.к. если там будут нули, то и в адресе сети будут нули. Плюс к этому, в маске всегда сначала идут только единицы, а потом только нули, то есть можно записать так:
1111 - маска
00110010 - IP
00110000 - адрес сети
Второй справа разряд IP-адреса - единица, а адреса сети - ноль, значит в маске может быть только ноль:
1111хх00 - маска
00110010 - IP
00110000 - адрес сети
Оставшиеся два икса могут быть и единицами, и нулями. Нужно наименьшее возможное значение, значит поставим на их место нули:
11110000 - маска
00110010 - IP
00110000 - адрес сети
То есть третий байт маски 11110000, переведём в десятичную - получим 240.
from random import randint
S1 = [randint(1,100) for i in range(20)]
summa1 = 0
summa2 = 0
for i in S1:
if i % 2 == 0:
summa1 += i
else:
summa2 += i
print(f"Сумма чётных = {summa1}")
print(f"Сумма нечёт = {summa2}")
print(max(S1)) # Значение наибольшего элемента в массиве
print(min(S1)) # Значение наименьшего элемента в массиве
summa = 0
for i in S1:
if i < 30:
summa += i
print(f"Сумма чисел меньше 30-ти = {summa}")
summa = S1[2]
for i in S1:
summa *= i
print(f"Произведение элементов с индексов 2({S1[2]}) = {summa}")
const
n = 5;
m = 5;
type
tmatr = array[1..n, 1..m] of integer;
procedure PrintMatrix(g: tmatr);
var
i, j: integer;
begin
for i := 1 to n do
begin
for j := 1 to n do Write(g[i, j]:4);
Writeln
end
end;
procedure MakeMatrix(var a: tmatr);
var
i, j: integer;
begin
Randomize;
for i := 1 to n do
for j := 1 to n do a[i, j] := random(10) - 5;
end;
var
a: tmatr;
i, j, k: integer;
begin
MakeMatrix(a);
Writeln('matrica A: ');
PrintMatrix(a);
k := 0;
for i := 1 to n do
for j := 2 to m-1 do
if (a[i, j] < a[i, j+1]) and (a[i, j] > a[i, j-1]) then inc(k);
Writeln('kolichestvo elementov = ', k);
end.
Тестовое решение:
matrica A:
4 4 0 -2 -3
1 -4 4 -5 0
2 4 -2 1 -2
-4 -5 -4 -2 4
1 0 0 -3 2
kolichestvo elementov = 2