Дана программа: Program zl;
var s.t: integer;
begin
readln(s);
readln(t);
if (s<10) or (t>10)
I
then writeln('ДА)
else writeln('HET')
end.
Было проведено 9 запусков этой программы, при которых в качестве
значений переменных ѕи t вводились следующие пары чисел:
(1, 2); (11, 2); (1, 12); (11, 12); (-11, -12);
(-11, 12); (-12, 11): (10, 10); (10,5)
Сколько было запусков, при которых программа напечатала «ДА»?
ответ:
ИСПОЛЬЗУЕТ Вывод ИЗ "...\Отделы\Обмен\", Приём ИЗ "...\Отделы\Обмен\", Матем ИЗ "...\Отделы\Числа\";
ПЕР
массив: РЯД 30 ИЗ ЦЕЛ;
сч, число: ЦЕЛ;
найдено: КЛЮЧ;
УКАЗ
ОТ сч := 0 ДО РАЗМЕР(массив) - 1 ВЫП
массив[сч] := УЗК(ВШИРЦЕЛ(Матем.случ() * 65)) + 20;
Вывод.ЧЦел("%d ", массив[сч], 0, 0, 0)
КОН;
Вывод.Цепь("^");
число := Приём.Число();
Вывод.Цепь("^");
найдено := ОТКЛ;
ОТ сч := 0 ДО РАЗМЕР(массив) - 1 ВЫП
ЕСЛИ массив[сч] > число ТО
Вывод.ЧЦел("%d ", массив[сч], 0, 0, 0);
ЕСЛИ НЕ найдено ТО найдено := ВКЛ КОН
КОН
КОН;
ЕСЛИ НЕ найдено ТО Вывод.Цепь("нет") КОН
КОН Задание.
96
Объяснение:
Сначала вспомним, что такое конъюнкция: это аналог логической операции И(в простонародье - операции умножения). В бинарной(двоичной) системе счисления она используется так :
0 и 0 = 0
1 и 0 = 0
0 и 1 = 0
1 и 1 = 1
Ну, а теперь возьмём пример
Адрес: 231.32.255.131
Маска: 255.255.240.0
Отлично. Посмотрим сразу на число 255, оно в двоичной системе выглядит так : 11111111. Это значит, что при побитовой конъюнкции любого числа, получается тоже самое число. Т.е. :
231 = 11100111, 255 = 11111111. (возьму первые 4 бита : 1*1=1,1*1=1,1*1=1,1*0=0)
Т.о. 231(логическое И)255=231.
Теперь адрес сети:
231*255=231
32*255=32
255*240=240
131*0=0
Вот и получили адрес сети : 231.32.240.0
Теперь решение задачи :
Тут нужно в обратную сторону. Есть IP адрес, есть узел.
Узел : 98.162.71.123
Адрес: 98.162.71.96
Надо найти правый байт. У узла он равен 123(в десятичной) -> 1111011(в двоичной). У адреса он равен 96(в десятичной) -> 1100000.
Ну, а теперь обратное действие, смотрим на байты узла, умножаем на x, получаем байты адреса. Вот так :
1111011*=1100000
1*х=1 -> x=1
1*x=1 -> x=1
1*x=0 -> x=0
... И так далее, но дальше считать нет смысла, ибо все остальные пять байтов будут равны нулю, т.к. правая часть вся равна нулю(по свойствам выше)
Получили =1100000, а это тоже самое, что и последний байт адреса сети, и равен он 96.
Получили маску : 255.255.255.96