Лабораторная работа 2.

Тема.Работа со строками.

Требования и общие указания к заданиям.

Обрабатываемый в программе текст должен содержать несколько строк. Но массив строк не формировать, то есть в оперативной памяти хранить одну обрабатываемую строку. Оперативную память резервируем для одной строки. Вводим строку, анализируем её и на её место вводим новую строку (см. пример 3).

В задачах выделения и анализа слов возможны следующие уровни сложности задач:

· первый, самый простой уровень, предполагает, что слова разделены одним пробелом (6 баллов);

· задачи незначительно усложняются, если предположить, что между словами может быть несколько пробелов (7 баллов);

· в задачах следующего уровня предполагается, что между словами может быть любое количество не обязательно одинаковых разделителей. Например, слова могут быть разделены тремя точками (многоточием), после которых следует пробел; или скобкой, запятой и пробелом, как это имеет место в нашем предложении и т. п. (9 баллов);

· и, наконец, алгоритм и программа ещё более усложняются, если предположить, что слова могут переноситься с одной строки текста на другую строку (10 баллов).

В скобках указано наибольшее количество баллов, на которое можно оценить своевременно выполненное задание среднего уровня сложности (B), в зависимости от требований к тексту.

Предусмотреть цветной вывод исходного или преобразованного текста. Например, в задаче B10 слова максимальной длины вывести другим цветом.

Cложность задач и их оценка зависят также от того, учитывать то, что записано в квадратных скобках условия задачи или нет. Рекомендуется вначале написать и отладить программу для более простого условия, а затем её усложнить.

 

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

A. Задачи первого простого уровня.

1. В английском тексте найти общее количество гласных букв.

2. В тексте найти общее количество символов-разделителей.

3. В тексте найти общее количество цифр.

4. Найти номер строки, в которой больше всего цифр.

5. Сколько раз в каждой строке встречается заданная десятичная цифра?

6. Из заданного текста выбрать те символы, которые встречаются в нём ровно один раз. Вывести их в том же порядке, как они были в тексте.

7. Из текста удалить заданный символ, каждый раз сдвигая оставшуюся часть каждой строки “влево”.

8. Сколько в тексте вопросительных, восклицательных и утвердительных предложений?

 

B. Задачи второго среднего уровня.

Посимвольный анализ текста.

1. Проверить, соблюдается ли в тексте баланс круглых скобок. Для каждой открывающей скобки “(“ должна быть найдена соответствующая закрывающая “)”.

2. Проверить наличие в тексте одного из знаков разделителей (“.” , ”?”, ”!”) перед каждой большой русской буквой.

3. В тексте найти символ (один, любой), который встречается чаще других.

4. В каждой строке текста найти символ[ы], который встречается наименьшее количество раз.

5. В строке найти все английские буквы, которые встречаются чаще других. [Различия между прописными и строчными буквами не делать,] другие символы (русские буквы, разделители, цифры и т.д.) не учитываются. Результат вывести в виде строчных букв. Например, в строке “ABCD abc 123123123111 xyz ABCDEFaB x” такими символами являются “a”, “b”, “c”, которые без учёта регистра повторяются три раза.

6. Символы строки вывести по возрастанию частоты их встречаемости в строке. [Символы, встречающиеся одинаковое количество раз, должны располагаться по возрастанию их кодов].

7. Найти и вывести номера строк текста, в которых встречается заданная подстрока и количество её повторений.

Выделение и анализ слов.Как и в предыдущих задачах, массив строк не формируем.

8. Напечатать квитанцию об оплате за телеграмму, если стоимость одного слова задана.

9. В тексте найти количество слов, начинающихся и заканчивающихся гласной русской буквой.

10. В тексте найти и вывести [без повторений] все слова максимальной длины, не формируя массива слов.

11. Какие из букв встречаются в одном слове строки? [Какие из букв встречаются в К словах?]

12. Есть ли символ, который встречается во всех словах строки?

13. Сколько раз повторяется в тексте каждое слово, которое встречается в нём?

14. В тексте найти одну пару [все пары] слов, из которых одно является обращением другого ( например, “abcd” и “dcba”).

15. В тексте найти все слова палиндромы, которые одинаково читаются слева направо и справа налево ( шалаш, поп и т.п.).

Преобразование текста .

16. В тексте одно введённое слово заменить другим словом, которое также вводится с экрана. При выводе исходной и изменённой строки старое и новое слово выделить другим цветом.

17. Первую букву каждого слова поменять на прописную букву. При выводе выделить её другим цветом.

18. После каждого слова текста, заканчивающегося заданной подстрокой, вставить указанный символ.

19. Из текста удалить все слова заданной длины.

20. Из каждой строки текста удалить всю оставшуюся после символов “//” часть.