
§1. Классы
Класс сomplex
1.1. Создайте класс сomplex, моделирующий комплексные числа и действия над ними в алгебраической форме (см. приложение 1).
В разделе private класс должен содержать закрытые переменные-члены Re и Im, которые означают соответственно действительную и мнимую части комплексного числа.
В разделе public класс должен содержать
конструкторы
по умолчанию complex(), который придает переменным Re и Im значение равное 0;
параметризованный конструктор complex(doudle a) для преобразования действительного числа в комплексное (полагает Re = a и Im = 0);
параметризованный конструктор complex(doudle a, doudle b), который инициализирует переменные Re и Im;
функцию-член
void print();
которая выводит комплексное число на экран в алгебраической форме записи a+bi;
функции-друзей
double mod(complex z);
double arg(complex z);
complex conjugate(complex z);
complex inverse(complex z).
перегруженные операторы
унарный – для вычисления комплексного числа противоположного данному;
бинарные +, –, * и / для вычисления суммы, разности, произведения и частного комплексных чисел (при делении на 0 программа должна выдавать сообщение об ошибке);
логические бинарные операции = =, !=.
оператор вывода << для вывода комплексных чисел на экран.
(необязательное задание) оператор ввода >> для ввода комплексных чисел в алгебраической форме с клавиатуры.
Требования к программе, содержащей класс complex:
программа должна выдавать сообщения в случаях, когда происходит какое-либо некорректная операция (находится обратное к 0; производится деление на 0; вычисляется аргумент 0);
Интерфейс программы должен находиться в файле complex.h, который должен быть защищен от повторного включения.
Реализация класса complex должна находиться в файле complex.cpp.
1.2. Создайте файл-приложение application1.cpp класса complex, который должен содержать программу, демонстрирующую работу всех его функций и операторов. В частности,
объявлять и инициализировать всеми возможными способами две комплексные переменные u и v;
выводить на экран комплексное число u двумя способами: с помощью функции print()и с помощью перегруженного оператора вывода <<;
вычислять
,
,
,
,
,
,
,
;
вычислять логические значения выражений;
(необязательное задание) организовывать ввод комплексных чисел в алгебраической форме с клавиатуры.
Класс rational
1.1. Создайте класс rational, моделирующий рациональные числа и действия над ними.
В разделе private класс должен содержать закрытые переменные-члены a и b, которые означают соответственно числитель и знаменатель рационального числа.
В разделе public класс должен содержать
конструкторы
по умолчанию rational(), который полагает
,
;
параметризованный конструктор rational(doudle с) для преобразования действительного числа в комплексное (полагает
, );
параметризованный конструктор rational(doudle с, doudle d), который инициализирует переменные a и b;
функцию-член
void print();
которая выводит рациональное число на экран в виде a/b;
функцию-друга rational inverse(rational q) для нахождения рационального числа, обратного данному;
перегруженные операторы
унарный – для вычисления рационального числа противоположного данному;
бинарные +, –, * и / для вычисления суммы, разности, произведения и частного рациональных чисел;
логические бинарные операции ==, !=.
оператор вывода << для вывода комплексных чисел на экран.
(необязательное задание) оператор ввода >> для ввода комплексных чисел в алгебраической форме с клавиатуры.
Требования к программе, содержащей класс rational:
результатом операций, должно быть такое рациональное число числитель и знаменатель которого – взаимно простые числа.
программа должна выдавать сообщения в случаях, когда происходит какое-либо некорректная операция (находится обратное к 0 или производится деление на 0);
интерфейс программы должен находиться в файле rational.h, который должен быть защищен от повторного включения.
реализация класса complex должна находиться в файле rational.cpp.
1.2. Создайте файл-приложение application.cpp класса rational, которое должно продемонстрировать работу всех его функций и операторов. В частности,
объявлять и инициализировать всеми возможными способами две рациональные переменные p и q;
выводить на экран комплексное число u двумя способами: с помощью функции print()и с помощью перегруженного оператора вывода <<.
вычислять
,
,
,
,
,
,
,
,
;
вычислять логические значения выражений;
организовывать ввод рациональных чисел с клавиатуры.