Для работы с комплексными числами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Для работы с комплексными числами



Реализация класса

Для работы с комплексными числами

 

Разработала - Семашко Ю.А.

Научный руководитель -

Троцкий М.А.

 

 

Орша 2010

 


Оглавление

ВВЕДЕНИЕ

Глава 1. ПОСТАНОВКА ЗАДАЧИ

1.1 Общая характеристика задачи

Глава 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

2.1 Входные данные

2.2 Выходные данные

2.3 Описание данных, используемых при решении задачи

2.4 Описание схемы программы

Глава 3. РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ

3.1 Описание используемых типов данных

3.2 Проектирование интерфейса

3.3 Написание кода для ввода и вывода исходных данных

Глава 4. ТЕСТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

4.1 Тестирование программы

Глава 5. ЭНЕРГО И РЕСУРСОСБЕРЕЖЕНИЕ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

 


ВВЕДЕНИЕ

 

Математика – одна из самых древних наук. Первые математические представление появились и понятия появились в доисторическое время. Они возникли в процессе практической деятельности людей. Из самой природы человек заимствовал геометрические формы; в процессе решения практических задач возникали понятия арифметики и геометрии.

В 17 веке в связи с запросами практики математические исследования необычайно расширяются, и возникает несколько новых направлений: аналитическая геометрия, анализ бесконечно малых, теория вероятностей и др. создание аналитической геометрии и анализа явилось подлинной революцией в математике. В центре исследований оказались новые объекты и методы.

Математика перешла к изучению переменных величин и функций, как аналогов механического движения и всякого изменения вообще.

21 век – век информационных технологий. Информационные технологии используются как на предприятиях в производстве, так и организациях, связанных с наукой, образованием, искусством. Наиболее прочно программирование и создание программных продуктов взаимосвязано с математикой, с помощью которой осуществляется построение алгоритмов и поиск решений.

Темой данного курсового проекта является создание класса для работы с комплексными числами. В данном проекте можно проследить взаимодействие математики и программирования.

 


Глава 1. ПОСТАНОВКА ЗАДАЧИ

Общая характеристика задачи

 

Реализовать класс, который позволяет работать с типом данных  комплексные числа, представленном как в арифметической, так и тригонометрических формах.

В классе должны быть представлены следующие операции по работе  с комплексными числами:

1. сложение двух комплексных чисел;

2. вычитание двух комплексных чисел;

3. умножение двух комплексных чисел;

4. деление двух комплексных чисел;

5. нахождение n-ой степени комплексного числа;

6. вычисления корня n-ой степени комплексного числа;

7. перевод чисел из арифметической формы в тригонометрическую и в показательную;

 


Глава 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

Входные данные

 

В данной программе в качестве входных данных пользователю

необходимо ввести два комплексных числа, а также значение степени выполнения функции возведения в степень, степень для вычисления корня и номер корня комплексного числа. Ввод данных осуществляется с помощью клавиатуры.

Выходные данные

 

Выходные данные пользователь получает после введения всех входных данных и нажатия клавиши <Enter>.

Выходными данными являются комплексные числа в арифметической и (или) тригонометрической форме, полученные в результате выполнения операций над входными данными.

 

Описание схемы программы

 

     
 

 


 

                     
 
Вычисление f2

 

 



Глава 3 РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ


Проектирование интерфейса

 

Данная программа разрабатывалась с помощью среды программирования Microsoft Visual Studio 2005. Программа является консольным приложением. Интерфейс программы во время выполнения:

 


Тестирование программы

 

Тестирование программы проводилось с целью проверки работоспособности программы.

Тестирование проводилось на персональном компьютере со следующими характеристиками:

- Процессор Celeron(R);

- Видеокарта SIS 650/651/740/661FX/741/760 series;

- Оперативная память 256 Mb;

- Материнская плата ECS NForce3-A;

- Монитор LG Flatron T750BH Plus;

- Винчестер 80Gb.

Результаты тестирования приведены в приложении Б.

 


ЗАКЛЮЧЕНИЕ

 

В результате выполнения данного курсового проекта был реализован класс Complex, позволяющий работать с комплексными числами.

