- •Лабораторная работа 1 Двоичная система счисления
- •Лабораторная работа 2 Работа в командной строке
- •Титульный лист
- •Лабораторная работа 3 Работа в интегрированной среде разработки
- •Лабораторная работа №4 Ветвления и циклы
- •Лабораторная работа №5 Функции
- •Пример программы
- •Лабораторная работа №6 Статические массивы
- •Лабораторная работа №7
- •Лабораторная работа №8 Списки и строки на Python
Лабораторная работа №7
Динамические массивы и строки на С++
Цель работы:
Изучение принципов организации динамических массивов в стандартной библиотеке языка C++ и методов их обработки. Освоение приемов работы со строками средствами стандартной библиотеки языка C++. Совершенствование навыков декомпозиции программы на подпрограммы, разработки и отладки программ в IDE.
Порядок выполнения работы:
Разработать программу на C++, решающую поставленную задачу в соответствии с индивидуальным заданием.
Программа должна выполнять считывание строки со стандартного ввода полностью (с пробелами), разбивать ее на слова и формировать массив слов. После обработки массива слов, из него должна формироваться новая строка, после чего она должна выводиться в стандартный вывод.
Для представления динамического массива необходимо воспользоваться реализацией из библиотеки <vector>, для представления строк – реализацией из библиотеки <string>.
Программа должна содержать определение функции, осуществляющей обработку массива слов таким образом, чтобы выполнить условие индивидуального задания. Функция должна принимать в качестве параметров массив, а также другие параметры, если это необходимо, и иметь тип void.
Все операции ввода и вывода необходимо осуществлять в функции main().
Преобразование введенной строки в массив слов и обратно можно вынести в определение еще одной дополнительной функции (в этом случае в ней также должен осуществляться вызов функции обработки массива), а можно реализовать в функции main().
Рекомендации:
Для разбиения строки на слова рекомендуется воспользоваться средствами библиотеки <sstream>.
Если не требуется обрабатывать номера элементов массива или строки, рекомендуется воспользоваться циклом на основе диапазона:
for(auto элемент : контейнер) {} // если не требуется изменять элементы
или
for(auto& элемент : контейнер) {} // если требуется изменять элементы
Содержание отчета:
Титульный лист
Цель работы
Общее задание на лабораторную работу
Номер варианта и индивидуальное задание
Текст программы
Снимки экрана результатов работы программы для разных наборов входных данных
Вывод
Индивидуальные варианты:
1.
Ввести строку. Вывести ее слова в порядке убывания длин слов.
2.
Ввести строку. Вывести только слова, в которых нет повторяющихся подряд букв.
3.
Ввести строку. Вывести слова, в которых каждая буква повторяется не менее двух раз подряд.
4.
Ввести строку. Вывести ее, удалив предварительно повторяющиеся слова.
5.
Ввести строку. Вывести только различные встречающиеся целые числа.
6.
Ввести строку и символ. Вывести строку так, чтобы за каждым словом следовало слово, составленное из введенного символа в количестве, равном длине этого слова.
7.
Ввести строку. Вывести ее, заменив отдельно стоящие цифры на их словесное представление (0 - "zero", 1 - "one", ...).
8.
Ввести строку. Вывести на экран пословно, причем каждое слово вывести в обратном порядке.
9.
Ввести строку и символ. Вывести строку так, чтобы за каждым словом следовало слово, составленное из введенного символа в количестве, равном номеру слова в строке.
10.
Ввести строку и слово, удалить все вхождения слова на четных позициях и вывести строку.
11.
Ввести строку и букву, вывести только слова, в которых позиция введенной буквы совпадает с номером слова в строке.
12.
Ввести строку и два слова, заменить все вхождения первого слова на второе.
13.
Ввести строку, вывести только те слова, которые начинаются и заканчиваются на одну и ту же букву
14.
Ввести строку, вывести только те слова, которые содержат в себе не менее двух цифр.
15.
Ввести строку, вывести слова, разделяя в них буквы точками.
16.
Ввести строку и букву, вывести слова, добавив в конце слово, составленное из первых букв слов, содержащих введенную букву
17.
Ввести строку и число, вывести слова, добавив перед первым словом слово, состоящее из номеров слов, содержащих количество букв, совпадающее со введенным числом.
18.
Ввести строку и слово. Вставить введенное слово вместо самого короткого слова в строке.
19.
Ввести строку и слово. Вставить слово в строку между каждой парой слов, имеющих одинаковые длины.
20.
Ввести строку и слово. Вывести только те слова, начало которых совпадает с введенным словом.
21.
Ввести строку и слово. Вывести слова, добавив в конце слово, состоящее из соединенных слов, равных по длине введенному слову.
22.
(Шифр Цезаря) Ввести строку и число. Вывести слова, сместив каждую букву в них на введенное число.
23.
Ввести строку и букву. Вывести слова, содержащие введенную букву более одного раза.
24.
Ввести строку и слово. Вывести слова, дописав в конце каждого число раз, когда в данном слове встречаются символы из введенного слова.
