25
1)составьте программу которая выводит из слов "кино", "форма" и "книга" слово "информатика"
2) найдите ошибки в программе
vars: string; c: integer; d: char;
s: ='планета земля'
c: =length(s);
d: ='земля';
c: =pos(s, 'земля');
writeln(copy s, length(s)-1,2);
s2 - Заданное слово
Идея проста: мы проходим по заданной строке и копируем подстроку, начиная с символа i, с количеством символов, равным количеством символов заданного слова. Например:
Символьная строка:
34строка3254строка
Заданное слово:
строка
Мы просто берём и проходим циклом
34строка3254строка
34строка3254строка
34строка3254строка
...
и т.д. до самого конца. Если рассматриваемая нами подстрока равна заданному слову, то мы увеличиваем счётчик k на 1, после завершения цикла мы просто возвращаем значение нашего счётчика - количество вхождений заданного слова в строку.
P.S. Мы идём циклом не от 1 до length(s), а от 1 + l1 - l2. К примеру в нашей строке
нет смысла рассматривать подстроку, начиная отсюда
34строка3254строка
т.к. символов в ней явно меньше чем в самом заданном слове, следовательно, дальше оно нам уже не попадётся:)
Исходный код в приложении.
Известен IP адрес: 68.112.69.138 и адрес сети 68.112.64.0
Первые два байта адреса 68 и 112 совпадают, то есть, если применить поразрядную конъюнкцию, получим адрес маски состоящий из восьми единиц: 11111111 и 11111111.
Рассмотрим третий байт.
маска :
ip адрес: 69 в двоичной: 01000101
сеть: 64 в двоичной: 01000000
Правилом для маски является то, что если в маске оказывается ноль, то после него могут идти только нули. До нуля соответственно единицы.
Для шестого слева разряда маски: ?&1=0, значит в маске может находится только ноль.По правилу все остальные справа от шестого биты будут тоже равны нулю
Второй бит: ?&1=1 значит в маске только 1, перед ним первый бит по правилу= 1
Третий, четвертый и пятый бит ?&0=0 могут быть как 0 так и 1,но по условию задачи нам надо найти наибольшее возможное количество единиц, следовательно примем значение равным 1.
Получаем значение второго байта маски: 11111000
В итоге адрес маски в двоичной системе получится 11111111.11111111.11111000.00000000
получаем 21 единицу.
ответ: 21
88) Решение аналогично предыдущей задачи:
IP адрес: 63.132.140.28 адрес сети: 63.132.140.0
Первые три байта ip адреса и адреса сети совпадают, в результате поразрядной конъюнкции получим значение маски 11111111.11111111.11111111
Для четвертого байта:
маска:
28 в двоичной системе: 00011100
0 в двоичной: 00000000
Четвертый бит у маски ?&1=0 принимает значение 0
Все последующие биты по правилу= 0
Первые три бита могут быть равны только 1
В итоге адрес маски : 11111111.11111111.11111111.11100000
В нем 27 единиц
ответ: 27 единиц