Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Anton087
0 / 0 / 0
Регистрация: 30.05.2009
Сообщений: 2
#1

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

03.06.2009, 02:14. Просмотров 1791. Ответов 2
Метки нет (Все метки)

Здравствуйте! у меня большая проблема... я плохо понимаю с++ и с трудом делаю лабы в универе. вот одна из них.

Задание:Написать класс, комплексные числа, данными которого являются: действительная и мнимая часть. Обеспечить работу с объектами данного класса, как с переменными стандартных типов (int, float и т.п.). Для этого необходимо перегрузить стандартные операции (такие как: = + - * /).

Если вам это легко и просто помогите пожалуйста. буду очень признателен за пояснения в комментариях.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2009, 02:14
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Комплексные числа (C++):

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

Комплексные числа
Как вы думаете. Допустим, у нас есть i. То самое, что значит -1. Можно ли...

Комплексные числа
2. Даны два комплексных числа в алгебраической форме. Найти их произведение. ...

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

Комплексные числа
Доброе время суток! Я новичок в Си++ а задали задание сделать: Заранее...

Комплексные числа
Добавлено через 32 секунды Написать тестовую программу, которая: *...

2
YurA_280784
Заблокирован
03.06.2009, 15:59 #2
Лучший ответ Сообщение было отмечено как решение

Решение

Вот разработанный мной самим хедер для комплексов, сам часто юзал в универе
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
144
145
146
147
148
149
150
151
152
#ifndef COMPLEX_H
#define COMPLEX_H
 
#include <math.h>//Подключение прототипов математических функций
 
class CComplex
{   
public:
    double re,im;   
    CComplex(){re = 0; im = 0;}
    CComplex(double _re, double _im){re = _re; im = _im;}
 
    CComplex operator+(double val);
    CComplex operator-(double val);
    CComplex operator*(double val);
    CComplex operator/(double val);
 
    CComplex operator+(CComplex& val);
    CComplex operator-(CComplex& val);
    CComplex operator*(CComplex& val);
    CComplex operator/(CComplex& val);
 
    double Re(CComplex val);
    double Im(CComplex val);
    CComplex ExpToAlg(double abs_val, double angle);
    CComplex AlgToExp(CComplex val);
    CComplex cmxpower(CComplex val, double power);
};
typedef CComplex *LPCCOMPLEX;
 
CComplex
CComplex::operator +(double val)
{
    CComplex ret_val;
    ret_val.re = re+val;
    ret_val.im = im;
    return ret_val;
}
 
CComplex
CComplex::operator -(double val)
{
    CComplex ret_val;
    ret_val.re = re-val;
    ret_val.im = im;
    return ret_val;
}
 
CComplex
CComplex::operator *(double val)
{
    CComplex ret_val;
    ret_val.re = re*val;
    ret_val.im = im*val;
    return ret_val;
}
 
CComplex
CComplex::operator /(double val)
{
    CComplex ret_val;
    ret_val.re = re/val;
    ret_val.im = im/val;
    return ret_val;
}
 
CComplex
CComplex::operator +(CComplex& val)
{
    CComplex ret_val;
    ret_val.re = re+val.re;
    ret_val.im = im+val.im;
    return ret_val;
}
 
CComplex
CComplex::operator -(CComplex& val)
{
    CComplex ret_val;
    ret_val.re = re-val.re;
    ret_val.im = im-val.im;
    return ret_val;
}
 
CComplex
CComplex::operator *(CComplex& val)
{
    CComplex ret_val;
    ret_val.re = re*val.re - im*val.im;
    ret_val.im = im*val.im + re*val.im;
    return ret_val;
}
 
CComplex 
CComplex::operator /(CComplex& val)
{
    CComplex ret_val;
    double div = pow(val.re,2)+pow(val.im,2);
    ret_val.re = re*val.re + im*val.im;
    ret_val.im = -re*val.im + im*val.re;    
    return ret_val/div;
}
 
double CComplex::Re(CComplex val)
{
    return val.re;
}
 
double CComplex::Im(CComplex val)
{
    return val.im;
}
 
CComplex 
CComplex::ExpToAlg(double abs_val, double angle)
{
    CComplex ret_val;
    double pi = 3.14;
    angle = (angle/360);
    angle = angle - floor(angle);   //отбрасываем целое число 360 градусов
    angle = angle*2*pi;             //переводим угол в радианы
 
    angle = (angle/(pi/2));
    angle = angle - floor(angle);   //отбрасываем целое число pi/2 радиан
    angle = angle*(pi/2);           //переводим угол в первую четверть
    ret_val.re = abs_val*cos(fabs(angle));
    ret_val.im = abs_val*sin(fabs(angle));
    if(angle < 0)
        ret_val.im = - ret_val.im;//sin(-x) = - sin(x);
    return ret_val;
}
 
CComplex 
CComplex::AlgToExp(CComplex val)
{
    CComplex ret_val;
    ret_val.re = sqrt(pow(val.re,2)+pow(val.im,2));
    ret_val.im = atan2(val.im,val.re);
    return ret_val;
}
 
CComplex 
CComplex::cmxpower(CComplex val, double power)
{
    CComplex ret_val;
    ret_val    = AlgToExp(val);
    ret_val.im = ret_val.im*power;
    ret_val    = ExpToAlg(ret_val.re,ret_val.im);
    return ret_val;
}
 
#endif
В программе используем так
#include <windows.h>
#include <complex.h>

//Твой код

А вообще вот пример:
1
Вложения
Тип файла: rar tema_4.rar (27.9 Кб, 94 просмотров)
Anton087
0 / 0 / 0
Регистрация: 30.05.2009
Сообщений: 2
03.06.2009, 21:12 #3
Огромное спасибо. буду разбирать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.06.2009, 21:12
Привет! Вот еще темы с решениями:

Комплексные числа
Сформировать массив из 10 элементов в диапазоне из структуры комплексных чисел.

Комплексные числа
Нужно написать программу методом перегрузки, которая производит операции с...

комплексные числа
дан список, элементы которого являются комплексными числами. Найти сумму...

Комплексные числа в с++
Здравствуйте. Нужна ваша помощь. Задание такое: Написать программу...


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

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

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