Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

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

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 11.01.2015, 00:29   #1
Djkjlbvbh
 
Регистрация: 02.04.2014
Сообщений: 6
По умолчанию комплексные числа

помогите пожалуйста написать код, у меня не получается
Комплексное число задается своим модулем и углом (например, число 10 * (Cos (π / 6) + Sin (π / 6)) задается парой (10, π / 6). Реализовать:
Сложение (вычитание) чисел
Произведение двух чисел
деление чисел
Возведение в степень (^)
Извлечения квадратного корня (sqrt ())
Djkjlbvbh вне форума   Ответить с цитированием
Старый 11.01.2015, 00:52   #2
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,437
По умолчанию

Вот смотрите - 3 способа представления комплексных чисел
Вы написали ( точнее пытались написать) тригонометрическую.
Все эти три представления можно перевести друг в друга. И надо и спользовать подходящие.

- сложение / вычитание - это только в алгебраическй
- произведение и деление - можно в любой
- возведение в степень и корень ( корень - тоже степень) - в показательной
type_Oleg вне форума   Ответить с цитированием
Старый 11.01.2015, 01:54   #3
Djkjlbvbh
 
Регистрация: 02.04.2014
Сообщений: 6
По умолчанию

а как написать на С++?
Djkjlbvbh вне форума   Ответить с цитированием
Старый 11.01.2015, 08:45   #4
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,247
По умолчанию

Цитата:
Сообщение от Djkjlbvbh Посмотреть сообщение
а как написать на С++?
Нужно было в поисковике набрать: комплексные числа c++

Вот интересная ссылка, чуть вниз прокрутите, там есть реализация класса комплексного числа: http://www.cyberforum.ru/faq/thread4...ml#post2432704

Вам нужно будет освоить, что такое класс и перезагрузка операторов
8Observer8 вне форума   Ответить с цитированием
Старый 11.01.2015, 09:36   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,947
По умолчанию

Нужно воспользоваться библиотекой complex.h.

Код:
#include<iostream.h>
#include<complex.h>
#include<stdlib>
using namespace std;
 
int main()
{
  complex<double> Z1 (3, 5);
  complex<double> Z2 (3.1, 4.2);
  double N = 2;
  cout << "Операции с комплексными числами \n\n";
  cout << "Исходные числа Z1 = " << Z1 <<"  Z2 = " << Z2 << "  N = " << N << "\n";
  cout << "\n";
  cout << "Арифметические \n";
  cout << "Сумма           = " << Z1 + Z2 << "\n";
  cout << "Разность        = " << Z1 - Z2 << "\n";
  cout << "Произведение    = " << Z1 * Z2 << "\n";
  cout << "Деление         = " << Z1 / Z2 << "\n";
  cout << "Деление 1/Z     = " << complex<double>(1) / Z2 << "\n";
  cout << "Деление 1/Z^2   = " << complex<double>(1) / pow(Z2,2) << "\n";
  cout << "Деление Z^(1/N) = " << pow(Z2, (complex<double>(1)/N)) << "\n";
  cout << "\n";
  cout << "Трансцендентные функции \n";
  cout << "Модуль                  = " << abs(Z1) << "\n";
  cout << "Квадрат модуля          = " << norm(Z1) << "\n";
  cout << "Возведение в степень    = " << pow(Z1,2) << "\n";
  cout << "Квадратный корень       = " << sqrt(Z1) << "\n";
  cout << "Экспонента              = " << exp(Z1) << "\n";
  cout << "Десятичный логарифм     = " << log10(Z1) << "\n";
  cout << "Натуральный логарифм    = " << log(Z1) << "\n";
  cout << "\n";
  cout << "Тригонометрические \n";
  cout << "Синус                   = " << sin(Z1) << "\n";
  cout << "Синус гиперболический   = " << sinh(Z1) << "\n";
  cout << "Косинус                 = " << cos(Z1) << "\n";
  cout << "Косинус гиперболический = " << cosh(Z1) << "\n";
  cout << "Тангенс                 = " << tan(Z1) << "\n";
  cout << "Тангенс гиперболический = " << tanh(Z1) << "\n";
  cout << "\n";
  cout << "Создание комплексного числа в системе полярных координат\n";
  complex<double> AL(5, 0.75);
  cout << "Исходное число = AL-" << AL << "\n";
  cout << "Амплитуда: 5.0, Фазовый угол: 0.75          = " << polar(AL) << "\n";
  cout << "Число с противоположным знаком мнимой части = " << conj(AL) << "\n";
  cout << "\n";
  system("pause");
  return 0;
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума   Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Комплексные числа Программер Михаил Общие вопросы C/C++ 7 28.11.2012 00:03
Комплексные числа в С++ Slavytich Помощь студентам 0 25.12.2010 04:34
Комплексные числа Оля_1991 Помощь студентам 1 19.09.2010 21:10
Комплексные числа shtuceron Помощь студентам 2 22.01.2010 00:47