
- •Задание 1. Простейшие классы и объекты
- •Основные понятия
- •Примеры выполнения задания
- •Постановка задания
- •Варианты контрольных заданий
- •Задание 2. Массивы – члены класса
- •Основные понятия
- •Примеры выполнения задания
- •Постановка задания
- •Варианты контрольных заданий Одномерные массивы – члены класса
- •Двумерные массивы – члены класса
- •Задание 3. Массивы объектов, указатели
- •Основные понятия
- •Постановка задания
- •Примеры выполнения задания
- •Варианты контрольных заданий
- •Задание 4. Перегрузка операций
- •Основные понятия
- •Примеры выполнения задания
- •Постановка задания
- •Варианты контрольных заданий
- •Задание 5. Наследование
- •Постановка задания
- •Пример выполнения задания
- •Варианты заданий
- •Оглавление
Постановка задания
Определить класс, который должен включать в себя конструктор, деструктор, операторные функции, обеспечивающие перегрузку стандартных операций для работы с объектами данного класса. Для указанного класса также перегрузить операции << и >> для ввода и вывода объектов.
Написать программу, демонстрирующую концепцию перегрузки операторов.
Варианты контрольных заданий
Задан вектор в n-мерном евклидовом пространстве. Реализовать:
сложение векторов;
вычитание векторов;
скалярное произведение векторов;
векторное произведение векторов;
умножение вектора на скаляр.
В британском формате дата задаётся как число/месяц/год. Реализовать с учётом (и без учёта) високосных годов:
сложение даты и заданного количества дней;
вычитание из даты заданного количества дней;
сложение двух дат;
вычитание из одной даты другой;
вычисление числа дней, прошедших между двумя датами.
Время задаётся в формате час, минута, секунда. Реализовать следующие операции (учесть переход через 24 часа):
сложение времени и заданного количества секунд;
вычитание из времени заданного количества секунд;
сложение двух моментов времени;
вычитание из одного момента времени другого;
подсчёт числа секунд между двумя моментами времени, лежащими в пределах одних суток.
Комплексное число задаётся своим модулем и углом (например, число 10 * (cos( / 6) + i *sin( /6)) задаётся парой (10, /6)). Реализовать:
сложение чисел, вычитание чисел;
произведение чисел, деление чисел;
возведение в целочисленную степень;
извлечение квадратного корня.
Комплексное число задаётся своей вещественной и мнимой частями (например, 5 +3i задаётся парой (5, 3)). Реализовать:
сложение чисел, вычитание чисел;
произведение чисел, деление чисел ;
возведение в целочисленную степень;
извлечение квадратного корня.
Определить класс для работы с объектом “полином”. Реализовать следующие операции:
сложение двух полиномов, вычитание двух полиномов;
умножение полинома на число;
вычисление значения полинома в точке x;
дифференцирование полинома;
интегрирование полинома.
Определить класс для работы с объектом “ множество целых чисел”. Реализовать следующие операции:
объединение двух множеств;
пересечение двух множеств;
разность двух множеств;
добавление элемента во множество;
удаление элемента из множества.
Определить класс для работы с объектом “рациональная дробь” вида m/n. Реализовать следующие операции:
сложение и вычитание двух дробей;
умножение двух дробей; деление двух дробей;
приведение дроби к несократимому виду;
вывод дроби в виде m/n;
сравнение двух дробей.
Определить класс для работы с квадратной матрицей. Реализовать следующие операции:
сложение матриц, вычитание матриц;
умножение матрицы на скаляр, деление матрицы на скаляр;
транспонирование матрицы;
умножение матрицы слева на её транспонированную матрицу.
Определить класс для работы с квадратной матрицей. Получить величину к одним из нижеуказанных способов и выполнить умножение матрицы на значение к:
к – количество строк матрицы, не содержащих ни одного нулевого элемента;
к – количество столбцов матрицы, содержащих хотя бы один нулевой элемент;
к – количество отрицательных элементов в тех строках матрицы, которые содержат хотя бы один нулевой элемент;
к – номер строки матрицы, в которой находится наибольшая по длине возрастающая последовательность;
к – сумма всех чётных элементов матрицы, стоящих после нечётных элементов;
к – максимальный элемент среди элементов строк матрицы, упорядоченных по возрастанию или убыванию.
Определить класс для работы с квадратной матрицей. Сформировать вектор B одним из нижеуказанных способов и умножить его на заданную матрицу:
B – первая из строк матрицы, не содержащих ни одного положительного элемента;
B – строка матрицы, среднее арифметическое элементов которой минимально;
B – последний из столбцов матрицы, в которых имеются одинаковые элементы;
B – последний из столбцов матрицы, содержащих минимальное количество различных элементов;
B – первая из строк матрицы с максимальным количеством знакочередующихся элементов;
каждый элемент вектора В равен количеству отрицательных элементов соответствующей строки матрицы, кратных 3 или 5;
каждый элемент вектора В равен количеству максимальных элементов соответствующей строки матрицы;
каждый элемент вектора В равен количеству минимальных элементов соответствующего столбца матрицы.
Определить класс для работы с квадратной матрицей. Получить новую матрицу путём преобразования заданной матрицы одним из нижеуказанных способов и сложить её с исходной матрицей:
поменять местами максимальные элементы нижнего и верхнего треугольников матрицы относительно главной диагонали;
в каждой строке матрицы поменять местами первый максимальный и последний минимальный элементы;
элементы строк матрицы, содержащих хотя бы одно простое число, расположить в порядке возрастания;
элементы столбцов матрицы, не содержащих нулевых элементов, расположить в порядке убывания;
элементы каждой строки матрицы, кратные заданному числу p, переставить в начало строки и расположить их в порядке возрастания;
положительные элементы каждого столбца матрицы переставить в конец столбца и расположить их в порядке убывания.
Определить класс для работы с квадратной матрицей. Получить новую матрицу путём преобразования заданной матрицы одним из нижеуказанных способов и умножить её на исходную матрицу:
переставить строки матрицы в порядке возрастания элементов первого столбца;
заменить максимальные элементы строк матрицы, не содержащих чётных элементов, на обратные величины;
элементы каждого столбца матрицы, стоящие за первым максимальным элементом столбца, расположить в порядке возрастания;
элементы столбцов матрицы, не содержащих положительных элементов, заменить суммой их цифр;
заменить нулями элементы матрицы, стоящие на пересечении строк и столбцов, содержащих хотя бы один нулевой элемент.
Определить класс для работы с «Булевой матрицей» размерности (n, m). Реализовать следующие операции:
логического сложения матриц;
логического умножения матриц;
инверсии матриц;
получения количества строк матрицы, не содержащих ни одного нулевого элемента.
Известно, что в каждой строке и каждом столбце квадратной матрицы имеется единственный отрицательный элемент; переставить строки матрицы так, чтобы отрицательные элементы находились на главной диагонали.