Тип данных complex стандартной библиотеки языка C++
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
метические операции класса complex<>.
ВыражениеОписаниес1+с2Возвращает сумму с1 и с2с1+1.7Возвращает сумму с1 и 1.71.7 + сВозвращает сумму 1.7 и сc1 - с2Возвращает разность c1 и с2с - 1.7Возвращает разность с и 1.71.7 - сВозвращает разность 1.7 и сc1 * с2Возвращает произведение c1 и с2с* 1.7Возвращает произведение с и 1.71.7* сВозвращает произведение 1.7 и сc1 / с2Возвращает частное от деления c1 на с2с / 1.7Возвращает частное от деления с на 1.71.7 / сВозвращает частное от деления 1.7 на с- сВозвращает значение с с обратным знаком+ сВозвращает сc1 += с2Эквивалент c1 = c1 + с2c1 -= с2Эквивалент c1 = c1 - с2c1 *= с2Эквивалент c1 = c1 * с2c1 /= с2Эквивалент c1 = c1 / с2
2.8 Операции ввода-вывода
В классе complex определены стандартные операторы ввода-вывода .
Таблица 6- операции ввода-вывода класса complex<>
ВыражениеОписаниеstrm iитает комплексное число с из входного потока данных strm
Оператор >> выводит комплексное число в поток данных в следующем формате:
(вещественная_часть , мнимая_часть)
Эквивалентная реализация оператора вывода выглядит так:
Листинг 6-эквивалентная реализация.
template c)
{
// Временная строка для выполнения вывода с одним аргументом
std: :basic_ostringstream s:.flags(strm.flags()); // Копирование флагов потока
s.imbue(strm.getloc()); // Копирование локального контеста потока
s.precision(strm.precision()); // Копирование точности потока
// Подготовка итоговой строки
s '(' с. real () '.' c.imag() ')';
// Вывод итоговой строки strm s.str();
return strm;
}
Оператор ввода читает комплексные числа в одном из представленных ниже
(вещественная_часть, мнимая_часть)
(вещественная_часть)
вещественная_часть
Если очередные символы во входном потоке данных не соответствуют ни одному из перечисленных форматов, устанавливается флаг ios::failbit, что может привести к соответствующему исключению.
К сожалению, вы не можете задать собственный разделитель для вещественной запятой в качестве десятичной точки (как, например, в Германии или России) вводимые/выводимые данные выглядят довольно странно. Например, комплексное число с вещественной частью 4.6 и мнимой частью 2.7 записывается в виде: (4.6.2.7).
2.9 Транiендентные функции
В таблице 7 перечислены транiендентные функции (тригонометрия, возведение в степень и т. д.) класса complex.
Таблица 7- Транiендентные функции.
ВыражениеОписаниеpow(c,3)Комплексное возведение в степень: с3pow(c,1.7)Комплексное возведение в степень: с1,7pow(с1,c2)Комплексное возведение в степень: с1c2pow(1.7,c)Комплексное возведение в степень: 1.7exp(c)Возведение в степень по основанию е: есsqrt(c)Квадратный корень из с ()log(c)Комплексный натуральный логарифм с (In с)log 10(c)Комплексный десятичный логарифм с (lg с)sln(c)Синус с (sin с)cos(c)Косинус с (cos с)tan(c)Тангенс с (tan с)sinh(c)Гиперболический синус с (sinh с)cosh(с)Гиперболический косинус с (cosh с)tanh(c)Гиперболический тангенс с (tanh с)3 Анализ данных
Для реализации поставленной задачи автором была проведена работа по анализу входных/выходных данных, используемых в проекте. Общие сведения о переменных и константах сведены в таблицу. Приводимые в таблицах переменные представлены в программном коде приложения и сопровождаются комментариями.
Таблица 8 - Входные данные программы.
ПеременнаяТипНазначениеc1complexПринимает значение второго комплексного числа.
Таблица 9 - Выходные данные программы.
ПеременнаяТипНазначениесAnsiStringФормат действительной части с1, с2.dAnsiStringФормат мнимой части с1, с2.
Таблица 10 - Промежуточные данные программы.
ПеременнаяТипНазначениеpcomplexПолученает значения при выполнении операций над числами с1 и с24 Разработка программного обеспечения
Разработка программного обеспечения велась на языке высокого уровня C++, при использовании перечисленных далее инструментов.
В качестве основного инструмента для разработки программного комплекса на языке C++ была использована интегрированная среда разработки Borland C++ Builder 6.0. Также при разработке использовались компоненты библиотеки VCL, и функции, описанные в стандартных заголовочных файлах C++ Builder.
. Назначение программного обеспечения:
Разработанное программное обеспечение является калькулятором для комплексных чисел, в обязательные функции которого входит:
1.вычисление арифметических функций,
2.вычисление транiедентных функций,
.операция сравнения.
. Описание реализации функций программы.
.1 Вычисление всех заданных функций и вывод результата.
Для вычисления использовались стандартные функции библиотеки С++ Builder 6.0. Пример реализации операций описаны ниже:
Листинг 7 - Выполнение вычислений и вывод результата.
{=c1+c2; //Сложение чисел=FormatFloat("0.00",p.real());=FormatFloat("0.00",p.imag()); //Округление результата до сотых->Caption="("+c+"."+d+")"; //Вывод результата сложения
}
. . . . . . . . . . . . . . . . . . .
{=c1-c2; //Разность чисел=FormatFloat("0.00",p.real());=FormatFloat("0.00",p.imag());->Caption="("+c+"."+d+")";
}
. . . . . . . . . . . . . . . . . . . .
{=c1*c2; //Произведение чисел=FormatFloat("0.00",p.real());=FormatFloat("0.00",p.imag());->Caption="("+c+"."+d+")";
}
. . . . . . . . . . . . . . . . . . . .
{(c2.real()!=0.0 || c2.imag()!=0.0) //Если с2 не равно нулю то
{ //выполнить деление=c1/c2;=FormatFloat("0.00",p.real());=FormatFloat("0.00"