Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2013, 19:37   #1
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию Что нужно сделать?

clas_s.h

Код:
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
class Complex // класс компелексных чисел
{
public:
   double re, im; // целая и мнимая части
   
// создаем конструкторы   
public:
   
   Complex() {};
   
   Complex (double r) // конструктор по умолчанию
   {
      re = r; 
      im = 0;
   }
   
   Complex (double r, double i) // конструктор по умолчанию
   {
      re = r; 
      im = i;
   } 
   
   Complex (Complex &c) // конструктор копирования
   {
      re = c.re; 
      im = c.im;
   }
   
   ~Complex() {}
   
double abs() // Модуль комплексного числа
   {
      return sqrt(re * re - im * im);
   }     
 
   Complex & operator = (Complex &c) // перегрузка оператора присваивания
   {
      re = c.re;
      im = c.im;
 
      return (*this);
   }
 
   Complex Complex::operator + (Complex &c) // перегрузка оператора сложения
   {
      Complex temp;
 
      temp.re = re + c.re;
      temp.im = im + c.re;
 
      return temp;
   }
 
   Complex Complex::operator - (Complex &c) // перегрузка оператора вычитания
   {
      Complex temp;
 
      temp.re = re - c.re;
      temp.im = im - c.re;
    
      return temp;
   }
 
   Complex Complex::operator * (Complex &c) // перегрузка оператора умножения
   {
      Complex temp;
 
      temp.re = re*c.re;
      temp.im = re*c.im;
 
      return temp;
   }
 
   Complex Complex::operator / (Complex &c) // перегрузка оператора деления
   {
      Complex temp;
 
      double r = c.re * c.re + c.im * c.im;
      temp.re = (re * c.re + im * c.im) / r;
      temp.re = (im * c.re - re * c.im) / r;
 
      return temp;
   }   
 
   friend ostream &operator<<(ostream &, Complex &); // перегрузка оператора <<
   friend istream &operator>>(istream &, Complex &); // перегрузка оператора >>
 
};
 
ostream &operator<<(ostream &out, Complex &c)
{
   out << "(" << c.re << ") + I (" << c.im << "\n";
   
   return out;
}
 
istream &operator>>(istream &in, Complex &c)
{
   in >> c.re >> c.im;
   
   return in;
}
julia9311 вне форума Ответить с цитированием
Старый 16.01.2013, 19:38   #2
julia9311
Пользователь
 
Регистрация: 23.06.2012
Сообщений: 69
По умолчанию

main.cpp

Код:
#include "clas_s.h"
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
class complexExt: public Complex
    {
    public:
        complexExt () {};   // Конструктор по умолчанию
        complexExt (double r): Complex(r) {} // Конструктор
        complexExt (double r, double i): Complex(r, i) {}    // Конструктор
        complexExt (complexExt& c): Complex((Complex&)c) {}    // Конструктор
        ~ complexExt () {}  // Деструктор
    double abs()   // Модуль комплексного числа
            {
            return sqrt(re * re - im * im);
            }
 
        complexExt operator+(complexExt &);    // Перегрузка оператора сложения
        complexExt operator-(complexExt &);    // Перегрузка оператора вычитания
        complexExt operator*(complexExt &);    // Перегрузка оператора умножения
        complexExt operator/(complexExt &);    // Перегрузка оператора деления
 
        // Перегрузка функции-оператора << для вывода класса complexExt
        friend ostream &operator<<(ostream &, complexExt &);
 
        // Перегрузка функции-оператора >> для ввода класса complexExt
        friend istream &operator>>(istream &, complexExt &);
    };
 
// Перегрузка +
complexExt complexExt::operator+( complexExt &fp1)
    {
    fp1.re = re + fp1.re;
    fp1.im = im + fp1.im;
    return fp1;
    }
 
// Перегрузка -
complexExt complexExt::operator-( complexExt &fp1)
    {
    fp1.re = re - fp1.re;
    fp1.im = im - fp1.im;
    return fp1;
    }
 
// Перегрузка *
complexExt complexExt::operator*( complexExt &fp1)
    {
    double i, j;
    i = re * fp1.re - im * fp1.im;
    j = re* fp1.im + fp1.re * im;
    fp1.re = i;
    fp1.im = j;
    return fp1;
    }
 
