Воскресенье, 24.11.2024, 14:49
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Абстрактный тип данных «комплексное число»
engineerklubДата: Среда, 03.11.2021, 11:59 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
Абстрактный тип данных «комплексное число»

Тип работы: Работа Лабораторная
Сдано в учебном заведении: СибГУТИ

Описание:
Цель работы: Сформировать практические навыки реализации
абстрактных типов данных в соответствии с заданной спецификацией
с помощью классов С++. Синтаксис классов: инкапсуляция, простые
свойства.
Задание:
• Реализовать абстрактный тип данных «комплексное число»,
используя класс С++, в соответствии с приведенной ниже
спецификацией.
• Протестировать каждую операцию, определенную на типе данных,
используя средства модульного тестирования.
• Если необходимо, предусмотрите возбуждение исключительных
ситуаций.
Спецификация типа данных «комплексное число».
ADT TComplex
Данные
Комплексное число TComplex - это неизменяемая пара вещественных
чисел, представляющие действительную и мнимую части комплексного
числа (a + i*b).
Операции
Операции могут вызываться только объектом комплексное число (тип
TComplex), указатель на который в них передаётся по умолчанию. При
описании операций этот объект называется «само число».
КонструкторЧисло
Начальные значения: Пара вещественных чисел (a) и (b).
3
Процесс: Создаёт комплексное число (тип
TComplex) с действительной частью (a) и
мнимой (b).
Например:
КонструкторЧисло (6,3)=6 + i*3
КонструкторЧисло (3,0)=3 + i*0
КонструкторЧисло (0,0)=0 + i*0
КонструкторСтрока
Начальные значения: Строка, представляющая комплексное
число.
Процесс: Создаёт комплексное число (тип
TComplex), представленное строкой f =
’a + i*b’, с действительной частью (a)
и комплексной частью
(b).
Например:
КонструкторСтрока(‘6+i*3’) = 6+i*3
КонструкторСтрока(‘0+i*3’) = 0+i*3
Копировать:
Вход: Нет.
Предусловия: Нет.
Процесс Создаёт и возвращает собственную копию
- комплексное число (тип TComplex) с
действительной и мнимой частями такими
же как у самого числа.
Выход: Комплексное число (тип TComplex).
Например:
c = 6+i3, Копировать© = 6+i3
Постусловия: Нет.
4
Сложить
Вход: Комплексное число d (тип TComplex).
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число,
полученное сложением самого числа q =
a1+i*b1 с числом d = a2+i*b2:
((a1+i*b1)+(a2+i*b2)=(a1+a2)+i*(b1+b2))
.
Например:
q = (2 +i*1), d = (2 +i*1),
q.Сложить(d) = (4 +i*2).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Умножить
Вход: Комплексное число d (тип TComplex).
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число,
полученное умножением самого числа q =
a1+i*b1 на число d = a2+i*b2:
((a1+i*b1)*(a2+i*b2)=(a1*a2 -
b1*b2)+i*(a1*b2+ a2*b1)).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Квадрат
Вход: Нет.
Предусловия: Нет.
5
Процесс Создаёт и возвращает комплексное число
(тип TComplex), полученное умножением
числа на самого себя:
((a1+i*b1)*(a1+i*b1)=(a1*a1 -
b1*b1)+i*(a1*b1+ a1*b1)).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Обратное
Вход: Нет.
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число
(тип TComplex), полученное делением
единицы на само число 1/((a1+i*b1) =
a1/(a1**2 + b1**2) - i* b1/( a1**2 +
b1**2 )).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Вычесть
Вход: Комплексное число d (тип TComplex)..
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число
(тип TComplex), полученное вычитанием d
= a2 + i b2 из самого себя
q = (a1+i*b1):(a1+i*b1)-
(a2+i*b2)=(a1-a2)+i*(b1-b2).
Например:
q = (2 +i*1), d = (2 +i*1))
q.Вычесть(d) = (0 + i0).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Делить

СКАЧАТЬ
 
