Форум программистов, компьютерный форум, киберфорум С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 1
Регистрация: 13.12.2017
Сообщений: 20

Класс для операций над комплексными числами (код не работает)

31.03.2018, 12:14. Показов 989. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать класс для выполнения операций с комплексными числами. Предусмотреть операции: составление и вычитание; умножения и деления; вычисления модуля; консольный ввод и вывод; инициализацию.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int m){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "-";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "*";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "/";
    cout << imaginary << "i" <<endl;
};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
int main(){
    int obj1, obj2, obj3, obj4, obj5, obj6;
    cout << "Введите комплексные числа: "<<endl;
    cin>>obj1;
    cout << "Введите комплексные числа: "<<endl;
    cin>>obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    system("pause");
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2018, 12:14
Ответы с готовыми решениями:

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

Функции для выполнения арифметических операций над комплексными числами
№1 Заданы два комплексных числа (a+ib) и (c+id) и тип операции(+, -, *, /). Создать функции для выполнения арифметических операций над...

Создание модуля для выполнения операций над комплексными числами
Вообщем такое задание: Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: 1)...

5
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
31.03.2018, 13:04
qazwsx123456789, прокомментировала ошибки.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber {
private:
    int real, imaginary;
public:
    ComplexNumber()
    {
        real = 0;
        imaginary = 0;
    }
    ComplexNumber(int r, int im);
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int m) {
    real = r;
    imaginary = im; // компилятор говорит что нет такой переменной, следовательно, что-то перепуталось. в данном случае переменная m должна была называться im.
};
 
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "+";
    cout << imaginary << "i" << endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "-";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "*";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
void ComplexNumber::show() {
    cout << real;
    if (imaginary >= 0)
        cout << "/";
    cout << imaginary << "i" << endl;
};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
int main() {
    int obj1, obj2, obj3, obj4, obj5, obj6; // переменные объявлены как int!
    cout << "Введите комплексные числа: " << endl;
    cin >> obj1;
    cout << "Введите комплексные числа: " << endl;
    cin >> obj2;
    obj3 = obj1.plus(obj2); // переменная obj3 была объявлена как int, следовательно, для нее неприменимы функции из ComplexNumber!
    obj4 = obj1.minus(obj2); // далее та же проблема.
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    system("pause");
    return 0;
}
0
0 / 0 / 1
Регистрация: 13.12.2017
Сообщений: 20
31.03.2018, 14:20  [ТС]
я чуть-чуть изменил код но он все равно не работает
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int im){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
//
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "-";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "*";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "/";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
ComplexNumber ComplexNumber::mod (ComplexNumber cn) {
    ComplexNumber temp;
    temp.real = sgrt(pow(real, 2) + pow(cn.real, 2));
    temp.imaginary = sgrt(pow(imaginary, 2) + pow(cn.imaginary, 2));
    return temp;
};
 
int main(){
    ComplexNumber obj1, obj2, obj3, obj4, obj5, obj6, obj7;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj1;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj7 = obj1.mod(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    obj7.show();
    system("pause");
    return 0;
}
0
1 / 1 / 0
Регистрация: 31.03.2018
Сообщений: 10
31.03.2018, 15:00
если ты хочешь работать с классом, то так
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
#include <iostream>
#include <windows.h>
 
using namespace std;
 
class ComplexNumber {
    friend istream& operator >> (istream &, ComplexNumber &);
    friend ostream& operator << (ostream &, const ComplexNumber &);
private:
    int real, imaginary;
public:
    ComplexNumber (int n, int m) { real = n, imaginary = m; }
    friend ComplexNumber& operator += (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator -= (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator *= (ComplexNumber, const ComplexNumber);
    friend ComplexNumber& operator /= (ComplexNumber, const ComplexNumber);
};
 
 ostream& operator << (ostream &os, const ComplexNumber &a) {
    os << a.real << ((a.imaginary > 0) ? '+' : ' ') << ((a.imaginary > 0) ? a.imaginary : ' '); return os;
}
 
istream& operator >> (istream &is, ComplexNumber &a) {
    is >> a.real >> a.imaginary; return is;
}
 
ComplexNumber& operator += (ComplexNumber &a, const ComplexNumber &b) {
     a.real += b.real; a.imaginary += b.imaginary; return a;
}
 
ComplexNumber& operator -= (ComplexNumber &a, const ComplexNumber &b) {
     a.real -= b.real; a.imaginary -= b.imaginary; return a;
}
 
ComplexNumber& operator *= (ComplexNumber &a, const ComplexNumber &b) {
     a.real *= b.real; a.imaginary *= b.imaginary; return a;
}
 
ComplexNumber& operator /= (ComplexNumber &a, const ComplexNumber &b) {
     a.real /= b.real; a.imaginary /= b.imaginary; return a;
}
 
int main () {
    ComplexNumber a, b;
    cin >> a, b;
    cout << a << b << (a += b) << (a -= b) << (a *= b) << (a /= b) << endl;
    system ("pause");
    return 0;
}
P.S. писал на скорую руку, могут быть ошибки
0
 Аватар для vlisp
1050 / 971 / 153
Регистрация: 10.08.2015
Сообщений: 5,257
31.03.2018, 16:00
сообщество забаненных в гугле?этот комплекс есть в стандартной библиотеке на гитхабе и на этом форуме в таком количестве, что стыдно не найти.
Цитата Сообщение от qazwsx123456789 Посмотреть сообщение
изменил код но он все равно не работает
а должен? ты даже не соизволил создать объект, который возвращаешь!
0
 Аватар для MayaNash
1296 / 470 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
01.04.2018, 07:46
qazwsx123456789, прокомментировала ошибки.
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
#include <iostream>
#include <math.h>
 
using namespace std;
 
class ComplexNumber{
    private:
        int real , imaginary ;
    public:
    ComplexNumber()
    {
        real =0;
        imaginary =0;
     } 
    ComplexNumber(int r, int im );
    void show();
    ComplexNumber plus(ComplexNumber cn);
    ComplexNumber minus(ComplexNumber cn);
    ComplexNumber multiply(ComplexNumber cn);
    ComplexNumber divide(ComplexNumber cn);
};
 
 
ComplexNumber::ComplexNumber(int r, int im){
    real = r;
    imaginary = im;
};
 
 
void ComplexNumber::show(){
    cout << real;
    if(imaginary >= 0) 
    cout << "+";
    cout << imaginary << "i" <<endl;
};
 
 
ComplexNumber ComplexNumber::plus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real + cn.real;
    temp.imaginary = imaginary + cn.imaginary;
    return temp;
};
//
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "-";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::minus(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real - cn.real;
    temp.imaginary = imaginary - cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "*";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::multiply(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real * cn.real;
    temp.imaginary = imaginary * cn.imaginary;
    return temp;
};
 
//void ComplexNumber::show(){
//  cout << real;
//  if(imaginary >= 0) 
//  cout << "/";
//  cout << imaginary << "i" <<endl;
//};
 
ComplexNumber ComplexNumber::divide(ComplexNumber cn){
    ComplexNumber temp;
    temp.real = real / cn.real;
    temp.imaginary = imaginary / cn.imaginary;
    return temp;
};
 
ComplexNumber ComplexNumber::mod (ComplexNumber cn) { // эта функция не объявлена в классе, нужно объявить
    ComplexNumber temp;
    temp.real = sgrt(pow(real, 2) + pow(cn.real, 2));
    temp.imaginary = sgrt(pow(imaginary, 2) + pow(cn.imaginary, 2));
    return temp;
};
 
int main(){
    ComplexNumber obj1, obj2, obj3, obj4, obj5, obj6, obj7;
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj1; // вы вводите... из типа класса в объект? нужно прочитать реальную и воображаемую часть из cin, и изменить эти части в объектах
    cout << "Введите комплексные числа: "<<endl;
    ComplexNumber >> obj2;
    obj3 = obj1.plus(obj2);
    obj4 = obj1.minus(obj2);
    obj5 = obj1.multiply(obj2);
    obj6 = obj1.divide(obj2);
    obj7 = obj1.mod(obj2);
    obj1.show();
    obj2.show();
    obj3.show();
    obj4.show();
    obj5.show();
    obj6.show();
    obj7.show();
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.04.2018, 07:46
Помогаю со студенческими работами здесь

Создать функции для выполнения арифметических операций над комплексными числами
Заданные два комплексных числа (a + ib) и (c + id) и тип операции (Сложение, умножение, вычитание, деление). Создать функции для...

Создать функции для выполнения арифметических операций над комплексными числами
Заданы два комплексных числа (a+ib) и (c+id) и тип операции(+, -, *, /). Создать функции для выполнения арифметических операций над...

Реализовать в виде модуля набор подпрограмм для операций над комплексными числами.
1. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: 1) сложение 2)вычитание ...

Реализовать в виде модуля набор подпрограмм для выполнения операций над комплексными числами
1) Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: а) сложения; б) вычитания; ...

Реализовать в виде класса набор подпрограмм для выполнения операций над комплексными числами
1. сложение; 2. вычитание; 3. умножение; 4. модуль комплексного числа;


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Архитектурные паттерны микросервисов: ТОП-10 шаблонов
ArchitectMsa 22.03.2025
Популярность микросервисной архитектуры объясняется множеством важных преимуществ. К примеру, она позволяет командам разработчиков работать независимо друг от друга, используя различные технологии и. . .
Оптимизация рендеринга в Unity: Сортировка миллиона спрайтов
GameUnited 22.03.2025
Помните, когда наличие сотни спрайтов в игре приводило к существенному падению производительности? Время таких ограничений уходит в прошлое. Сегодня геймдев сталкивается с задачами совершенно иного. . .
Образование и практика
Igor3D 21.03.2025
Добрый день А вот каково качество/ эффективность ВУЗовского образования? Аналитическая геометрия изучается в первом семестре и считается довольно легким курсом, что вполне справедливо. Ну хорошо,. . .
Lazarus. Таблица с объединением ячеек.
Massaraksh7 21.03.2025
Понадобилась представление на экране таблицы с объединёнными ячейками. И не одной, а штук триста, и все разные. На Delphi я использовал для этих целей TStringGrid, и то, кривовато получалось. А в. . .
Async/await в Swift: Асинхронное программировани­е в iOS
mobDevWorks 20.03.2025
Асинхронное программирование долго было одной из самых сложных задач для разработчиков iOS. В течение многих лет мы сражались с замыканиями, диспетчеризацией очередей и обратными вызовами, чтобы. . .
Колмогоровская сложность: Приёмы упрощения кода
ArchitectMsa 20.03.2025
Наверное, каждый программист хотя бы раз сталкивался с кодом, который напоминает запутанный лабиринт — чем дальше в него погружаешься, тем сложнее найти выход. И когда мы говорим о сложности кода, мы. . .
PostgreSQL в Kubernetes: Подготовка кластера и настройка
Mr. Docker 20.03.2025
Когда доходит до контейнеризации баз данных и особенно таких требовательных к ресурсам системах как PostgreSQL, многие команды до сих пор колеблются, прежде чем перенести их в контейнерную. . .
C++26: Индексирование пакетов и метапрограммиро­вание
bytestream 20.03.2025
Эволюция C++ продолжается стремительными темпами – каждый новый стандарт приносит функциональность, о которой мы мечтали годами. Звучит слишком громко? Если вы когда-либо боролись с вариадическими. . .
Состояние гонки в C#: подводные камни многопоточного программировани­я
UnmanagedCoder 20.03.2025
Что такое состояние гонки? Это ситуация, когда результат программы непредсказуемо меняется в зависимости от порядка выполнения потоков. Проще говоря, два или более потока пытаются одновременно. . .
Next.js для разработки React: преимущества серверного рендеринга
Reangularity 20.03.2025
Next. js решает классическую проблему React-приложений: медленную первоначальную загрузку и плохую индексацию поисковиками. Вместо того чтобы заставлять браузер пользователя выполнять всю работу по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер