Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Действия с комплексными числами - C++

31.03.2012, 21:16. Просмотров 753. Ответов 3
Метки нет (Все метки)

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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/* Использованы материалы с 
_http://dmtsoft.ru/bn/370/as/oneaticleshablon/ */
 
#include <iostream>
#include <cmath>
 
using namespace std;
 
class Complex
{
  private:
    double real;    // Действительная часть
        double image;   // Мнимая часть
    public:
        Complex() {};   // Конструктор по умолчанию
        Complex(double r) { real = r; image = 0; } // Конструктор
        Complex(double r, double i) { real = r, image = i; }    // Конструктор
        ~Complex() {}   // Деструктор
        double abs()   // Модуль комплексного числа
        {
            return sqrt(pow(real, 2.0) - pow(image, 2.0));
        }
 
        Complex operator+(Complex &);   // Перегрузка оператора сложения
        Complex operator-(Complex &);   // Перегрузка оператора вычитания
        Complex operator*(Complex &);   // Перегрузка оператора умножения
        Complex operator/(Complex &);   // Перегрузка оператора деления
    bool operator == (Complex & val)
    {
      if ((this->real == val.real) && (this->image == val.image))
      {
        return true;
      }
      else
      {
        return false;
      }
    }
    bool operator != (Complex & val)
    {
      if ((this->real == val.real) && (this->image == val.image))
      {
        return false;
      }
      else
      {
        return true;
      }
    }
 
        // Перегрузка функции-оператора << для вывода класса Complex
        friend ostream &operator<<(ostream &, Complex &);
 
        // Перегрузка функции-оператора >> для ввода класса Complex
        friend istream &operator>>(istream &, Complex &);
    };
 
// Перегрузка +
Complex Complex::operator+(Complex &fp1)
    {
    fp1.real = real + fp1.real;
    fp1.image = image + fp1.image;
    return fp1;
    }
 
// Перегрузка -
Complex Complex::operator-(Complex &fp1)
    {
    fp1.real = real - fp1.real;
    fp1.image = image - fp1.image;
    return fp1;
    }
 
// Перегрузка *
Complex Complex::operator*(Complex &fp1)
    {
    double i, j;
    i = real * fp1.real - image * fp1.image;
    j = real * fp1.image + fp1.real * image;
    fp1.real = i;
    fp1.image = j;
    return fp1;
    }
 
// Перегрузка /
Complex Complex::operator/(Complex &fp1)
    {
    double k, i, j;
    k = fp1.real * fp1.real + fp1.image * fp1.image;
    i = (real * fp1.real + image * fp1.image) / k;
    j = (fp1.real * image - real * fp1.image) / k;
    fp1.real = i;
    fp1.image = j;
    return fp1;
    }
 
// Перегрузка оператора <<
ostream &operator<< (ostream &fo, Complex &fp)
    {
    if (fp.image < 0) fo << fp.real << "+i(" << fp.image << ")\n";
    else fo << fp.real << "+i" << fp.image << "\n";
 
    return fo;
    }
 
// Перегрузка оператора >>
istream &operator>>(istream &fi, Complex &fp)
    {
    cout << "Введите действительную часть: ";
    fi >> fp.real;
    cout << "Введите мнимую часть: ";
    fi >> fp.image;
    return fi;
    }
 
int main()
{
    // Комплексные числа
    Complex c1, c2;
 
    // Ввод комплексных чисел
    cin >> c1;
    cin >> c2;
 
    // Вывод комплексных чисел
    cout << "\nc1 = " << c1;
    cout << "c2 = " << c2;
    if (c1 == c2) 
    {
      cout << "c1 = c2\r\n";
    }
    if (c1 != c2)
    {
      cout << "c1 != c2\r\n";
    }
    cout << "Модуль c1: " << c1.abs() << "\n\n";
 
    // Вывод результатов операций
    cout << "c1 + c2 = " << (c1 + c2);
    cout << "c1 - c2 = " << (c1 - c2);
    cout << "c1 * c2 = " << (c1 * c2);
    cout << "c1 / c2 = " << (c1 / c2);
  return 0;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2012, 21:16
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Действия с комплексными числами (C++):

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

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

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

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

Работа с комплексными числами - C++
Парни и девчушки (если тут такие есть :)), у меня задание - создать класс, который может производить арифметические операции с комплексными...

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

3
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
31.03.2012, 21:19 #2
А где вопрос?
0
RageXL
1 / 1 / 0
Регистрация: 18.12.2011
Сообщений: 57
31.03.2012, 22:02  [ТС] #3
Вопрос следующий. Нужно довести до ума данную программу, она не работает. Программа выполняет действия с комплексными числами.
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
31.03.2012, 22:18 #4
C++
1
friend ostream &operator<<(ostream &, Complex);
C++
1
2
3
4
5
6
7
ostream &operator<< (ostream &fo, Complex fp)
{
if (fp.image < 0) fo << fp.real << "+i(" << fp.image << ")\n";
else fo << fp.real << "+i" << fp.image << "\n";
 
return fo;
}
1
31.03.2012, 22:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2012, 22:18
Привет! Вот еще темы с ответами:

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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