
- •Лабораторный практикум по дисциплине Алгоритмические языки и программирование
- •Общие указания к выполнению лабораторных работ
- •Лабораторная работа №1 Программирование алгоритмов линейной и разветвляющейся структуры. Организация циклов в программе. Составление выражений
- •Лабораторная работа №2 Работа с массивами. Одномерные статические массивы. Многомерные динамические массивы
- •Лабораторная работа №3 Работа со строками. Динамические одномерные массивы
- •Лабораторная работа №4 Работа со структурами. Вложенные структуры. Массивы структур
- •Приложения
- •1. Комментарии
- •2. Идентификаторы (имена)
- •3. Ключевые слова
- •4.Константы
- •4.1 Целые константы
- •4.2 Явно заданные длинные константы
- •4.3 Символьные константы
- •4.4 Константы с плавающей точкой
- •5. Основные типы
- •6. Производные типы
- •7. Некоторые операции языка
- •8. Основные операторы
- •Приложение б. «Функции стандартной библиотеки»
- •Случайные числа
- •Примеры программ
Лабораторная работа №3 Работа со строками. Динамические одномерные массивы
Цель работы
Изучение способов определения и обработки одномерных динамических массивов, правил использования стандартных функций для работы со строками.
№ варианта |
Задание |
1. |
Имеется строка, содержащая буквы и цифры. Преобразовать эту строку так, чтобы сначала в ней шли все цифры, а затем – все буквы исходной строки. |
2. |
С клавиатуры вводится заданное предложение. Найти все слова, начинающихся с заданной буквы. |
3. |
Пусть цифрам от 1 до 9 соответствуют буквы от А(а) до I(i). С клавиатуры вводится строка. Составить новую строку из цифр, соответствующих только данным буквам, отсортированным по возрастанию. |
4. |
Для заданного с клавиатуры слова построить все его анаграммы, т.е. слова (возможно бессмысленные), состоящие из всех букв исходного слова, но расположенных в произвольном порядке. |
5. |
С клавиатуры вводится заданное количество слов. Найти все пары слов, одно из которых оканчивается на ту же букву, на которую начинается второе. |
6. |
Из двух заданных с клавиатуры слов составить различные виды кроссвордов. При невозможности составить кроссворд (в словах нет ни одной одинаковой буквы) сообщить об этом на экран монитора. |
7. |
С клавиатуры вводится предложение. Вывести на экран монитора слова из этого предложения в порядке убывания их длины. |
8. |
Во введенном с клавиатуры тексте подсчитать и показать на экране количество предложений, слов и символов. |
9. |
Найти в исходной строке все вхождения заданной подстроки и заменить их на другую строку с указанием номера очередного вхождения. |
10. |
С клавиатуры вводится предложение. Напечатать все предложения, которые получаются при перестановке слов исходного предложения. |
Методические указания для выполнения задания
Примерный порядок выполнения задания:
Запросить у пользователя максимально возможную по условиям задачи длину строки Len.
Создать динамический символьный массив данного размера.
Запросить у пользователя исходную строку и записать ее в массив, созданный в пункте 2.
Если длина введенной строки меньше Len , изменить количество памяти, выделенной под массив в пункте 2 (уменьшить размер массива).
Выполнить действия, необходимые для решения задачи.
В процессе решения создать динамический массив нужной длины, содержащий результирующую строку, либо несколько массивов (в зависимости от условий задачи).
Освободить память, выделенную под все созданные во время работы динамические массивы, за исключением массива, содержащего результирующую строку (строки).
Вывести на экран монитора результат работы программы.
Для выполнения задания необходимо знать понятие строки как массива символов, заканчивающегося нулевым признаком ’\0’, правила определения динамического массива и обращения к элементам массива через указатели. Кроме того, необходимо знать и уметь применять функции для ввода-вывода строк, преобразования, определения длины строки, и основных функций манипулирования строками.