М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
andrey1shpirko
andrey1shpirko
21.06.2021 18:55 •  Информатика

Возможность отправлять закодированные сообщения во время второй мировой войны была достаточно важной для союзников. сообщения всегда отправлялись после их кодирования при известного пароля. иметь фиксированный пароль было небезопасно, поэтому возникла необходимость часто изменять его. однако следовало разработать механизм отправления нового пароля. у одного из , работавших в криптографической команде, возникла умная идея - отправить пароль, скрытый в самом сообщении. интересным моментом было то, что получателю сообщения достаточно было знать только размер пароля, а потом найти его в полученном тексте. пароль размера n можно найти поиском в тексте наиболее часто встречаемой подстроки из n символов. после нахождения пароля все подстроки с ним, удаляются из текста. теперь пароль можно использовать для расшифровки сообщения. однако ваша будет . вам достаточно написать программу, которая по заданному размеру пароля и закодированному сообщению найдет пароль в соответствии с описанным выше алгоритмом. рассмотрим пример, в котором размер пароля равен трем (n = 3), а текст сообщения имеет вид baababacb. паролем будет aba, потому что размер этой подстроки 3, она появляется чаще всего во всем тексте (дважды), а остальные шесть различных подстрок появляются только один раз (baa, aab, bab, bac, acb). технические условия входные данные состоит из нескольких тестов. каждый тест представляет собой одну строку, в которой находится длина пароля n (0 < n ≤ 10) и закодированное сообщение. сообщение содержит только прописные буквы латинского алфавита, его длина не более 106 и не меньше n. выходные данные для каждого теста в отдельной строке следует вывести искомый пароль. если существует несколько паролей, удовлетворяющих , то вывести лексикографически наименьший.

👇
Ответ:
murzyeva1970
murzyeva1970
21.06.2021
Type
    piece = record
        value: string[10];
        count := 1;
    end;

var
    pieces: array[1..200]of piece;
    i, j, n, pieces_n: integer;
    s, p: string;
    found: boolean;
    imax:=1;

begin
    read(s);
    read(n);
    for i := 1 to length(s) - n + 1 do
    begin
        p := Copy(s, i, n);
        found := false;
        for j := 1 to pieces_n do
            if pieces[j].value = p then begin
                pieces[j].count := pieces[j].count + 1;
                found := true;
                if pieces[imax].count < pieces[j].count then
                    imax := j;
                break;
            end;
        if not found then begin
            pieces_n := pieces_n + 1;
            pieces[pieces_n].value := p;
        end;
    end;
   
    writeln(pieces[imax].value);
end.
4,4(78 оценок)
Открыть все ответы
Ответ:
dtgyhyccubbycy
dtgyhyccubbycy
21.06.2021

1.Открыть правой рукой хлебницу; __2.Взять булку хлеба правой рукой; __3.Положить хлеб на разделочную доску; (предположим, что доска уже лежала на столе) __4.Открыть правой рукой верхний ящик стола; __5.Найти блестящий нож, длиной 20 см, с черной ручкой; __6.Взять нож в правую руку; __7.Поднести нож к хлебу; __8.Зафиксировать хлеб левой рукой, взявшись за левый край булки; __9.Расположить нож строго над правым ребром булки хлеба; __10.Повторять следующие действия 5 раз: 10.1.Отступить влево на сантиметр; 10.2.Повторять следующие действия, пока лезвие ножа не не коснется доски: 10.2.1.Прижать нож к хлебу; 10.2.2.Совершить ножом возвратно поступательное движение вперед-назад; 10.3.Поднять нож вверх; __11.Положить нож в ящик; __12.Отпустить левой рукой хлеб.

Объяснение:

Запускаем программу и смотрим, как она работает: Ой... вместе с пятым куском и палец отрезал... чёрт! остановить программу! Я же не написал как именно нужно зафиксировать хлеб левой рукой, схватился как попало и большой палец торчал в сторону... Возвращаемся к строчке "Зафиксировать хлеб левой рукой, взявшись за левый край булки;" После нее пишем: "Поджать большой палец левой руки влево, к ладони;" Запускаем программу Ой... на строчке "Положить нож в ящик;" нож упал на пол... Проклятье! оказывается, стол стоит немного под наклоном и ящик сам закрылся... Возвращаемся к коду и перед строчкой "Положить нож в ящик;" пишем "Открыть правой рукой верхний ящик стола;" Заметили ошибку? Нет?! Как мы можем открыть ящик правой рукой, если в этой руке нож? Значит, сначала нужно положить нож на стол, потом открыть ящик, снова взять нож и т.д. И делаем мы это до тех пор, пока хлеб не будет нарезан как следует, без повреждения мебели и пальцев. Вот, примерно так происходит отладка С опытом начинаешь писать программы, которые работают с первого раза, допуская минимум ошибок, а проверка "открыт ли ящик", перед складыванием в него чего-то, входит в привычку. Когда какие-то операции совершаются постоянно, такие как нарезка хлеба, мойка посуды и т.д., то программисты их описывают в виде процедур. Процедура - набор определенных действий, спрятанный под одной командой. Таким образом, текст программы, который я приводил выше, можно поместить в процедуру под названием НарезатьХлеба(параметр), где в качестве параметра будем указывать количество кусков

4,4(13 оценок)
Ответ:
Sulaiman00
Sulaiman00
21.06.2021

Я тебе дал,а ты сам подумай)

Объяснение:

Repeat — это цикл с пост условием то есть в первый раз всё равно выполнится. Теперь разберём цикл, он будет выполнять это действие

(p:=p*0.1) пока (p) не станет меньше 0.1 , теперь работаем в теле цикла, (p) изначально равен двум по этому получаем p:=1*0,1; получаем p:=0,1 проверяем условие 0,1<0,1  нет повторяем второй раз цикл, теперь p:=0,1 а не 1 как было в первый раз p:=0,1*0,1 p:=0,01 проверяем условие

0,01<0,1  да меньше цикл прерывается и (p) остаётся равным 0,01

4,8(54 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