В файле C:\name.txt записаны в столбик имена. Сколько имен в файле начинается и заканчивается на одну и ту же букву.
Введем обозначения:
Т – файловая переменная
n – элемент файла (одна строка - имя)
d - количество букв в имени
К - количетво имен, которые начинеаются и заканчиваются на одну и ту же букву
program n5;
var T: text; n: string;
d, K: integer;
begin
assign (__, );
(T);
while not (eof (f)) do
begin
readLn (__ , __);// читаем из файла целую строку (одно имя)
d:=length (n);// находим кол-во символов в строке (кол-во букв в cлове)
If n[1] = n[d] then ;// если первая буква имени ( n[1] ) совпадает с последней
// буквой (n[d]), то увеличиваем К на единицу.
end;
close (___);// закрываем файл
// выводим ответ на экран
end.
ответ: м и к р о ф о н
о
м ы ш ь
д п
и ь
с ю п
к л а в и а т у р а
е о э
р ц к
в и д е о к а р т а
с а
с н
о
м о н и т о р
Объяснение:
Відповідь:
Нужно закодировать ещё четыре буквы (В, Д, Е, Н), а в дереве есть три свободных узла. Каждое продолжение дерева из свободного узла создаёт два узла вместо одного, то есть количество узлов увеличивается на 1 . Значит, нужно продолжить дерево в одном месте. С точки зрения длины кодов это можно сделать двумя
из узла 10 (длина кода 2 ) получить два узла с длиной кода 3 ;
из узла 001 или 111 (длина кода 3 ) получить два узла с длиной кода 4 .
В первом случае мы получим новые коды длиной 3,3,3,3, во втором – 2,3,4,4.
Подсчитаем количество знаков для кодирования слова ВВЕДЕНИЕ в каждом их этих случаев. В первом случае длина всех добавленных кодов (буквы В, Д, Е, Н) одинакова –3 бита. Длина кода буквы И задана – тоже 3 бита. Всего получается 8х3=24 бита.
Во втором случае длина добавленных кодов разная. Очевидно, что для получения наименьшей длины самым коротким должен быть код буквы Е (она встречается чаще всех), следующим – код буквы В. Тогда длина кода для Е – 2 бита, для В –3 , для Д и Н – по4 . Всего потребуется бита. 3х2+2х3+4+4+3=23 бита
Пояснення: