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

Работа с Complex - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Тетрис на С++ http://www.cyberforum.ru/cpp-beginners/thread1100485.html
Помогите доработать игру. запутался с _kbhit() и _getch() нужно сделать чтобы фигура постоянно падала, а во время нажатия клавиш смещалась. а у меня фигура останавливается и программа ждет ввода с клавиатуры.
C++ Составить программу , проверяющую, попадает ли введенная точка с кооординатами (x;y) в заштрихованную фигуру Составить алгоритм и программу, проверяющую, попадает ли введенная точка с координатами (x;y) в заштрихованную фигуру.Считать, что граница принадлежит фигуре. Помогите пожалуйста http://www.cyberforum.ru/cpp-beginners/thread1100476.html
Что не так с этим кодом? C++
Что не так с этим кодом? #include <stdio.h> struct Texture { unsigned int tex; Texture() { tex = 0; } };
Сумма чисел с рекурсией C++
#include <iostream> using namespace std; int sumchisel(int a,int b) { setlocale(0, "rus"); int sum = 0; for (int i = a; i <= b; i++) sum += i;
C++ Вывести информацию о продукции, выпущенной заданным цехом за последний месяц http://www.cyberforum.ru/cpp-beginners/thread1100420.html
На заводе выпускается несколько наименований деталей. Сведения о деталях включают код детали, количество выпущенных деталей, номер месяца выпуска. Вывести информацию о продукции, выпущенной заданным цехом за последний месяц В программе предусмотреть сохранение вводимых данных в файл и воз-можность чтения из ранее сохраненного файла. Результаты выводить на эк-ран и в тек
C++ Поиск минимума с помощью рекурсивной функции #include<iostream> #include <time.h> using namespace std; int mina(int ar, int n){ int min = ar; for (int i = 0; i < n; i++){ if (ar < min){ min = ar; } подробнее

Показать сообщение отдельно
cucumberbatch
 Аватар для cucumberbatch
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 2
19.02.2014, 15:17     Работа с Complex
Вроде как все правильно, компилятор даже не ругается, но почему-то значения затираются, и я не могу понять почему.
Вот сам код:
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
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() {} // Деструктор 11.
    float abs()   // Модуль комплексного числа
        {
        return (real * real - image * image);
        }
    Complex operator+(Complex &); // Перегрузка оператора сложения
    Complex operator-(Complex &); // Перегрузка оператора вычитания
    Complex operator*(Complex &); // Перегрузка оператора умножения
    Complex operator/(Complex &); // Перегрузка оператора деления
    //Complex operator^(Complex &);
    // Перегрузка функции-оператора << для вывода класса 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 << "Vvedite deistvitelnyu chast': ";  fi >> fp.real;
        cout << "Vvedite mnimyu chast': ";
        fi >> fp.image;
        return fi;
        }
 
 
int _tmain(int argc, _TCHAR* argv[])
{
Complex c1(0,0);
 
 
Complex c2;    //ввели первое число
cin>>c2;
 
 
Complex c3;    //ввели второе число
cin>>c3;
 
printf("\n");    
 
cout<<c3.abs();   //модуль
 
printf("\n");
c1 = c2 + c3;   //сложили
cout<<c1;
 
c1 = c2 - c3;
cout<<c1;
 
 
system("pause");
    return 0;
}
И почему-то после сложения значение c3 затирается и становится равно значению суммы, отчего вычитание работает уже некорректно... Почему так происходит и как от этого избавиться?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru