Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 18.09.2021
Сообщений: 52

Создать класс комплексных чисел

18.11.2021, 11:32. Показов 616. Ответов 4
Метки с++ (Все метки)

Студворк — интернет-сервис помощи студентам
Создать класс комплексных чисел. Определить перегруженную функцию,
возвращающую минимальный из двух аргументов. Функция не является
членом.
Препод сказал не хватает функции max, не понимаю что нужно дописать и куда. Хелп

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
#include <iostream>
#include <locale.h>
#include<conio.h>
using namespace std;
class Complex
{
double re, im;
public:
//конструктор преобразования
Complex() { re = 0; im = 0; }
Complex(double r, double i)
{
re = r;
im = i;
}
Complex(const Complex &ob)
{
re = ob.re;
im = ob.im;
}
bool operator<(Complex &com);
bool operator>(Complex &com);
friend istream& operator >> (istream&, Complex&);
friend ostream& operator<<(ostream&, const Complex &);
};
bool Complex::operator<(Complex &com)
{
if (this->re > com.re)
return 1;
else return 0;
}
bool Complex::operator>(Complex &com)
{
if (this->re > com.re)
return 1;
else return 0;
}
istream& operator >> (istream& in, Complex& com)
{
cout << "Введите действительную часть числа: ";
in >> com.re;
cout << "Введите мнимую часть числа: ";
in >> com.im;
return in;
}
ostream& operator << (ostream& out, const Complex& com)
{
if (com.im < 0)
out << com.re << "+i(" << com.im << ")\n";
else
out << com.re << "+i" << com.im << "\n";
return out;
}
int main()
{
double re, im;
setlocale(LC_ALL, "Russian");
Complex *com, *m;
m = new Complex[2];
com = new Complex[2];
for (int i = 0; i < 2; i++)
{
cin >> *com;
m[i] = *com;
cout << *com << endl;
}
cout << "Минимальное число: " << endl;
if (m[1] < m[0])
cout << m[0] << endl;
else
cout << m[1] << endl;
system("pause");
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.11.2021, 11:32
Ответы с готовыми решениями:

Создать класс комплексных чисел
Создать класс,объекты которого моделируют комплексные числа с перегрузкой необходимых операций.

Создать класс для реализации комплексных чисел
Класс: Комплексное число, pr принимает значение в зависимости от представления числа: pr=1, алгебраическая, 0-тригонометрическая. ...

Создать класс комплексных чисел, перегрузить операторы -= и *=
Добрый вечер. У меня есть некоторый вопрос. Надо создать класс комплексных чисел. Перегрузить операторы -= и *=. Первый получился. Но вот...

4
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
18.11.2021, 12:01
Интересная имплементация, где не получить доступ к свойствам объекта. )
Чуть-чуть причесал где посчитал нужным.
Например, конструктор копирования можно оставить default, если нужен.
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
#include <iostream>
#include <ostream>
 
class Complex {
    double re, im;
public:
 
    Complex(): re(0), im(0) {}
 
    Complex(double r, double i): re(r), im(i) {}
 
    Complex(const Complex &) = default;
    Complex &operator=(const Complex &) = default;
    ~Complex() = default;
 
    friend bool operator<(const Complex &a, const Complex &b);
 
    friend bool operator>(const Complex &a, const Complex &b);
 
    friend std::istream &operator>>(std::istream &, Complex &);
 
    friend std::ostream &operator<<(std::ostream &, const Complex &);
};
 
bool operator<(const Complex &a, const Complex &b) {
    return a.re < b.re;
}
 
bool operator>(const Complex &a, const Complex &b) {
    return a.re > b.re;
}
 
std::istream &operator>>(std::istream &in, Complex &com) {
    std::cout << "Введите действительную часть числа: ";
    in >> com.re;
    std::cout << "Введите мнимую часть числа: ";
    in >> com.im;
    return in;
}
 
std::ostream &operator<<(std::ostream &out, const Complex &com) {
    out << com.re;
    if (com.im < 0)
        out << "-i" << -com.im;
    else
        out << "+i" << com.im;
    return out;
}
 
// returns b if b < a, a otherwise
// returns a if a <= b, b otherwise
Complex &min(Complex &a, Complex &b) {
    return b < a ? b : a;
}
// const version
const Complex &min(const Complex &a, const Complex &b) {
    return b < a ? b : a;
}
 
// returns b if b > a, a otherwise
// returns a if a >= b, b otherwise
Complex &max(Complex &a, Complex &b) {
    return b > a ? b : a;
}
// const version
const Complex &max(const Complex &a, const Complex &b) {
    return b > a ? b : a;
}
 
int main() {
 
    Complex a, b;
    std::cin >> a >> b;
    std::cout << "a = " << a << ", b = " << b
            << ", min(a, b) = : " << min(a, b)
            << ", max(a, b) = : " << max(a, b)
            << std::endl;
 
}
Добавлено через 1 минуту
Цитата Сообщение от motya65100 Посмотреть сообщение
Препод сказал не хватает функции max, не понимаю что нужно дописать и куда. Хелп
Цитата Сообщение от motya65100 Посмотреть сообщение
Определить перегруженную функцию,
возвращающую минимальный из двух аргументов.
Препод явно сказал -- описать функцию.
Я только не понял, чем её надо перегружать. Перегрузил константными параметрами.
0
Заблокирован
18.11.2021, 13:57
Цитата Сообщение от lemegeton Посмотреть сообщение
Интересная имплементация, где не получить доступ к свойствам объекта. )
Руками трогать нельзя, только смотреть ))

Добавлено через 10 минут
из вики, про сравнение комплексных чисел.
В отличие от вещественных, комплексные числа нельзя сравнивать на больше/меньше; доказано, что нет способа распространить порядок, заданный для вещественных чисел, на все комплексные так, чтобы порядок был согласован с арифметическими операциями (например, чтобы из a < b вытекало a + c < b + c). Однако комплексные числа можно сравнивать на равно/не равно
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
18.11.2021, 17:49
0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
18.11.2021, 17:49
Цитата Сообщение от SmallEvil Посмотреть сообщение
В отличие от вещественных, комплексные числа нельзя сравнивать на больше/меньше
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.11.2021, 17:49
Помогаю со студенческими работами здесь

Создать класс для реализации комплексных чисел в алгебраической форме
Создать класс для реализации комплексных чисел в алгебраической форме.Используя функции с объектом в качестве аргумента,реализовать...

Создать класс для реализации комплексных чисел в алгебраической форме
Создать класс для реализации комплексных чисел в алгебраической форме. Используя перегруженные операции, реализуйте сложение, вычитание,...

Определите класс для комплексных чисел. Напишите методы для сложения, вычитания и умножения комплексных чисел
Определите класс для комплексных чисел. Напишите методы для сложения, вычитания и умножения комплексных чисел.

Создать класс для реализации комплексных чисел в алгебраической форме. Используя функции с объектом в качестве аргумента
Создать класс для реализации комплексных чисел в алгебраической форме. Используя функции с объектом в качестве аргумента, реализовать...

Класс комплексных чисел
Ребят, помогите пожалуйста написать класс комплексных чисел... Я плохо разбираюсь в объектно-ориентированном программировании, учусь,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru