Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Что нужно сделать?) 
:(
    Опции темы
Julia9311
Дата 16.1.2013, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 6.12.2012

Репутация: нет
Всего: нет



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;
}

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)

PM MAIL   Вверх
bsa
Дата 16.1.2013, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196




 ! 
bsa
Зачем плодишь практически одинаковые темы?

PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1003 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.