Программа позволяет производить следующие операции с комплексными числами:

1. сложение двух комплексных чисел;

2. вычитание двух комплексных чисел;

3. умножение двух комплексных чисел;

4. деление двух комплексных чисел;

5. нахождение n-ой степени комплексного числа;

6. вычисления корня n-ой степени комплексного числа;

7. перевод чисел из арифметической формы в тригонометрическую и в показательную формы;

Курсовой проект содержит программу со всеми необходимыми файлами, хранящуюся на диске, а также блок-схему, иллюстрирующую работу программы.

 


ПРИЛОЖЕНИЯ

Приложение А (обязательное)

 

Текст программы

#pragma once

class Complex

{

public:

friend Complex operator + (Complex &a1, Complex &b1);

friend Complex operator - (Complex &a1, Complex &b1);

friend Complex operator * (Complex &a1, Complex &b1);

friend Complex operator / (Complex &a1, Complex &b1);

friend Complex operator & (Complex &a1, Complex &b1);

friend Complex operator &&(Complex &a1,Complex &b1);

friend Complex operator == (Complex &a1,Complex &b1);

void ShowComplex();

public:

Complex(void);

Complex(double a1, double b1);

~Complex(void);

int n;

private:

double re;

double im;

};

#include "stdafx.h"

#include "Complex.h"

#include "iostream"

#include "math.h"

using namespace std;

Complex::Complex(void)

{

}

Complex::Complex(double a, double b)

{

re=a;

im=b;

}

Complex::~Complex(void)

{

}

Complex operator + (Complex &a, Complex &b){

double re = a.re + b.re;

double im = a.im + b.im;

cout << "Summa arif.forma: " << re << " + " << im << "i" << endl;

double f1=sqrt(re*re+im*im);

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom summa" << endl;

cout << f1 << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(re,im);

return t;

}

Complex operator - (Complex &a, Complex &b){

20

double re = a.re - b.re;

double im = a.im - b.im;

cout << "Raznost': " << re << " + " << im << "i" << endl;

double f1=sqrt(re*re+im*im);

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom raznost'" << endl;

cout << f1 << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(re,im);

return t;

}

Complex operator * (Complex &a, Complex &b){

double re = a.re*b.re - a.im*b.im;

double im = a.im*b.re+a.re*b.im;

cout << "Proizvedenie: " << re << " + " << im << "i" << endl;

double f1=sqrt(re*re+im*im);

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom proiz." << endl;

cout << f1 << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(re,im);

return t;

}

Complex operator / (Complex &a, Complex &b){

if(b.re*b.re+b.im*b.im==0)

{

cout <<"Delenie na 0";

}

else{

double re=(a.re*b.re+a.im+b.im)/(b.re*b.re+b.im*b.im);

double im=(a.im*b.re-a.re*b.im)/(b.re*b.re+b.im*b.im);

cout << "Chasnoe: " << re << " + " << im << "i" << endl;

double f1=sqrt(re*re+im*im);

double f2=re/f1;

double f3=im/f1;

cout << "Trigonom chastnoe" << endl;

cout << f1 << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(re,im);

return t;

}

}

Complex operator &(Complex &a, Complex &b){

int n;

cout << "Vvedite chislo stepeni:" << endl;

cin >> n;

double r=sqrt(a.re*a.re+a.im*a.im);

double rn=pow(2,r);

double f2=n*a.re/rn;

double f3=n*a.im/rn;

cout << "Trigonom form vozvedenie v stepen' a:" << endl;

cout << rn << "(cos(" << f2 << ") + isin(" << f3 << "))" << endl;

Complex t(n,rn);

return t;

}

Complex operator &&(Complex &a,Complex &b){

int m;

int k;

cout << "Vvedite chislo ctepeni korny:" << endl;

cin >> m;

cout << "Vvedite nomer korny:" << endl;

cin >> k;

double r=sqrt(a.re*a.re+a.im*a.im);

21

double rn=pow(2,r);

double f1=(m*a.re/rn+2*3,14*k)/m;

double f2=(m*a.im/rn+2*3.14*k)/m;

cout << "Trigonom form vyshislenie korny a:" << endl;

cout << rn << "(cos(" << f1 << ") + isin(" << f2 << "))" << endl;

Complex t(m,k);

return t;

}

