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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.06.2010, 01:44   #1
Rudeboy
 
Регистрация: 02.06.2010
Сообщений: 7
По умолчанию мнимая еденица C++;

Народ помагите проблемка вот в чём , компилятор наотрез отказывается вычислять sqrt(-1) , впринципе у меня програмка которая должна суммировать , умножать ,делить, отнимать комплексные значения поэтому....
ну вот в комплексных значениях есть мнимая часть которая обезательно умножается на квадтратный корень -1 , если есть идеи как "заменить" или исправить буду весьма благодарен.
Rudeboy вне форума Ответить с цитированием
Старый 04.06.2010, 02:03   #2
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Естественно отказывается, мнимая единица явно не может быть типа float (или что там возвращает sqrt). Пишите свой класс для работы с комплексными числами, перегружайте для него функции
Росли вроде умными, выросли дурнями... (c)А.Васильев
Greblin вне форума Ответить с цитированием
Старый 04.06.2010, 11:33   #3
Rudeboy
 
Регистрация: 02.06.2010
Сообщений: 7
По умолчанию

а других вариантов нету?
Rudeboy вне форума Ответить с цитированием
Старый 04.06.2010, 11:41   #4
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

В общем есть. Можете анализировать подкоренное выражение, если оно отрицательное, вычислять корень из абсолютного значения и далее учитывать, что это значение мнимое.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 04.06.2010, 11:42   #5
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

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

есть два комплексных числа 1+i, 2-3i, например. Представляешь их массивами x={1,1}, y={2,-3}. Они будут входными параметрами процедуры, выходной параметр процедуры массив z[2]

//сложение
procedure sum(x, y: array 1..2 of real, var z:array 1..2 of real)
begin
z[1]=x[1]+y[1];
z[2]=x[2]+y[2];
end;
//умножение
procedure multy(x, y: array 1..2 of real, var z:array 1..2 of real)
begin
z[1]=x[1]*y[1]-x[2]*y[2];
z[2]=x[1]*y[2]+x[2]*y[1];
end;

и т.п.
Snejnaya вне форума Ответить с цитированием
Старый 04.06.2010, 12:28   #6
Rudeboy
 
Регистрация: 02.06.2010
Сообщений: 7
По умолчанию

понятненько

Последний раз редактировалось Rudeboy; 04.06.2010 в 13:33.
Rudeboy вне форума Ответить с цитированием
Ответ


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