Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 03.06.2022
Сообщений: 17

Структура Complex (комплексные числа)

17.03.2023, 18:45. Показов 1202. Ответов 2

Студворк — интернет-сервис помощи студентам
Структура Complex (комплексные числа).
Комплексное число — это пара действительных чисел (a,b), которая традиционно записывается как a+bi (i— знак мнимой единицы, им отмечается второй элемент пары).

Поля / свойства:
•Re— действительная часть числа (первый элемент пары), число с плавающей точкой.
•Im— мнимая часть числа (второй элемент пары), число с плавающей точкой.
•Abs— модуль числа (если число z=a+bi, то его модуль вычисляется по формуле https://www.cyberforum.ru/cgi-bin/latex.cgi?\left|z \right| = \sqrt{{a}^{2}+{b}^{2}}.

Равенство комплексных чисел определяется как равенство пар, т. е. a+bi=c+diтогда и только тогда, когда a=c и b=d.
Строковое представление — в традиционной форме, например “–2,5 + 3,45i” или “1,2 – 4i”.
Заметим, что если b=1 или b=-1, то пишут a+i или a-i соответственно, а не 1a+i или 1a-i. Если b=0, то традиционно пишут a, а не a+0i. Если же a=0, то пишут bi, а не 0+bi. Ноль (когда a=b=0) обозначается традиционно “0”.

Определить операции сложения (+) и вычитания (–) комплексных чисел по формулам
(a+bi)+(c+di)=(a+c)+(b+d)i и (a+bi)-(c+di)=(a-c)+(b-d)i

Еще не лишним будут модульные тесты

Добавлено через 7 минут
моих мозгов не хватает. Помогите!
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.03.2023, 18:45
Ответы с готовыми решениями:

Комплексные числа с динамически изменяемым интерфейсом
Привет. Как сделать перевод комплексных величин с динамически изменяэмым интерфейсом на C# ?

Комплексные числа/Координаты
Есть некие координат x и y. Как преобразовать их в комплексные и обратно?

Класс комплексные числа
Всем привет. Нужна небольшая помощь по коду: в созданных классах Trigonometric и Exponential, в методах для преобразования чисел в эти...

2
 Аватар для roach1967
983 / 463 / 233
Регистрация: 27.06.2014
Сообщений: 1,033
17.03.2023, 22:03
GoodVanj, как вариант:
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
        public struct Complex
        {
            private readonly double Re, Im;
 
            public Complex(double re, double im)
            {
                Re = re;
                Im = im;
            }
 
            public static Complex operator +(Complex a, Complex b) => new Complex(a.Re + b.Re, a.Im + b.Im); // сумма
 
            public static Complex operator +(Complex a, double b) => new Complex(a.Re + b, a.Im); // сложение с действительным числом
 
            public static Complex operator -(Complex a, Complex b) => new Complex(a.Re - b.Re, a.Im - b.Im); // разность
 
            // умножение двух комплексных чисел
            public static Complex operator *(Complex a, Complex b) => new Complex(a.Re * b.Re - a.Im * b.Im, a.Re * b.Im + a.Im * b.Re);
 
            public static Complex operator *(Complex a, double b) => new Complex(a.Re * b, a.Im * b); // умножение на простое число
 
            public static Complex operator /(Complex a, Complex b) // деление на комплексное число
            {
                double i = b.Re * b.Re + b.Im * b.Im;
                return new Complex((a.Re * b.Re + a.Im * b.Im) / i, (a.Im * b.Re - a.Re * b.Im) / i);
            }
 
            public static Complex operator /(Complex a, double b) => new Complex(a.Re / b, a.Im / b); // деление на простое число
 
            public double Mod => Math.Sqrt(Re * Re + Im * Im); // модуль (длина вектора)
 
            public double Arg => Math.Atan(Im / Re); // аргумент (угол)
 
            public override bool Equals(object c)
            {
                return c != null && GetType().Equals(c.GetType()) && (Re == ((Complex)c).Re) && (Im == ((Complex)c).Im);
            }
 
            public override int GetHashCode() => ToString().GetHashCode();
 
            public static bool operator ==(Complex a, Complex b) => a.Equals(b); // оператор _равно_
 
            public static bool operator !=(Complex a, Complex b) => !a.Equals(b); // оператор _не_равно_
 
            public override string ToString()
            {
                if (Re == 0.0 && Im == 0.0) return "0";
                if (Im == 0.0) return $"{Re}";
                if (Re == 0.0)
                {
                    if (Im == 1.0) return "i";
                    if (Im == -1.0) return "-i";
                    return $"{Im}i";
                }
                string sign = Im < 0.0 ? "- " : "+ ";
                if (Math.Abs(Im) != 1.0) sign += $"{Math.Abs(Im)}";
                return $"{Re} {sign}i";
            }
        }
Добавлено через 15 минут
Исправил вывод.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.03.2023, 22:03
Помогаю со студенческими работами здесь

Перевод из C++ в C# (комплексные числа)
#include &lt;valarray&gt; #include &lt;ios&gt; #include &lt;iostream&gt; using namespace std; class complex { public: complex(double...

Комплексные числа,операция перзагрузки
Всем привет.Нужна помощь с домашним заданием по программированию.Буду благодарен за помощь Задание Создать базовый класс...

Комплексные числа в формулах, как использовать?
Здравствуйте господа! Язык C# (VS 2015 Community) У меня есть задача написать программку расчета нескольких математических формул, в...

Перегрузка инкремента\декремента. Комплексные числа
Есть класс комплексных чисел, для него перегружаем инкремент или декремент. Если остальные перегрузки работают так как надо, то эти двое...

Комплексные числа. Библиотека <complex>
Подключил библиотеку с комплексными числами, создал массив комплексных чисел. Произвел умножение матрицу копмлексных чисел на вектор. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru