Тип данных 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"