Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
serik8989
2 / 2 / 0
Регистрация: 16.12.2012
Сообщений: 54
#1

Комплексные числа - C++

25.04.2013, 18:23. Просмотров 340. Ответов 0
Метки нет (Все метки)

народ помогите пожалуйста реализовать в следующих формах: в тригонометрической форме и логарифмической форме.
я сам несколько заданий сделал. вот сама прога
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#include "stdafx.h"
#include <iostream>//ввод вывод строк,для работы cin и cout
#include <stdlib.h>//просто стандартная библиотека
#include <conio.h>//консольный ввод вывод
#include <math.h>//подключение математической библиотеки
 
using namespace std;
 
void num(double,double);//вывод числа (чтоб красиво было)
class complex {public://общие свойства
//параметры передаются как (int r1,int c1,int r2,int c2) => r1,r2-вещественная часть c1,c2-комплексная часть
               void summa(double ,double ,double,double ,char *);//сумма
               void stepen(double ,double ,int);//возведение в степень (степень целочисленая)
               void koren(double ,double ,int );//извлечение квадратного корня
              };
void num(double r,double c)
{if((c>0)||(c==0)) cout<<"("<<r<<"+"<<c<<"j"<<")";
 if(c<0) cout<<"("<<r<<c<<"j"<<")";
};
 
void complex::summa(double r1,double c1,double r2,double c2, char *s)//метод сумма
{double r,c;//r-конечная целая часть,с-конечная комплексная часть
 num(r1,c1);//вывод 1 числа
 if(strcmp("+",s)==0)//если операция +   
   {cout<<"+";
    r=r1+r2;//подчсет целой части
    c=c1+c2;//посдчет комплексной части
   };
 if(strcmp("-",s)==0)//если операция -
   {cout<<"-"; 
    r=r1-r2;//подчсет целой части
    c=c1-c2;//посдчет комплексной части
   };
 num(r2,c2);//вывод 2 числа
 cout<<"=";
 num(r,c);//вывод результата 
 cout<<endl;
};
void complex::stepen(double r1,double c1,int s)//метод возведение в целочисленную степень s
//чтобы возвести число в степень переведем его в тригонометрическую форму,при условии что r=Rcosx;c=Rsinx;R=sqrt(r^2+c^2) и само 
//число z=r+c*i; z^n=(Rconx+Rsinx)^n=R^n(cos(nx)+sin(nx))-Формула Муавра=>целая часть r=cos(nx)*R^n,а комплексная c=sin(nx)*R^n;
{double r,c;//r-конечная целая часть,с-конечная комплекcная часть
 double R;//Ро;R=sqrt(r^2+c^2)
 double y;//угол
 y=atan(c1/r1);//подсчет арктангенса угла
 R=pow((r1*r1+c1*c1),0.5);//вычисление R
 r=cos(s*y)*pow(R,s);//вычисление целой части
 c=sin(s*y)*pow(R,s);//вычисление комплексной части
 num(r1,c1);//вывод числа
 cout<<"^"<<s;//вывод числа степени
 cout<<"=";
 num(r,c);//вывод результата
 cout<<endl;
};
 
void complex::koren(double r1,double c1,int s)//метод извлечение квадратного корня//и не только квадратного,работает на все степени
//s-передается как знаменатель степени,т.е. сама степеноь это 1/s
//чтобы возвести число в степень переведем его в тригонометрическую форму,при условии что r=Rcosx;c=Rsinx;R=sqrt(r^2+c^2) и само 
//число z=r+c*i; Формула вычисления (R(cosx+i*sinx))^(1/s)=(cos((x+2pi*k)/s)+i*sin((x+2pi*k)/s)*R^(1/s);
{double r,c;//r-конечная целая часть,с-конечная комплексная часть
 double R;//Ро;R=sqrt(r^2+c^2)
 double y;//угол 
 int k;//для корней,k=(1,s-1);
 num(r1,c1);//вывод числа
 cout<<"^(1/"<<s<<")="<<endl;
 y=atan(c1/r1);//подсчет арктангенса угла
 R=pow((r1*r1+c1*c1),0.5);//вычисление R
 for(k=0;k<s;k++)
    {r=cos((y/180+3.14*k)/s)*pow(R,(1/s));//вычислени целой части 
     c=sin((y/180+3.14*k)/s)*pow(R,(1/s));//вычисление дробной части
     cout<<"koren N "<<k+1<<": ";
     num(r,c);//вывод корня
     cout<<endl;
    }
 cout<<endl;
};
 
