Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания для ООП.doc
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
186.88 Кб
Скачать

§2. Производные классы

2.1. Создайте производный класс complexExt от класса complex, который должен

  • В разделе private содержать с закрытые переменные-члены mod и argument которые означают соответственно модуль и аргумент комплексного числа.

  • В разделе public содержать

  • конструктор по умолчанию complexExt(), который придает переменным mod и argument значение равное 0;

  • функции

double mod();

double argument();

которые возвращают соответственно модуль и аргумент комплексного числа;

  • параметризованный конструктор complexExt(complex a), который с помощью функций-членов mod() и argument() преобразует объект типа complex в объект типа complexExt;

  • перегружаемую функцию базового класса

void print();

которая выводит комплексное число на экран в тригонометрической форме записи

mod(cos(argument)+i*sin(argument));

  • функцию-друга, которая перегружает оператор << для реализации вывода комплексных чисел, записанных в тригонометрической форме, на экран.

1.2. Пользуясь классом complexExt, напишите программу, которая должна

  • описывать переменные

complex u,v;

complexExt z;

  • получать действительную и мнимую части переменных u и v;

  • выводить на экран комплексные числа u и v в алгебраической и тригонометрической формах записи;

  • пользуясь конструктором complexExt(complex a) инициализировать переменную z и вывести ее на экран двумя способами: с помощью перегруженной функции print()и с помощью перегруженного оператора вывода <<;

  • выводить на экран комплексные числа z=u+2*v+1, z+5.2 (происходит ли автоматическое преобразование типа double в тип complexExt ?);

  • проверять результаты присваиваний z=u и v=z (о чем они говорят?).

§3. Строки

Программы 3.1–3.4 необходимо написать, используя функции get() и put().

  1. Написать программу, которая копирует все комментарии из файла file.cpp в файл file1.txt, а оставшийся текст – в файл file2.txt.

  2. Написать программу, которая с помощью функции getline() считывает строки текстового файла palindrome.txt и проверяет, является ли записанное в каждой строке выражение палиндромом.

  3. Пользуясь функциями класса string, написать программу, которая из строки “abcdefghijklmnopqrstuvwxyz^” генерирует следующую таблицу

  1. Пользуясь реверсивным итератором и функцией getline(), напишите программу, считывающую строки из файла и выводящую их в обратном порядке.

§4. Перегрузка функций

  1. В стандартной библиотеке С++ есть три функции abs(), labs() и fabs(), которые позволяют находить абсолютные значения переменных типа int, long и double соответственно. Необходимо написать программу, в которой функция mod(x) нахождения модуля числа перегружается 3 раза и, благодаря этому позволяет находить значения любой из функций abs(), labs() и fabs().

  2. Функция обмена местами для переменных типа int, double, float, int*…

  3. Сумма элементов массива (для строк - объединение)

  4. какая-нибудь функция с различным количеством параметров. Например, функция замены элементов первого массива на соответствующие элементы второго (если размерность r первого массива не превосходит размерности k второго, то все элементы заменяются; если превосходит, то заменяются только k элементов первого массива); замена на соответствующие элементы начиная с номера m; замена на соответствующие элементы начиная с номера m и заканчивая номером n; замена соответствующих элементов не с начала, а после какого-то индекса.