engineerklubДата: Среда, 03.11.2021, 11:59 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 28530
Репутация: 0
Статус: Offline
6
Вход: Комплексное число (d).
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число
(тип TComplex), полученное делением
самого числа (q) на число (d)
((a1+i*b1)/(a2+i*b2)=(a1*a2+b1*b2)/(a2
**2 + b2**2)+i*(a2*b1 – a1*b2)/(a2**2 +
b2**2)).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Минус
Вход: Нет.
Предусловия: Нет.
Процесс Создаёт и возвращает комплексное число
(тип TComplex), являющееся разностью
комплексных
чисел z и и самого числа, где z –
комплексное число (0+i0).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Модуль
Вход: Нет.
Предусловия: Нет.
Процесс Вычисляет и возвращает модуль самого
комплексного числа (q). Например: q =
(2 +i*1), q. Модуль = (2*2+1*1). q =
(i*17), q. Модуль = (0*0+17*17).
Выход: Вещественное число.
Постусловия: Нет.
УголРад
7
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает аргумент fi самого
комплексного числа q (в радианах). fi =
(arcTg(b/a), a>0; pi/2, a = 0, b > 0;
arcTg(b/a) + pi, a < 0; -pi/2, a = 0, b
<0 ).
Например:
q= (1+i*1),q.УголРад=0,79.
Выход: Вещественное число.
Постусловия: Нет.
УголГрад
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает аргумент самого комплексного
числа q (в градусах).
Например:
q = (1+i*1),q.Град =45.
Выход: Вещественное число.
Постусловия: Нет.
Степень
Вход: Целое (n).
Предусловия: Нет.
Процесс Возвращает целую положительную степень
n самого комплексного числа q. qn =
rn(cos (n*fi)+ i* sin (n*fi)).
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Корень
Вход: Целое (n), целое (i).
8
Предусловия: Нет.
Процесс Возвращает i-ый корень целой
положительной степени n самого
комплексного числа q. n(q) = n®* (cos
((fi + 2*k*pi)/n)+ i* sin ((fi +
2*k*pi)/n)). При этом коофициенту k
придается последовательно n значений: k
= 0,1,2…, n - 1 и получают n значений
корня, т.е. ровно столько, каков
показатель корня.
Выход: Комплексное число (тип TComplex).
Постусловия: Нет.
Равно
Вход: Комплексное число (d).
Предусловия: Нет.
Процесс Сравнивает само комплексное число с
числом (d). Возвращает значение True,
если они - тождественные комплексные
числа, и значение False - в противном
случае.
Выход: Булевское значение.
Постусловия: Нет.
НеРавно
Вход: Комплексное число (d).
Предусловия: Нет.
Процесс Сравнивает само комплексное число с
числом (d). Возвращает значение True,
если само число <> d, - значение False
- в противном случае.
Выход: Булевское значение.
Постусловия: Нет.
9
ВзятьReЧисло
Вход: Нет
Предусловия: Нет.
Процесс Возвращает значение действительной части
самого комплексного числа в числовом
формате.
Выход: Вещественное значение.
Постусловия: Нет.
ВзятьImЧисло
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает значение мнимой части самого
комплексного числа в числовом формате.
Выход: Вещественное значение.
Постусловия: Нет.
ВзятьReСтрока
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает значение вещественной части
самого комплексного числа в строковом
формате.
Выход: Строка.
Постусловия: Нет.
ВзятьImСтрока
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает значение мнимой
части комплексного числа в
строковом формате.
самого
Выход: Строка.
Постусловия: Нет.
10
ВзятьКомплексноеСтрока
Вход: Нет.
Предусловия: Нет.
Процесс Возвращает значение самого комплексного
числа в строковом формате.
Выход: Строка.
Постусловия: Нет.
end TComplex

Комментарии: Вид работы: Лабораторная работа №2

СКАЧАТЬ
 
  • Страница 1 из 1
  • 1
Поиск:

Рейтинг@Mail.ru