Решить таблицей истинности
в соревнованиях по гимнастике участвуют алла, валя, сима и даша. болельщики высказали предположения о возможных победителях:
1. сима будет первой, валя — второй;
2. сима будет второй, даша — третьей;
3. алла будет второй, даша — четвёртой.
по окончании соревнований оказалось, что в каждом из предположений только одно из высказываний истинно, другое ложно. какое место на соревнованиях заняла каждая из девушек, если все они оказались на разных местах?
Для того, чтобы получить адрес подсети, нужно выполнить поразрядную логическую операцию «И» между маской и IP-адресом (в двоичной системе счисления)
IP-адрес: 248.228. 60.240 = 11111000.11100100.00111100.11110000
Маска: ???.???.???.??? = ????????.????????.????????.????????
Подсеть: 248.228. 56. 0 = 11111000.11100100.00111000.00000000
Так как в маске сначала идут все единицы, а потом все нули, то в третьем байте маски должно быть значение 11111000(2) = 248(10)
2)
Переведем значения из третьих байтов в двоичную систему счисления:155(10) = 10011011(2); 145(10) = 10010001(2)
В данных числах одинаковы четыре старших разряда (1001), поэтому в маске единичными могут быть четыре разряда, следовательно максимальное значение третьего байта маски = 11110000(2) = 240(10)
3)
Для того, чтобы получить адрес подсети, нужно выполнить поразрядную логическую операцию «И» между маской и IP-адресом (в двоичной системе счисления)
IP-адрес: 241.185.253. 57 = 11110001.10111001.11111101.00111001
Маска: ???.???.???.??? = ????????.????????.????????.????????
Подсеть: 241.185.252. 0 = 11110001.10111001.11111100.00000000
Так как в маске сначала идут все единицы, а потом все нули, то максимальное значение, которое может быть в третьем байте маски это 11111110(2) и, следовательно, наименьшее возможное количество нулей в двоичной записи маски подсети = 1+8 = 9
См. рисунок - там нагляднее.
//t1.txt должен быть в папке с программой
//Pascal
var
f: text;
numValue, Counts, n, c, t, i: integer;
begin
assign(f, 't1.txt');
reset(f);
Counts := 0;
c := 0;
while not eof(f) do
begin
readln(f, n);
if (c = 0) or (n = t) then
c := c + 1
else
c := 1;
t := n;
if c > Counts then
begin
Counts := c;
numValue := n
end
end;
close(f);
assign(f, 't2.txt');
rewrite(f);
writeln('Длина цепочки: ', Counts);
for i := 1 to Counts do
writeln(f, numValue);
close(f)
end.