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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2022, 15:06   #1
Дмитрий20
 
Регистрация: 26.10.2022
Сообщений: 7
По умолчанию Помогите написать код С++

12. . Разработайте и протестируйте класс Complex, представляющий комплексное число в виде пары целых чисел: действительная и воображаемая части. Определите стандартный конструктор, конструктор с параметрами, операцию разделения двух комплексных чисел и метод «Распечатать число». Передачу параметра в метод разделения и передачу результата организуйте по ссылке. При разработке метода используйте переопределение операции. Данные класса описать со спецификатором private.
Дмитрий20 вне форума Ответить с цитированием
Старый 26.10.2022, 18:17   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

У комплексных чисел появилось воображение?
macomics вне форума Ответить с цитированием
Старый 27.10.2022, 02:18   #3
Пётр Седов
Форумчанин
 
Регистрация: 26.10.2022
Сообщений: 119
По умолчанию

Цитата:
Сообщение от Дмитрий20 Посмотреть сообщение
комплексное число в виде пары целых чисел
Почему целых? Там при делении могут дробные числа получиться.
Код:
#include <assert.h>
#include <iostream>

using namespace std;

class Complex {
private:
  double _real;
  double _imag;

public:
  Complex() {
    _real = 0;
    _imag = 0;
  }

  Complex(double real, double imag) {
    _real = real;
    _imag = imag;
  }

  Complex& operator/=(const Complex& c) {
    assert((c._real != 0) || (c._imag != 0));
    double d = c._real * c._real + c._imag * c._imag;
    double r = (_real * c._real + _imag * c._imag) / d;
    double i = (_imag * c._real - _real * c._imag) / d;
    _real = r;
    _imag = i;
    return *this;
  }

  void print(ostream& stream) const {
    stream << _real << " + " << _imag << " i";
  }
};

ostream& operator<<(ostream& stream, const Complex& c) {
  c.print(stream);
  return stream;
}

int main() {
  Complex c1(5, 0);
  c1 /= Complex(2, 0);
  cout << c1 << endl;

  Complex c2(0, 5);
  c2 /= Complex(0, 2);
  cout << c2 << endl;

  return 0;
}
Вывод на консоль:
Код:
2.5 + 0 i
2.5 + 0 i
Пётр Седов вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите написать код Dimka23 Общие вопросы C/C++ 2 12.02.2021 16:05
помогите написать программу 'Трёхцветная раскраска графа Петерсена' нужно написать на языке С# под консольном приложения вижуал студио lysi Фриланс 4 04.07.2017 22:58
задача под windows,помогите написать.Надо написать на Borland C++Builder 6. eddddii Помощь студентам 9 23.05.2008 17:04
Помогите написать прогу!Среди заданных целых чисел k, l, m найти пары кратных.Написать по проще чемЭесть vdv08 Паскаль, Turbo Pascal, PascalABC.NET 4 04.04.2008 16:56