Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Tekhnologia_programmirovania.pdf
Скачиваний:
182
Добавлен:
08.04.2015
Размер:
1.76 Mб
Скачать

252

Далее приводится диалог с программой.

Решаем приведенное кубическое уравнение z^3 + p*z + q = 0

Введите действительную и мнимую части p: -2 0 Введите действительную и мнимую части q: 1 0 Корень z = (1, 0)

Проверка: z^3 + p*z + q = (0, 0) Корень z = (-1.61803, 1.94289e-16)

Проверка: z^3 + p*z + q = (0, 1.13739e-15) Корень z = (0.618034, 0)

Проверка: z^3 + p*z + q = (0, 0)

Задачи -. Перегрузка операторов

190.Включите в класс Fraction операторы деления, получения обратной дроби, сокращения дроби. Выберите для этих действий подходящие символы операторов.

191.Добавьте в класс Complex три статических члена для подсчета количества вызовов каждого из трех конструкторов класса. Напечатайте значения данных счетчиков при завершении программы.

192.Замените три конструктора класса Complex одним конструктором с аргументами, имеющими значения по умолчанию:

Complex(double x = 0, double y = 0);

//Конструктор

Проверьте работу программы.

193. Обратите внимание, что в класс комплексных чисел входят три оператора умножения: Complex на Complex, Complex на double и double на Complex и только один оператор деления – Complex на Complex. Объясните, почему не возникает ошибки в инструкции

p3 = -p / 3;

в которой Complex делится на int. Сократите число операторов умножения.

194.Напишите функцию для решения квадратного уравнения с комплексными коэффициентами.

195.Напишите функцию для решения полного кубического уравнения

az3 + bz2 + cz + d = 0

с комплексными коэффициентами. Подстановкой z = y 3ba ,

253

получается каноническое уравнение

y3 + py + q = 0 ,

где

p = − b22 + c , q = 2b33 bc2 + d 3a a 27a 3a a .

Каноническое уравнение решается по формулам Кардано

196. Напишите класс Integral, включающий указатель на функцию для вычисления некоторой математической функции и границы отрезка ее области определения. Предусмотрите в классе функцию-оператор для вычисления значения интеграла на заданном отрезке.