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

Перегрузка операторов на примере класса комплексных чисел(-) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В массиве найти сумму элементов http://www.cyberforum.ru/cpp-beginners/thread533433.html
помогите найти ошибку#include<conio.h> #include<iostream.h> #include<stdlib.h> void main() {randomize(); int i,n; float a,s1=0,s2=0,n1=-1,n2=-1; cout<<'' n : "; cin>>n; for ( i=0; i<n; i++)
C++ Массив с указателями. Максимальный по модулю элемент массива. Помогите написать функцию, но нужно использовать только указатели В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. Максимальный по модулю элемент массива; 2. Сумму элементов массива, расположенных между первым и вторым положительными элементами. Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. http://www.cyberforum.ru/cpp-beginners/thread533393.html
C++ Обработка символьных строк - игра города
помогите написать программу к задаче: Упорядочить список городов согласно правилам игры в города (последняя буква названия города д.б. первой буквой следующего). Сформировать упорядоченный массив, исключив из него "неупорядоченные" названия. Название первого в игре города в вводить с клавиатуры. Добавлено через 29 минут пробывал сам написать #include "stdafx.h" #include <iostream>...
C++ Составить блок-схему к программе
составить блок-схему программы(самое основное)#include<stdio.h> #include<stdlib.h> #include<time.h> #include<iostream.h> #define m 7 #define n 5 using namespace std; void gen_matr(char Uch,char Pr,int Ocen) {
C++ Как объявить переменную AProperties в с++ http://www.cyberforum.ru/cpp-beginners/thread533356.html
Подскажите пожалуйста как объявить переменную AProperties в с++? procedure TForm1.FormCreate(Sender: TObject); var AProperties: TcxMRUEditProperties; begin AProperties := TcxMRUEditProperties(cxGrid1DBTableView1fio_student.GetProperties); AProperties.LookupItems.AddStrings(s); end;
C++ Число палиндром Всем привет ! Прога должна проверять является ли число палиндромом (одинаковое читается с обоих сторон). Сделать это все нужно через строки (это важно!) Делаю такой разврат #include <iostream> #include <string.h> using namespace std; string turn_str(string str) { char tmp; подробнее

Показать сообщение отдельно
Dew Drop
0 / 0 / 0
Регистрация: 21.03.2010
Сообщений: 6
29.03.2012, 11:44     Перегрузка операторов на примере класса комплексных чисел(-)
Условие: Используя перегрузку операторов создать класс для работы с комплексными числами. Операции над числами должны включать: сумма, разность, перемножение, деление, возведение в квадрат. Результаты операций выводить на экран все сразу. Вид комплексного числа выбирается произвольно.
Встречал подобные темы на этом форуме, но не очень понял, решил, что если сделаю сам, то пойму.
Пока я хочу разобраться только на примере с операцией сложения только ДВУХ комплексных чисел.
*В Си новичок, строго не судите=)
Выкладываю свое решение:
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
  
#include <iostream> 
using namespace std; 
 
class Complex { 
private: 
    double real,imagine; 
     
public: 
    Complex (double,double);
    Complex Vvod(Complex &); 
    Complex Vivod(Complex &);
    Complex operator+(Complex &);
}; 
Complex::Complex(real,imagine) 
{ 
    real=0; 
    imagine=0;
}
Complex::Vvod(Complex &) 
{   
    cout << "Vvedite real and press Enter:"; 
    cin >> z.real ; 
    cout << "Vvedite imagine and press Enter:";
    cin >> z.imagine;
    return z;
}
Complex::operator +(Complex &z); 
{ 
    z.real = real + z.real;
          z.imagine = imagine + z.image;
    return z;
}
void main() 
{ 
    Complex z1,z2; 
    z1 = Vvod(z1); 
    z2 = Vvod(z2); 
    cout << z1 + z2 ; 
}
Добавлено через 10 часов 32 минуты
Ну или разобраться с вот этой программой=))
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
 
#include <iostream.h>
#include <conio.h>
#include <math.h>
 
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() {}   // Äåñòðóêòîð
        Complex operator+(Complex &);   // ÏåðåãðóçêГ* îïåðГ*òîðГ* ñëîæåГ*ГЁГї
        Complex operator-(Complex &);   // ÏåðåãðóçêГ* îïåðГ*òîðГ* âû÷èòГ*Г*ГЁГї
        Complex operator*(Complex &);   // ÏåðåãðóçêГ* îïåðГ*òîðГ* ГіГ¬Г*îæåГ*ГЁГї
        Complex operator/(Complex &);   // ÏåðåãðóçêГ* îïåðГ*òîðГ* äåëåГ*ГЁГї
        friend ostream &operator<<(ostream &, 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 << "Vvedite real part: ";
        fi >> fp.real;
        cout << "Vvedite imagine: ";
        fi >> fp.image;
        return fi;
    }
 
void main()
{
        while(true) 
    {
        Complex c1, c2;
        cin >> c1;
        cin >> c2;
        cout << "\nc1 = " << c1;
        cout << "c2 = " << c2;
        cout << "c1 + c2 = " << (c1 + c2);
        cout << "c1 - c2 = " << (c1 - c2);
        cout << "c1 * c2 = " << (c1 * c2);
        cout << "c1 / c2 = " << (c1 / c2) << "\n \n";
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru