Тип данных complex стандартной библиотеки языка C++

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

Южно-Сахалинский институт экономики, права и информатики

Кафедра Компьютерные технологии и системы

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовой работе

по диiиплине Программирование на языке высокого уровня

на тему: Тип данных complex стандартной библиотеки языка C++

Руководитель работы

ст. преподаватель кафедры КТиC

Соболев П.Ю.

______________________2009 г.

Исполнитель

студент группы ВТ-21

Мустафин А.С.

______________________2009 г.

Южно-Сахалинск

Южно-Сахалинский институт экономики, права и информатики

Кафедра Компьютерные технологии и системы

УТВЕРЖДЕНО

Зав. кафедрой

________________ Мазур И.К.

З А Д А Н И Е

на выполнение курсовой работы студенту Мустафину Александру Сергеевичу

. Тема работы: Тип данных complex стандартной библиотеки языка C++

. Срок сдачи студентом законченного проекта 22 декабря 2009

. Содержание пояснительной записки (перечень подлежащих к разработке вопросов):

Введение

1. Постановка и анализ задачи, изучение теоретических вопросов темы

. Разработка алгоритмов и типов данных

3. Разработка программного обеспечения

Заключение

Задание принял к исполнению 1 октября 2009 года

(дата, подпись)

Руководитель____________________________

(подпись)

ПРИМЕЧАНИЕ: Студент предупрежден о том, что при несвоевременном представлении работы руководителю студент iитается не выполнившим график учебного процесса и не допускается к защите курсовой работы.

Постановка задачи

Задачей курсовой работы является реализация программы для работы с комплексными числами. Для реализации программы требуется использовать интегрированную среду разработки Borland C++ Builder 6.0, а также стандартные типы данных библиотеки VCL.

Цель работы - изучить типы данных complex и продемонстрировать операции над данным типом для указанной операционной системы. В проекте предполагается реализовать программу-калькулятор для комплексных чисел.

Разрабатываемая программа выполняет математические и тригонометрические функции для данного типа.

Для разработки приложения используются следующие программные инструменты:

1.среда разработки Borland C++ Builder,

2.библиотека классов VCL (Visual Component Library),

3.функции интерфейса прикладного программирования операционной системы Windows (Win32 API).

2 Теоретическая часть

В стандартную библиотеку С++ входит шаблонный класс complex<>, предназначенный для работы с комплексными числами. На всякий случай стоит напомнить, что комплексные числа состоят из двух частей: вещественной и мнимой. Особое свойство мнимой части заключается в том, что ее квадрат является отрицательным числом. Иначе говоря, мнимая часть представляет собой произведение числа и квадратного корня из -1, обозначаемого символом i.

2.1 Строение класса complex

Здесь приведены подробные описания всех операций класса complex, то есть тип вещественной и мнимой частей значения complex.

Определения типов

complex::value_type

Тип вещественной и мнимой частей.

Операции создания, копирования и присваивания

complex::complex ()

? Конструктор по умолчанию.

? Создает комплексное значение, в котором вещественная и мнимая части инициализируются вызовом конструкторов по умолчанию (0 для базовых типов данных). Это означает, что для базовых типов данных исходные значения вещественной и мнимой частей равны 0

сотрlex::complex (const Т& re)

? Создает комплексное значение, в котором вещественная часть равна re, а мнимая часть инициализируется вызовом конструктора по умолчанию (0 для базовых типов данных).

? Конструктор также определяет автоматическое преобразование типа Т в complex

complex::complex (const Т& re. const Т& im)

complex программа число комплексный

Создает комплексное значение, в котором вещественная и мнимая части равны соответственно re и im

complex polar (const Т& rho)polar (const T& rho. const T& theta)

? Обе формы создают и возвращают комплексное число, инициализированное в полярных координатах.

? Параметр rho определяет амплитуду.

? Параметр theta определяет фазовый угол в радианах (по умолчанию 0).

complex conj (const complex& cmplx)

Создает и возвращает комплексное число, инициализируемое сопряжением другого комплексного числа (то есть числом с противоположным знаком мнимой части).

complex::complex (const complex& cmplx)

? Копирующий конструктор.

? Создает новое комплексное число как копию cmplx.

? Копирует вещественную и мнимую части.

? Функция определяется в обеих формах: шаблонной и обычной. Таким образом, конструктор обеспечивает автоматическое преобразование к типу элементов.

? В специализированных версиях для типов float, double и long double копирующие конструкторы ограничиваются так, чтобы небезопасные преобразования (double и long double в float, long double в double) выполнялись явно, а другие преобразования к типу элементов были запрещены:

Листинг1-преобразования

namespace std { template

{;complex(const complex)&);

// Другие версии копирующих конструкторов отсутствуют

};

template)&);

// Другие версии копирующих конструкторов отсутствуют

);

template { public;(c