Символьные строки. Функции для работы с символьными строками | Задачи (курс pol 136 ч.)

Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углубленный курс, 4 часа в неделю)


Уроки 97 - 104
Символьные строки. Функции для работы с символьными строками
§66. Символьные строки



Содержание урока

Что такое символьная строка?

Операции со строками

Поиск в строках

Пример обработки строк

Преобразования число ↔ строка

Строки в процедурах и функциях

Рекурсивный перебор

Сравнение и сортировка строк

Вопросы и задания

Задачи


Задачи


1. Напишите программу, которая во введённой символьной строке заменяет все буквы «а» на буквы «б» и наоборот, заглавные — на заглавные, строчные — на строчные. При вводе строки 'абсАБС' должен получиться результат 'басБАС'.

2. Введите символьную строку и проверьте, является ли она палиндромом (палиндром читается одинаково в обоих направлениях, например: «казак»).

3. Введите адрес файла и «разберите» его на части, разделённые знаком «/». Каждую часть выведите в отдельной строке.

4. Введите строку, в которой записана сумма натуральных чисел, например '1+25+3'. Вычислите это выражение.

5. Введите с клавиатуры в одну строку фамилию, имя и отчество, разделив их пробелом. Выведите инициалы и фамилию. Например, при вводе строки 'Иванов Пётр Семёнович' должно получиться 'П.С. Иванов'.

6. Разберитесь, как работает ещё одна функция замены:

Приведите пример входных данных, при которых эта функция работает неправильно.

7. Напишите рекурсивную версию процедуры replaceAll. Сравните две версии. Какую из них вы рекомендуете выбрать и почему?

8. Напишите функцию, которая изменяет в имени файла расширение на заданное (например, на bak). Функция принимает два параметра: имя файла и нужное расширение. Учтите, что в исходном имени расширение может быть пустым.

9. Напишите функцию, которая определяет, сколько раз входит в символьную строку заданное слово.

10. С клавиатуры вводится число N, обозначающее количество футболистов команды «Бублик», а затем — N строк, в каждой из которых — информация об одном футболисте в таком формате:

<Фамилия> <Имя> <год рождения> <голы>

Данные разделяются одним пробелом. Нужно подсчитать, сколько футболистов, родившихся в период с 1998 по 2000 г., не забили мячей вообще.

11. В условиях задачи 10 определите фамилию и имя футболиста, забившего наибольшее число голов, и количество забитых им голов.

12. В условиях задачи 10 выведите в алфавитном порядке фамилии и имена всех футболистов, которые забили хотя бы один гол. В списке не более 100 футболистов.

13. Измените программу рекурсивного перебора так, чтобы длину слова можно было ввести с клавиатуры.

14. Выведите на экран все слова из К букв, в которых буква «Ы» встречается более 1 раза, и подсчитайте их количество.

15. Выведите на экран все слова из К букв, в которых есть одинаковые буквы, стоящие рядом (например, «ЫШШО»), и подсчитайте их количество.

16. В языке племени «тумба-юмба» запрещено ставить две гласные буквы подряд. Выведите все слова длины К, удовлетворяющие этому условию, и найдите их количество.

*17. Напишите программу перебора слов заданной длины, не использующую рекурсию. Попробуйте составить функцию, которая на основе некоторой комбинации вычисляет следующую за ней.

*18. Перестановки. К вам пришли К гостей. Напишите программу, которая выводит все перестановки — способы посадить их за столом. Гостей можно обозначить латинскими буквами.

Следующая страница §66. Символьные строки



Cкачать материалы урока







Наверх