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

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

Войти
Регистрация
Восстановить пароль
 
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
#1

Работа с комплексными числами - C++

13.12.2012, 17:28. Просмотров 528. Ответов 1
Метки нет (Все метки)

Парни и девчушки (если тут такие есть ), у меня задание - создать класс, который может производить арифметические операции с комплексными числами. Я перегрузил операторы сложения, вычитания, умножения (объект-объект) и умножения (объект-число). Так вот, все вроде работает, но блин, у меня какие-то результаты "пугающие".. я если честно, в математике не силен, но по-моему моя прога считает их как-то неправильно, и непонятно из-за чего (операторы перегружены правильно, я все тщательно пересмотрел). Парни и девушки, кто силен в математике, помогите плиззз!!
Вот код:
Класс:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#ifndef _COMPLEX0_H_
#define _COMPLEX0_H_
class Complex
{
private:
    double r_n;
    double i_n;
public:
    Complex();
    Complex(double real, double miracle);
    ~Complex();
    Complex operator+(Complex &st) const;
    Complex operator-(Complex &st) const;
    Complex operator*(Complex &st) const;
    Complex operator*(double n) const;
    Complex operator~();
    friend ostream & operator<<(ostream &os,const Complex &st);
    friend istream & operator>>(istream &is,Complex &st);
};
#endif
Описание элементов:
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
#include <iostream>
using namespace std;
#include "complex0.h"
Complex::Complex()
{
    r_n=0.0;
    i_n=0.0;
}
Complex::Complex(double real, double miracle)
{
    r_n=real;
    i_n=miracle;
}
Complex::~Complex()
{
}
Complex Complex::operator +(Complex &st) const
{
    Complex sum;
    sum.r_n=r_n+st.r_n;
    sum.i_n=i_n+st.i_n;
    return sum;
}
Complex Complex::operator -(Complex &st) const
{
    Complex diff;
    diff.r_n=r_n-st.r_n;
    diff.i_n=i_n-st.i_n;
    return diff;
}
Complex Complex::operator *(Complex &st) const
{
    Complex multip;
    multip.r_n=(r_n*st.r_n)-(i_n*st.i_n);
    multip.i_n=(r_n*st.i_n)+(i_n*st.r_n);
    return multip;
}
Complex Complex::operator *(double n) const
{
    Complex multip1;
    multip1.r_n=r_n*n;
    multip1.i_n=i_n*n;
    return multip1;
}
Complex Complex::operator ~()
{
    i_n=i_n*(-1);
    return *this;
}
ostream & operator<<(ostream &os,const Complex &st)
{
    os<<"("<<st.r_n<<","<<st.i_n<<"i)\n";
    return os;
}
istream & operator>>(istream &is,Complex &st)
{
    cout<<"Real:__\b\b";
    is>>st.r_n;
    cout<<"Imaginary:__\b\b";
    is>>st.i_n;
    return is;
}
Код проги для теста:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
#include "complex0.h"
int main()
{
    Complex a=Complex(3.0,4.0);
    Complex c;
    cout<<"Enter a complex number (q to quit):\n";
    while(cin>>c)
    {
        cout<<"c is "<<c<<"\n";
        cout<<"Complex conjugate is "<<~c<<"\n";
        cout<<"a+c is "<<a+c<<"\n";
        cout<<"a-c is "<<a-c<<"\n";
        cout<<"a*c is "<<a*c<<"\n";
        cout<<"c*2 is "<<c*2<<"\n";
        cout<<"Enter a complex number (q to quit):\n";
    }
    cout<<"Done!\n";
    system("pause");
    return 0;
}
У меня есть одна догадка (только не смейтесь если что, я в программировании Нуб ): может данные подвергаются как говорится "непредсказуемым изменениям" в каком-либо месте проги? И если это так, то где именно?
Буду очень признателен, если растолкуете мне, что да как
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 17:28     Работа с комплексными числами
Посмотрите здесь:

Классы а С++, работа с комплексными числами - C++
Всем привет, задали задачку: Создать класс &quot;Пара&quot; и заявить в нем 2 числа типа real, далее вывести из данного класса другой, &quot;Комплексное...

Вычисления с комплексными числами - C++
Собственно вот формула: y2=\frac{-u+v}{2}+i\frac{\sqrt{3}(u-v)}{2} Все данные известны кроме i. Как мне объяснили это комплексное...

Многочлен с комплексными числами - C++
Даны натуральное число n, действительные числа х,у,а0,b0...an,bn. Вычислить по схеме Горнера значение многочлена с комплексными...

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

Функция с комплексными числами - C++
Доброго времени суток. Есть следующая функция ln (1 + z) = z – z^2 / 2 + z^3 / 3 – … + (–1)^n-1 (z^n / n) + … ,где Z - комплексное. ...

Действия с комплексными числами - C++
/* Использованы материалы с _http://dmtsoft.ru/bn/370/as/oneaticleshablon/ */ #include &lt;iostream&gt; #include &lt;cmath&gt; using...

Помогите пожалуйста с комплексными числами - C++
Даны действительные числа u1,u2,w1,w2,v1,v2.Получить 2u+((3uw)/(2+w-u))-7,где u,w,v- комплексные числа u1 + iu2, v1 + iv2, w1 +...

Операции над комплексными числами - C++
В данной программе нужно создать дружескую функцию класса Komplex. Таким образом чтобы читалась строка с5=2+с1. Как это правильно сделать??...

Операции над комплексными числами - C++
Дано вот такое задание: Написать программу на языке C++, реализующую арифметику комплекс- ных чисел. Должны быть как минимум определены...

Заполнение массива комплексными числами - C++
Почему компилятор выдает ошибку? // ya nachal delaty RGZ!!!!!! #include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &lt;complex&gt; using...

Как работать с комплексными числами ? - C++
вопрос не по c++ а скорее по паскалю ) как там работать с комплексными числами ? например представить функцию exp(-jwt) ?

Класс по работе с комплексными числами - C++
помогите пожалуйста разработать класс по работе с комплексными числами. Добавлено через 3 минуты наброски есть нужно подсказать что...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
1285 / 947 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
13.12.2012, 19:14     Работа с комплексными числами #2
Подобные задачи решали много раз, вот тут описан код Реализовать класс Complex для работы с комплексными числами
Откомпилируй и посмотри, какие результаты и сравни со своими.
Ответ Создать тему
Опции темы

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