Лабораторная работа № 4. Символьные строки



Задание предназначено для приобретения практического опыта работы с классом std::string в языке программирования С++. Цель лабораторной работы состоит в формировании знаний и умений:

· по использованию различных способов описания и формирования символьных строк;

· по использованию методов чтения и записи строк в текстовых файлах;

· по использованию методов чтения и анализа потоковых данных, вводимых с клавиатуры.

Во всех программах необходимо предусмотреть возможность многострочного ввода с клавиатуры.

Варианты заданий

1) 1 Подсчитать в заданном тексте количество символов, слов, строк, абзацев. Подсчитать количество слов в предложениях и вывести статистическую таблицу, в которой длине предложения в словах будет соответствовать количество таких предложений в анализируемом тексте. 

2) Найти в заданном тексте все палиндромы (слова, которые одинаково читаются от начала к концу и от конца к началу: «оно», «шалаш»); слова, которые при прочтении от конца к началу дают другие существующие в этом тексте слова («кот» – «ток»); комбинации слов, которые при слиянии дают другие слова («подросток» – «подрос ток»); слова, при удалении буквы, дающие другие слова («глаз» – «газ») и слова, дающие другое слово при замене одной буквы («тон» – «ток»). Придумать и реализовать два-три варианта других подобных правил. 

3) Найти в тексте все последовательности идущих подряд одинаковых символов и заменить их сигнатурой {символ, количество}. Минимальная длинна последовательности, которая может подвергаться замене, задаѐтся пользователем. Предусмотреть режим восстановления оригинального текста. Пример: текст «длинношеее животное» должен быть заменѐн текстом «длиннош{e, 3} животное». 

4) Выделить в заданном тексте все диалоги (начинающиеся с новой строки и символа «тире»). Сохранить диалоги в отдельных текстовых файлах. Использовать правила построения диалогов, применяющиеся в русскоязычных текстах.

5) Подсчитать в заданном тексте количество вхождений каждого слова. Представить результат в виде таблицы (слово, количество вхождений). Сохранять результат в несколько результирующих файлов: список по алфавиту, список по количеству вхождений. Перед выводом статистики в файл предоставить пользователю информацию о количестве различных слов и предложить выбрать, какое количество слов должно быть записано в результирующие файлы. Обеспечить сохранение собираемой статистической информации во внешнем файле между сеансами работы программы с тем, чтобы накапливать базу данных по анализируемым файлам. 

6) Найти в тексте все повторяющиеся подстроки длиннее заданной пользователем величины (например, длиннее пяти символов). Заменить все вхождения подстроки кроме первого специальной сигнатурой: {индекс первого символа оригинальной строки, длина цепочки}. Перед заменой убедиться, что в тексте нет комбинаций символов, которые могут ошибочно восприниматься как формируемая сигнатура. Предусмотреть режим восстановления оригинального текста. Пример: текст «тестовая строка» должен быть заменён на текст «тестовая {3, 2}рока» при условии, что рассматриваются подстроки, начиная с длинны в два символа. 

7) Для двух заданных текстов найти самую длинную общую подстроку. Программа должна выводить позицию, с которой текст начинается в каждом из файлов, длину строки и текст самой строки. 

8) Придумать три различных собственных механизма шифрования текста. Предусмотреть режим восстановления оригинального текста по зашифрованному. Программа должна самостоятельно определять, какой именно вариант был использован. Один из вариантов должен предоставлять пользователю ввести ключ (пароль), используемый при шифровании и расшифровке. 

9) Найти в тексте все слова, встречающиеся в одинаковых контекстах (между одних и тех же слов). Подсчитать число вариантов перестановок таких слов (между участками с аналогичным контекстом) и вывести их. Пример: «напишите функцию вычисляющую ... напишите программу вычисляющую». Возможны три перестановки: «напишите программу вычисляющую напишите функцию вычисляющую» «напишите программу вычисляющую ... напишите программу вычисляющую» «напишите функцию вычисляющую ... напишите функцию вычисляющую».


Дата добавления: 2021-07-19; просмотров: 103; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!