Переводим 3 байт обоих адресов в двоичную систему счисления 152(10) = 10011000(2) 157(10) = 10011101(2)
Запишем их друг под другом
10011000 10011101
Нам нужен наибольший байт маски. В маске под единицами записывается адрес сети, под нулями - номер хоста. Адрес сети у этих адресов одинаковый, то есть для поиска наибольшего байта маски мы можем байты разделить так 10011 000 10011 101
Первые пять разрядов - это окончание адреса сети, последние три - начало хоста. Хосту в маске подсети соответствуют нули, адресу сети - единицы, получается, что наибольший байт маски равен
1. var a:array [1..4, 1..4] of integer; i, j, max: integer; Begin for i := 1 to 4 do begin for j := 1 to 4 do read(a[i][j]); readln; end; max := a[1][1]; for i := 2 to 4 do if max < a[i][i] then max := a[i][i]; writeln(max); End.
2. var a:array [1..5, 1..5] of integer; i, j, m, sum: integer; Begin for i := 1 to 5 do begin for j := 1 to 5 do read(a[i][j]); readln; end; readln(m); sum := 0; for i := 1 to 5 do if (m - i > 0) and (m - i < 6) then sum := sum + a[i][m - i]; writeln(sum); End.
3. Const N = 5; var a:array [1..N, 1..N] of integer; i, j, max: integer; Begin for i := 1 to N do begin for j := 1 to N do read(a[i][j]); readln; end; max := a[1][N]; for i := 2 to N do if (max < a[i][N + 1 - i]) then max := a[i][N + 1 - i]; writeln(max); End.
4. Const N = 5; var a:array [1..N, 1..N] of integer; i, j, count: integer; sum: real; Begin for i := 1 to N do begin for j := 1 to N do read(a[i][j]); readln; end; sum := 0; count := 0; for i := 1 to N do if (a[5][i] mod 2 = 1) then begin sum := sum + a[5][i]; inc(count); end; sum := sum / count; writeln(sum); End.
5. var a:array [1..4, 1..4] of integer; i, j, upper_sum, lower_sum: integer; Begin for i := 1 to 4 do begin for j := 1 to 4 do read(a[i][j]); readln; end; upper_sum := 0; lower_sum := 0; for i := 1 to 4 do begin for j := i + 1 to 4 do upper_sum := upper_sum + a[i][j]; for j := 1 to i - 1 do lower_sum := lower_sum + a[i][j]; end; writeln(upper_sum); writeln(lower_sum); End.
152(10) = 10011000(2)
157(10) = 10011101(2)
Запишем их друг под другом
10011000
10011101
Нам нужен наибольший байт маски. В маске под единицами записывается адрес сети, под нулями - номер хоста. Адрес сети у этих адресов одинаковый, то есть для поиска наибольшего байта маски мы можем байты разделить так
10011 000
10011 101
Первые пять разрядов - это окончание адреса сети, последние три - начало хоста. Хосту в маске подсети соответствуют нули, адресу сети - единицы, получается, что наибольший байт маски равен
10011 000
10011 101
11111 000 - маска
11111000(2) = 248(10)