Практика №5. Строковые типы Простые задачи Написать функцию (и тестирующую функцию main), которая: 1. Дана строка. Определить количество содержащихся в ней цифр. 2. Дана строка. Определить количество содержащихся в ней прописных латинских букв. 3. Дана строка. Определить количество строчных латинских и русских букв. 4. Дано натуральное число. Перевести число в строку без использования стандартных функций языка. 5. Дана строка, содержащая натуральное число. Вывести сумму цифр этого числа. 6. Задана строка, изображающая двоичную запись натурального числа. Вывести десятичную запись этого же числа. 7. Дана строка, изображающая арифметическое выражение вида <цифра> ± <цифра> ± <цифра> ±…± <цифра>, где на месте «±» стоит знак сложения «+» или вычитания «-» (например, 4+7-2-8). Вывести значение данного выражения. 8. Дан символ C и строка S. Удвоить каждое вхождение символа C в строку S. 9. Дан символ C и строки S, S0. После каждого вхождения символа C в строку S вставить строку S0. 10. Даны строки S и S0. Удалить из строки S последнюю подстроку, совпадающую с S0. Если совпадающих подстрок нет, то выдать исходную строку без изменений. Задачи средней сложности Написать функцию (и тестирующую функцию main), которая: 1. Текст записан одной длинной строкой. Признаком красной строки служит символ $. Переформатировать текст в 60-символьные строки, формируя абзацы. 2. Дана строка. Преобразовать в ней все прописные буквы в строчные. 3. Текст записан одной длинной строкой. В заданном тексте найти самое длинное слово. 4. Текст записан одной длинной строкой. Подсчитать частоту встречаемости каждого слова в тексте. 5. Имеется большой словарь русских слов. Найти в нем слова-палиндромы, которые читаются одинаково как слева направо, так и справа налево. Например, АННА, ШАЛАШ и т.д. 6. В имеющемся словаре найти группы слов, записанные одними и теми же буквами и отличающиеся только их порядком, т.е. одно из другого может получено посредством перестановки букв (например, КОРМА, КОМАР). 7. В имеющемся словаре найти пары слов (анаграммы), при прочтении каждого из которых в обратном направлении образуется другое слово пары, например, (ПОЛК, КЛОП), (БАР, РАБ). 8. Для заданного достаточно длинного слова найти в имеющемся словаре все слова, в которых использованы только буквы, имеющиеся в заданном слове (с учетом кратности вхождения). 9. Из имеющегося словаря выбрать наиболее длинное слово, в котором все буквы разные. 10. Задан набор ключевых слов, а также текст, в котором хранится длинный список названий книг и научных работ. Выбрать названия, содержащие хотя бы одно из заданных ключевых слов. 1 11. Дана строка, состоящая из русских слов, набранных заглавными буквами и разделенных пробелами (одним или несколькими). Найти количество слов, содержащих букву «А». Задачи повышенной сложности Написать функцию (и тестирующую функцию main), которая: 1. Текст (например, арифметическое выражение) содержит многократно вложенные круглые скобки. Исправить его, оставив скобки первого уровня круглыми, второго – заменить на квадратные, третьего и последующего – на фигурные. Убедиться в корректности использования скобок, т.е. число открывающихся и закрывающихся скобок должно совпадать. 2. Строка содержит арифметическое выражение, состоящее из целых чисел и знаков операций +, -, *, / (без скобок). Проверить корректность выражения в смысле последовательности чисел и знаков операций. В случае корректности вычислить значение выражения с учетом приоритетов операций. 3. Дана строка, содержащая полное имя файла, т.е. имя диска, список каталогов, собственно имя и расширение. Выделить из этой строки имя файла без расширения. Замечание: необходимо учесть, что в качестве разделителя имен каталогов может быть использован как прямой слеш, так и обратный. 4. Дана строка, содержащая полное имя файла, т.е. имя диска, список каталогов, собственно имя и расширение. Выделить из этой строки название последнего каталога (без символа “/” или “\”). Замечание: необходимо учесть, что в качестве разделителя имен каталогов может быть использован как прямой слеш, так и обратный. 5. Задан текст. По правилам пунктуации пробел может стоять после, а не перед каждым из следующих знаков .,:;?!)}]… перед, а не после знаков ([{. Заданный текст проверить на соблюдение этих правил и при необходимости исправить. Вместо пробела может быть перенос строки или знак табуляции. 6. Дана строка-предложение на русском языке и число K (0<K<10). Зашифровать строку, выполнив циклическую замену каждой буквы на букву того же регистра, расположенную в алфавите на K-ой позиции после шифруемой буквы. Например, для K=2 символ «А» перейдет в «В», «а» – в «в», «Б» – в «Г», «я» – в «б» и т.д. Букву «ё» в алфавите не учитывать, знаки препинания и пробелы не изменять. 7. Дано зашифрованное предложение и кодовое смещение K (0<K<10). Зашифрованное предложение получено из исходного предложения путем циклической замены каждой буквы на букву того же регистра, расположенную в алфавите на K-ой позиции после шифруемой буквы. Например, для K=2 символ «А» был заменен на «В», «а» – на «в», «Б» – на «Г», «я» – на «б» и т.д. Буква «ё» в алфавите не учитывалась, знаки препинания и пробелы не изменялись. 8. Дано зашифрованное предложение на русском языке и его расшифрованный первый символ. Зашифрованное предложение получено из исходного предложения путем циклической замены каждой буквы на букву того же регистра, расположенную в алфавите на K-ой позиции после шифруемой буквы. Например, для K=2 символ «А» был заменен на «В», «а» – на «в», «Б» – на «Г», «я» – на «б» и т.д. Буква «ё» в алфавите не учитывалась, знаки препинания и пробелы не изменялись. Найти кодовое смещение K и расшифровать предложение. 9. Дана строка-предложение. Зашифровать ее, поместив сначала все символы, расположенные на четных позициях, а затем, в обратном порядке все символы, расположенные на нечетных позициях. Например, строка «Программа» превратится «ргамамроП». 10. В имеющемся словаре найти слова, которые могут быть полностью составлены из других слов с помощью конкатенации. Например, «БАЛКОН» = «БАЛ» + «КОН». 2