3). В таблице Dat представлены данные о количестве голосов, поданных за 10 исполнителей народных песен (Dat[1] — количество голосов, поданных за первого исполнителя, Dat[2] — за второго и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Текст программы приведён на пяти языках программирования. Vark,m:integer;
Dat:array[1..10]ofinteger;
Begin
Dat[1]:=16;Dat[2]:=20;
Dat[3]:=20;Dat[4]:=41;
Dat[5]:=14;Dat[6]:=21;
Dat[7]:=28;Dat[8]:=11;
Dat[9]:=15;Dat[10]:=35;
m :=50;
fork :=1to10do
ifDat[k]< m then
begin
m :=Dat[k];
end;
writeln(m);
End.
Найдем наименьшее возможное значение третьего байта. Выпишем в столбик двоичные записи чисел 128 и 137. Добавим еще одну строчку, в которую будем записывать минимально возможное значение третьего байта. Если значения в столбике одинаковые, то ставим соответствующее число, если они различаются, ставим какой-нибудь знак. Я поставил знак '?'.
Теперь перенесем все '?' к последней единице(в нашем случае она и первая):
Так как нам нужно найти наименьшее возможное значение, заменяем '?' на нули:
Т.к. в маске подсети сначала идут только единицы, а затем нули, то логично, что если третий байт имеет значение 1000 0000, то первый и второй байт имеют значения 11111111.
Следовательно наименьшая маска подсети имеет вид: 11111111.11111111.10000000.00000000
ответ: 17 единиц.