int main(array<System::String ^> ^args)
{complex x;//объект класса complex
 double r1,r2,c1,c2;//составляющие чисел (r1,c1) и (r2,c2)
 double s;//степень
 cout<<"vvedite chislo 1(cherez probel):";
 cin>>r1>>c1;//ввод первого числа
cout<<"vvedite chislo 2(cherez probel):";
cin>>r2>>c2;//ввод второго числа
 cout<<"summa"<<endl;
 x.summa(r1,c1,r2,c2,"+");//вывод суммы
 cout<<"raznost"<<endl;
 x.summa(r1,c1,r2,c2,"-");//вывод разности
 cout<<"vvedite stepen(stepen celoe chislo):";
 cin>>s;//ввод возводимой степени
 cout<<"vozvedenei v stepen 1-go chisla"<<endl;
 x.stepen(r1,c1,s);//вывод возведения в степень 1 числа
 cout<<"vozvedenei v stepen 2-go chisla"<<endl;
 x.stepen(r2,c2,s);//вывод возведения в степень 2 числа
 cout<<"vvedite stepen izvlekaemogo kornya s((r1+c1)^(1/s)):";
 cin>>s;//ввод степени извлекаемого корня
 cout<<"vichislenie kornya 1-go chisla"<<endl;
 x.koren(r1,c1,s);//вывод извлечения корня степени 1/s 1 числа
 cout<<"vichislenie kornya 2-go chisla"<<endl;
 x.koren(r2,c2,s);//вывод извлечения корня степени 1/s 2 числа
 getch();
}
у меня те две формы КЧ не выходят!!или подскажите как сделать.прога рабочая
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.04.2013, 18:23     Комплексные числа
Посмотрите здесь:

Комплексные числа - C++
Здравствуйте. Изучаю сейчас C++ по Дейтелам, там попалось задание - создать класс комплексное число с функциями: сложение, вычитание,...

Комплексные числа - C++
Здравствуйте! у меня большая проблема... я плохо понимаю с++ и с трудом делаю лабы в универе. вот одна из них. Задание:Написать класс,...

Комплексные числа - C++
Не могу решить эту задачу!Напишите Алгоритм пожалуйста,вот условие: 1)Вводятся два комплексных числа в алгебраической форме. Написать...

Комплексные числа - C++
Здравствуйте! Как мне в С написать вычисление следующего значения R(коэффициент прохождения): l=exp(i*ky1*(-d)); j=i*ky1*(1-d); ...

Комплексные числа/перегрузка - C++
Чот уже вторую неделю бьюсь над кодом, а осилить не могу, подскажите #include &lt;iostream.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; ...

Комплексные числа/перезагрузка + - C++
Помогите пожалуйста, вообще мне задано реализовать перезагрузку +-/*, с комплексными числами. Для начала решил реализовать перезагрузку...

классы.комплексные числа - C++
написал, но что то не работает, помогите пожалуйсто... #include &quot;stdafx.h&quot; #include &quot;iostream&quot; using namespace std; class complex{ ...

Объект «комплексные числа» - C++
Объект «комплексные числа». Операции определяются по обще принятым формулам. Предусмотреть возможность операции присваивания, сложения,...

Перегрузка оператора, комплексные числа - C++
Не могу понять что делаю не так, компилятор выдает ошибки. Но все они из за неправельной перегрузки операторов вывода &lt;&lt; и &gt;&gt; . ...

Комплексные числа. Библиотека <complex> - C++
Подключил библиотеку с комплексными числами, создал массив комплексных чисел. Произвел умножение матрицу копмлексных чисел на вектор. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru