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

Операции с комплексными числами и перегрузка операторов << и >> - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Последовательность. http://www.cyberforum.ru/cpp-beginners/thread354220.html
Доброго времени суток. Код вроде правильный но не запускается ругается на две ошибки. Хотя скидывал программисту говорит что рабочий. #include "stdafx.h" #include <iostream> #include <stdio.h>...
C++ написать пример в с++ ∑_(k=1)^∞▒x^k/(k^3+k√!x!+1) http://www.cyberforum.ru/cpp-beginners/thread354218.html
C++ Помогите с элементарной ппрограммой на C
Я ее начал делать, но наткнулся на то, что не могу написать код перевода из систем счисления.... Помогите пожалуйста! Вот условие (мой вариант 5): ...
Printf не работает C++
Здравствуйте. В такой вот, пародии на программку последний printf ничего не выводит. Только начал изучать C++. Подкажите в чём может быть проблема. У меня Dev C++ 4.9.9.2 #include<stdio.h> main()...
C++ Работа с STL list http://www.cyberforum.ru/cpp-beginners/thread354188.html
Есть некий каталог с 3 переменными (string,string,int), который нужно хранить в list Как я понимаю есть 2 решения хранения. 1. Создать 3 list'a list<string> name; list<string> date;...
C++ Чтение из файла и запись в вектор вобщем програмку, которая читает из файла строки и выводит в вектор написал. Но хотелось бы изменить код так, чтобы в вектор записывалось каждое слово из файла. Например: ффф вв уу вввв И... подробнее

Показать сообщение отдельно
Yashman
1 / 3 / 0
Регистрация: 02.07.2011
Сообщений: 90

Операции с комплексными числами и перегрузка операторов << и >> - C++

20.09.2011, 20:20. Просмотров 553. Ответов 1
Метки (Все метки)

Здрасте! Пытаюсь решить задачу по написанию программы, которая производит действия с комплексными числами (если потребуется, объясню, что это за числа). В условии задачи просят произвести перегрузку операторов +, -, *, << и >>. Я в этом деле новичок, поэтому столкнулся с массой проблем. Вот мой программный код:
Заголовочный файл с классом
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// файл attach.h
class complex
{
private:
    double real;
    double imagine;
public:
    complex (double r, double i);
    complex ();
    friend complex operator+ (const complex &x, const complex &y);
    friend complex operator- (const complex &x, const complex &y);
    friend complex operator* (const complex &x, const complex &y);
    friend complex operator* (double n, const complex &x);
    friend complex operator~ (const complex &x);
    friend std::ostream & operator<< (std::ostream & os, const complex & x);
    friend std::istream & operator>> (std::istream & os, const complex & x);
}
Файл с определениями методов класса:
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
// файл file1.cpp
#include "attach.h"
#include <iostream>
using namespace std;
 
complex :: complex (double r, double i)
{
    real = r;
    imagine = i;
}
 
complex :: complex()
{
    real = imagine = 0.0;
}
 
complex operator+ (const complex &x, const complex &y)
{
        return complex (x.real + y.real, x.imagine + y.imagine);
}
 
complex operator- (const complex &x, const complex &y)
{
        return complex (x.real - y.real, x.imagine - y.imagine);
}
 
complex operator* (const complex &x, const complex &y)
{
        return complex (x.real * y.real - x.imagine * y.imagine, x.real * y.real + x.imagine * y.imagine);
}
 
complex operator* (double n, const complex &x)
{
    return complex (n * x.real, n * x.imagine);
}
 
complex operator~ (const complex &x)
{
    return complex (x.real, -x.imagine);
}
 
ostream & operator<< (ostream &os, const complex &x)
{
    os << x.real << ", " << x.imagine << "i";
    return os;
}
 
istream & operator>>(istream &is, const complex &x)
{
    is >> x.real >> x.imagine;
    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
23
24
25
26
27
28
29
// файл main.cpp
#include <iostream>
#include "attach.h"
using namespace std;
int main()
{
    complex a(3.0, 4.0);
    complex c;
    cout << "Enter a complex number (q to quit):\n";
    while (cin >> c)
    {
        cout << "real: ";
        double r;
        cin >> r;
        cout << "imaginary: ";
        double i;
        cin >> i;
        cout << "c is " << c << '\n';
        cout << "complex conjugate is " << ~c << '\n';
        cout << "a is " << a << '\n';
        cout << "a + c is " << a + c << '\n';
        cout << "a - c is " << a - c << '\n';
        cout << "a * c is " << a * c << '\n';
        cout << "2 * c is " << 2 * c << '\n';
        cout << "Enter a complex number (q to quit):\n";
    }
    cout << "Done!\n";
    return 0;
}
Думаю, опытный программист сразу подскажет, что плохо, но, если нужно, могу выложить ответ компилятора на мой код (ошибок там около 25). Очень надеюсь на помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.