|
0 / 0 / 0
Регистрация: 09.05.2021
Сообщений: 5
|
|
квадратный корень из комплексного числа18.05.2021, 00:57. Показов 1208. Ответов 0
Метки нет (Все метки)
Всем добрый день, получил задание сделать калькулятор комплексных чисел.
удалось сделать все кроме вычисления квадратного корня, толкового на форумах и интернете ничего нет, надеюсь тут кто-нибудь поможет. вот код, с которым работаю в данный момент (основу нашел на форуме и работаю с ним) заранее спасибо)). -------------------------------------------------------------------- # include <iostream> # include <stdlib.h> # include <conio.h> #include <cmath> using namespace std; struct complex { // struct- композитный тип данных, инкапсулирует без сокрытия набор значений различных типов double a, b; }; class Tcomplex; class Complex { complex comp; public: Complex(double x = 0, double y = 0, double z = 0) { comp.a = x; //действительная часть comp.b = y; // мнимая часть } Complex operator +(const Complex& c); //operator - что-то вроде функции x=ss+z Complex operator *(const Complex& c); Complex operator -(const Complex& c); Complex operator /(const Complex& c); Tcomplex sqrt(const Tcomplex& c); Complex Read();// void Display();// }; Complex Complex::operator +(const Complex& c) {//СЛОЖЕНИЕ Complex d; d.comp.a = comp.a + c.comp.a; d.comp.b = comp.b + c.comp.b; return d; } Complex Complex::operator *(const Complex& c) {//УМНОЖЕНИЕ Complex t; t.comp.a = comp.a * c.comp.a - comp.b * c.comp.b; t.comp.b = comp.a * c.comp.b + comp.b * c.comp.a; return t; } Complex Complex::operator /(const Complex& c) {//ДЕЛЕНИЕ Complex t; t.comp.a = (comp.a * c.comp.a + comp.b * c.comp.b) / (comp.a * comp.a + comp.b * comp.b); t.comp.b = (comp.b * c.comp.a - comp.a * c.comp.b) / (comp.a * comp.a + comp.b * comp.b); return t; } Complex Complex::operator -(const Complex& c) { //ВЫЧИТАНИЕ Complex y; y.comp.a = comp.a - c.comp.a; y.comp.b = comp.b - c.comp.b; return y; return Complex(); } Complex complex:: operator sqrt(const Complex& c) { // //////ВОТ ЗДЕСЬ МНЕ НУЖНА ПОМОЩЬ/////// complex t; t.comp.a = sqrt(comp.a * c.comp.a + comp.b * c.comp.b); return t; } void Complex:: Display() { if (comp.b >= 0) cout << comp.a << "+" << comp.b << "i\n"; else cout << comp.a << comp.b << "i\n"; } Complex Complex::Read() { double x, y; cout << "Действительнвая часть: "; cin >> x; cout << "Мнимая часть: "; cin >> y; Complex A = Complex(x, y); return A; } //----------------------------------------------------------- void execute() { cout << " Задание: \n"; cout << " Реализовать калькулятор для работы с комплексными числами.\n"; cout << " Комплексное число представляются парой действительных чисел (a, b), где\n"; cout << " a — действительная часть, b — мнимая часть. \n"; } int chois() { while (true) // цикл продолжается до тех пор, пока пользователь не введет корректное значение { system("cls"); int chois_1; cout << "|||||||||Операции комплексными числами|||||||||\n"; cout << " 1 - Сложение\n"; cout << " 2 - Вычитание\n "; cout << "3 - Умножение\n"; cout << " 4 - Деление\n"; cout << " 5 - вынесение из под корня\n"; cout << " 0 - Выход\n\n"; cout << "\n Выберите действие : \n"; start: cin >> chois_1; if ((chois_1 < 0) || (chois_1 > 5)) { cout << "!!!НЕПРАВИЛЬНО ВВЕДЕНЫ ДАННЫЕ!!!\n"; cout << " Ведите заново : "; goto start; } if (cin.fail()) // если предыдущее извлечение оказалось неудачным, { cin.clear(); // то возвращаем cin в 'обычный' режим работы cin.ignore(77777, '\n'); // и удаляем значения предыдущего ввода из входного буфера } else { std::cin.ignore(77777, '\n'); // удаляем лишние значения return chois_1; } } } void choise() { switch (chois()) { case 1: { Complex a, b; cout << "Первое число:\n"; a = a.Read(); cout << "Второе число:\n"; b = b.Read(); Complex c = a + b; c.Display(); break; } case 2: { Complex a, b; cout << "Первое число:\n"; a = a.Read(); cout << "Второе число:\n"; b = b.Read(); Complex c = a - b; c.Display(); break; } case 3: { Complex a, b; cout << "Первое число:\n"; a = a.Read(); cout << "Второе число:\n"; b = b.Read(); Complex c = a * b; c.Display(); break; } case 4: { Complex a, b; cout << "Первое число:\n"; a = a.Read(); cout << "Второе число:\n"; b = b.Read(); Complex c = a / b; c.Display(); break; } case 5: { Complex a; cout << " число:\n"; a = a.Read(); Complex c = sqrt(a); c.Display(); break; } default:exit(0); } system("pause"); system("cls"); choise(); } //----------------------------------------------------------- int main() { setlocale(LC_ALL, "Russian"); execute(); cout << "\n--------------------------------------------------------------\n"; choise(); }
0
|
|
| 18.05.2021, 00:57 | |
|
Ответы с готовыми решениями:
0
Даны два числа. Если квадратный корень из второго числа меньше первого числа, то увеличить второе число в пять раз
|
| 18.05.2021, 00:57 | |
|
Помогаю со студенческими работами здесь
1
Квадратный корень введенного числа. Квадратный корень числа A по модулю N
Как извлечь квадратный корень из числа? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
|
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-динозавры, а новое поколение лёгких потоков. Откат?. . .
|