
- •Использование параметризованных классов стандартной библиотеки
- •8.1. *Реализовать алгоритм, используя объекты класса «String».
- •8.2. **Реализовать алгоритм, используя объекты класса «String», текстовые файлы и функции
- •8.3. *Реализовать алгоритм с использованием контейнерного класса vector
- •8.4. Реализовать алгоритм с использованием последовательного контейнера
- •8.4.1. *Создать структуру данных – «линейный список»
- •8.4.2. *Создать структуру данных – «стек»
- •8.4.3. **Создать структуру данных – «очередь»
- •8.4.4. *Реализовать список
- •8.5. *Разработать шаблонный класс векторов
Лаб.8. Шаблоны
ИСПОЛЬЗОВАНИЕ ПАРАМЕТРИЗОВАННЫХ КЛАССОВ СТАНДАРТНОЙ БИБЛИОТЕКИ 1
8.1. *Реализовать алгоритм, используя объекты класса «String». 1
8.2. **Реализовать алгоритм, используя объекты класса «String», текстовые файлы и функции 2
8.3. *Реализовать алгоритм с использованием контейнерного класса vector 2
8.4. Реализовать алгоритм с использованием последовательного контейнера 4
8.4.1. *Создать структуру данных – «линейный список» 4
8.4.2. *Создать структуру данных – «стек» 4
8.4.3. **Создать структуру данных – «очередь» 5
8.4.4. *Реализовать список 5
8.5. *Разработать шаблонный класс векторов 6
Использование параметризованных классов стандартной библиотеки
8.1. *Реализовать алгоритм, используя объекты класса «String».
Вариант 1.
Вывести текст, составленный из последних букв всех слов. Вывести все слова, содержащие ровно две буквы 'd'.
Вариант 2.
Вывести слова строки, начинающиеся и заканчивающиеся одной и той же буквой. Вывести слова строки, которые содержат ровно три буквы ' k'.
Вариант 3.
Удалить все символы, не являющиеся буквами или цифрами. Вывести в алфавитном порядке все гласные буквы, входящие в каждое слово строки.
Вариант 4.
Вывести текст, составленный из первых букв всех слов. Получить все слова, содержащие больше одной буквы 's'.
Вариант 5.
Вывести на экран слова, состоящие только из строчных латинских букв.
Вариант 6.
Вывести в алфавитном порядке все согласные латинские буквы, не входящие в строку.
Вариант 7.
Найти количество слов в строке, заканчивающихся на буквы 'yz'. Вывести каждое слово строки в обратном порядке.
Вариант 8.
Вывести слова, в которых нет повторяющихся букв. Вывести слова, в которых буквы упорядочены по алфавиту.
Вариант 9.
Определить слова, в которых нет одинаковых символов. Вывести текст, удалив из него повторные вхождения слов.
Вариант 10.
Найти количество слов в строке, заканчивающихся буквами 'rd'. Вывести в алфавитном порядке буквы, которые входят в строку по одному разу.
Вариант 11.
Вывести в алфавитном порядке все слова, содержащие наибольшее количество гласных букв. Найти все слова, в которые буква 'а' входит не менее двух раз.
Вариант 12.
Вывести слово, наиболее часто встречающееся в строке. Вывести слова, в которых буквы упорядочены по алфавиту.
Вариант 13.
Определить слова, в которых текст упорядочен по алфавиту. Вывести в алфавитном порядке все гласные буквы, входящие в этот текст.
8.2. **Реализовать алгоритм, используя объекты класса «String», текстовые файлы и функции
Все необходимые для функций данные должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается. Поместить описание структуры в заголовочном файле, а определения функций и главную функцию программы – в двух отдельных файлах.
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000 символов (длина строки текста не превышает 70 символов). Имя файла должно иметь расширение DAT. Считывая текст из этого файла, выполнить, по согласованию с преподавателем, задание своего варианта лабораторной работы №4 (подпункт 2).
8.3. *Реализовать алгоритм с использованием контейнерного класса vector
Реализовать алгоритм задания, используя контейнерный класс vector стандартной библиотеки шаблонов STL.
Программа реализуется как многофайловый проект. Алгоритм обработки данных, соответствующий условию задачи, реализуется в глобальной функции, которой в качестве параметра передается объект класса.
Вариант 1.
Найти длину L
вектора X {x1,
x2,..., xn}:
L =
.
Вариант 2.
Вычислить скалярное
произведение P векторов
X {x1,
x2,..., xn}
и Y {y1,
y2,..., yn}:
P =
.
Вариант 3.
X {x1, x2,..., xn} и Y {y1, y2,..., yn} - исходные векторы. Сформировать вектор Z с элементами z i = x i * y i.
Вариант 4.
X {x1, x2,..., xn} и Y {y1, y2,..., yn} - исходные векторы. Сформировать вектор Z с элементами z i = x i + y i.
Вариант 5.
X {x1, x2,..., xn} и Y {y1, y2,..., yn} - исходные векторы. Сформировать вектор Z с элементами z i = x i - y i.
Вариант 6.
X {x1, x2,..., xn} и Y {y1, y2,..., yn} - исходные векторы. Сформировать вектор Z с элементами z i = x i / y i.
Вариант 7.
Вычислить косинус
угла между векторами X
{x1, x2,...,
xn} и
Y {y1,
y2,..., yn}:
cos
= (
)
/ (
*
).
Вариант 8.
Найти максимальный или минимальный элемент вектора X {x1, x2,..., xn} и его порядковый номер.
Вариант 9.
Найти среднее значение элементов вектора X {x1, x2,..., xn} и максимальное отклонение значений x i от этого среднего значения.
Вариант 10.
Упорядочить элементы вектора X {x1, x2,..., xn}по возрастанию их значений.
Вариант 11.
Включить в упорядоченный вектор X {x1, x2,..., xn} новый элемент z так, чтобы сохранилась упорядоченность его элементов. Реализовать алгоритм бинарного поиска для определения места вхождения включаемого элемента.
Вариант 12.
В таблице представлены значения экспериментальных данных:
X i 3, 50 3, 55 3, 60 3, 65 3, 70
Y i 33, 115 34, 813 36, 598 38, 475 40, 447
Доопределить функцию Y в точках z = {3, 57; 3, 64; 3, 68} по формуле линейной интерполяции:
y ( z ) = y ( x i ) + ( y ( x i + 1) - y ( x i )) * ( z - x i ) / ( x i + 1 - x i ),
если x i <= z < x i + 1.
Вариант 13.
Вычислить координаты центра тяжести M c ( x c, y c ) системы материальных точек M i ( x i, y i ) с массами m i, i = 1, 2, ..., n.
x
c =
;
y c
=
.