// Перегрузка /
complexExt complexExt::operator/( complexExt &fp1)
    {
    double k, i, j;
    k = fp1.re * fp1.re + fp1.im * fp1.im;
    i = (re * fp1.re + im * fp1.im) / k;
    j = (fp1.re * im- re * fp1.im) / k;
    fp1.re = i;
    fp1.im = j;
    return fp1;
    }


// Перегрузка оператора <<

ostream &operator<< (ostream &fo, complexExt &fp)
    {
    if (fp.im < 0) fo << "mod(cos" <<fp.re << " + sin" << fp.im << "i)" << endl;
    else fo <<  "mod(cos" <<fp.re << " + sin" << fp.im << "i)" << endl;
 
    return fo;
    }

 
// Перегрузка оператора >>
istream &operator>>(istream &fi, complexExt &fp)
    {
    cout << "Vvedite deistvitelnyu  chast: ";
    fi >> fp.re;
    cout << "Vvedite mnimyu chast: ";
    fi >> fp.im;
    return fi;
    }
 
 
int main()
{
    
 
    // Комплексные числа
    complexExt c1, c2, c3, c4, c5;
 
    // Ввод комплексных чисел
    cin >> c1;
    cin >> c2;
    cin >> c3;
    cin >> c4;
    cin >> c5;
 
    // Вывод комплексных чисел
    cout << "\nc1 = " << c1;
    cout << "c2 = " << c2;
    cout << "c3 = " << c3;
    cout << "c4 = " << c4;
    cout << "c5 = " << c5 << '\n';
 
    cout << "Modul c1: " << c1.abs() << "\n\n";
 
    // Вывод результатов операций
cout << "c1 + c2 = " << (c1 + c2);
    cout << "c1 - c3 = " << (c1 - c3);
    cout << "c1 * c4 = " << (c1 * c4);
    cout << "c1 / c5 = " << (c1 / c5);
 
    getch();
 
    return 0;
    
}
что мне нужно сделать, чтобы результат программы был такой

Введите действительную часть: 9
Введите мнимую часть: 8
Введите действительную часть: 7
Введите мнимую часть: 6
Введите действительную часть: 5
Введите мнимую часть: 4
Введите действительную часть: 3
Введите мнимую часть: 2
Введите действительную часть: 1
Введите мнимую часть: 2

c1 = mod(cos(9)+i*sin(8)
c2 = mod(cos(7)+i*sin(6)
c3 = mod(cos(5)+i*sin(4)
c4 = mod(cos(3)+i*sin(2)
c5 = mod(cos(1)+i*sin(2)

Модуль c1: 4.123106

c1 + c2 = 16+i14
c1 - c3 = 4+i4
c1 * c4 = 11+i42
c1 / c5 = 5+i(-2)

а не такой?

Введите действительную часть: 9
Введите мнимую часть: 8
Введите действительную часть: 7
Введите мнимую часть: 6
Введите действительную часть: 5
Введите мнимую часть: 4
Введите действительную часть: 3
Введите мнимую часть: 2
Введите действительную часть: 1
Введите мнимую часть: 2

c1 = mod(cos(9)+i*sin(8)
c2 = mod(cos(7)+i*sin(6)
c3 = mod(cos(5)+i*sin(4)
c4 = mod(cos(3)+i*sin(2)
c5 = mod(cos(1)+i*sin(2)

Модуль c1: 4.123106

c1 + с2 = mod(cos(9)+i*sin(8)
c1 - с3 = mod(cos(7)+i*sin(6)
c1 * c4 = mod(cos(5)+i*sin(4)
c1 / c5 = mod(cos(3)+i*sin(2)
julia9311 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните что нужно сделать бедный_студент Помощь студентам 5 16.12.2012 12:53
что нужно сделать с <td> что бы между картинками другого <table> не было разделения? alex555 HTML и CSS 22 24.04.2012 16:43
Что нужно сделать? FarSeer Помощь студентам 0 07.12.2010 18:37
Что тут сделать нужно Rastislav Паскаль, Turbo Pascal, PascalABC.NET 9 08.10.2010 19:45
Что нужно знать (сделать), что бы прога запускалась в Виндос 7 и Виста marina15056 Помощь студентам 19 24.08.2010 11:29