написать в паскале 2 программы: в виде функции и процедуры (на первой фотке уравнение,которое надо написать и некоторые подсказки,написанные карандашом) (на втором фото пример другой задачи,который нам дали)
5) Проверим предлагаемые варианты ответов. - Г = 1: Явно однозначности нет: 101 можно расшифровать как В или ГАГ. Итак, одним битом букву Г закодировать нельзя, попробуем двумя. - Г = 11: можно! Получится префиксный код (потому расшифровка будет однозначной). - Г = 01. Однозначности нет: 0101 расшифровывается как ГГ или АВ. Дальше проверять бессмысленно: 010 состоит из 3 битов. ответ. 2) 11.
7) Опять проверяем. - Г = 11. Нет однозначности: 11 может быть расшифровано как ББ или Г. - Г = 000: подходит, т.к. получается префиксный код. Остальные варианты не короче этого. ответ. 2) 000.
Для справки. Префиксным кодом называется такой кодировки, при котором код никакого символа не начинается кодом другого символа (т.е. если, например, код символа 'a' есть 01001, то все остальные коды символов не могут начинаться на 01001...). Еще бывают постфиксные коды (когда коды не могут оканчиваться кодами других символов). Префиксные и постфиксные коды можно расшифровать однозначно (однако бывают коды, не являющиеся постфиксными или префиксными, но при этом допускающие однозначную расшифровку)
1) Для того, чтобы получить адрес подсети, нужно выполнить поразрядную логическую операцию «И» между маской и 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
- Г = 1: Явно однозначности нет: 101 можно расшифровать как В или ГАГ.
Итак, одним битом букву Г закодировать нельзя, попробуем двумя.
- Г = 11: можно! Получится префиксный код (потому расшифровка будет однозначной).
- Г = 01. Однозначности нет: 0101 расшифровывается как ГГ или АВ.
Дальше проверять бессмысленно: 010 состоит из 3 битов.
ответ. 2) 11.
7) Опять проверяем.
- Г = 11. Нет однозначности: 11 может быть расшифровано как ББ или Г.
- Г = 000: подходит, т.к. получается префиксный код.
Остальные варианты не короче этого.
ответ. 2) 000.
Для справки. Префиксным кодом называется такой кодировки, при котором код никакого символа не начинается кодом другого символа (т.е. если, например, код символа 'a' есть 01001, то все остальные коды символов не могут начинаться на 01001...). Еще бывают постфиксные коды (когда коды не могут оканчиваться кодами других символов). Префиксные и постфиксные коды можно расшифровать однозначно (однако бывают коды, не являющиеся постфиксными или префиксными, но при этом допускающие однозначную расшифровку)
Для того, чтобы получить адрес подсети, нужно выполнить поразрядную логическую операцию «И» между маской и 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
См. рисунок - там нагляднее.