Complex operator == (Complex &a,Complex &b){

double r=sqrt(a.re*a.re+a.im*a.im);

double f2=a.re/r;

cout << "Eksponenta a:" << endl;

cout << r << "e^(i*" << f2 << ")" << endl;

Complex t(r,f2);

return t;

}

void Complex::ShowComplex(){

cout << "Vvedite chislo" <<endl;

cin >> re;

cin >> im;

cout << "Arif. forma: " << re << " + " << im << "i" << endl;

double z=sqrt(re*re+im*im);

cout << "Modul' shisla:" << z << endl;

cout << "Trigonom form" << endl;

double f=re/z;

double f1=im/z;

cout << z << "(cos(" << f << ") + isin(" << f1 << "))" << endl;

}

#include "stdafx.h"

#include "Complex.h"

#include "conio.h"

#include "iostream"

#include "math.h"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{

Complex a;

Complex b;

Complex ob;

a.ShowComplex();

b.ShowComplex();

a+b;

a-b;

a*b;

a/b;

a&b;

a&&b;

a==b;

getch();

return 0;

}

22

 


Приложение Б (Справочное)

 

Результаты тестирования

 

23

 

 

 


     
 

 

 


24

 

25

 

Реализация класса

для работы с комплексными числами

 

Разработала - Семашко Ю.А.

Научный руководитель -

Троцкий М.А.

 

 

Орша 2010

 


Оглавление

ВВЕДЕНИЕ

Глава 1. ПОСТАНОВКА ЗАДАЧИ

1.1 Общая характеристика задачи

Глава 2. ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

2.1 Входные данные

2.2 Выходные данные

2.3 Описание данных, используемых при решении задачи

2.4 Описание схемы программы

Глава 3. РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ

3.1 Описание используемых типов данных

3.2 Проектирование интерфейса

3.3 Написание кода для ввода и вывода исходных данных

Глава 4. ТЕСТИРОВАНИЕ ПРОГРАММНОГО МОДУЛЯ

4.1 Тестирование программы

Глава 5. ЭНЕРГО И РЕСУРСОСБЕРЕЖЕНИЕ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

 


ВВЕДЕНИЕ

 

Математика – одна из самых древних наук. Первые математические представление появились и понятия появились в доисторическое время. Они возникли в процессе практической деятельности людей. Из самой природы человек заимствовал геометрические формы; в процессе решения практических задач возникали понятия арифметики и геометрии.

В 17 веке в связи с запросами практики математические исследования необычайно расширяются, и возникает несколько новых направлений: аналитическая геометрия, анализ бесконечно малых, теория вероятностей и др. создание аналитической геометрии и анализа явилось подлинной революцией в математике. В центре исследований оказались новые объекты и методы.

Математика перешла к изучению переменных величин и функций, как аналогов механического движения и всякого изменения вообще.

21 век – век информационных технологий. Информационные технологии используются как на предприятиях в производстве, так и организациях, связанных с наукой, образованием, искусством. Наиболее прочно программирование и создание программных продуктов взаимосвязано с математикой, с помощью которой осуществляется построение алгоритмов и поиск решений.

Темой данного курсового проекта является создание класса для работы с комплексными числами. В данном проекте можно проследить взаимодействие математики и программирования.

 


Глава 1. ПОСТАНОВКА ЗАДАЧИ

Общая характеристика задачи

 

Реализовать класс, который позволяет работать с типом данных  комплексные числа, представленном как в арифметической, так и тригонометрических формах.

В классе должны быть представлены следующие операции по работе  с комплексными числами:

1. сложение двух комплексных чисел;

2. вычитание двух комплексных чисел;

3. умножение двух комплексных чисел;

4. деление двух комплексных чисел;

5. нахождение n-ой степени комплексного числа;

6. вычисления корня n-ой степени комплексного числа;

7. перевод чисел из арифметической формы в тригонометрическую и в показательную;

 



Поделиться:


Последнее изменение этой страницы: 2019-10-15; просмотров: 182; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.103.202 (0.109 с.)