|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.01.2018, 22:42 | #1 |
Регистрация: 08.05.2009
Сообщений: 3
|
Логарифм комплексного числа
нужно написать процедуру, которая считала бы логарифм комплексного числа
Unit complexn; Interface type complex= record re, im: real; end; procedure Logc (b: complex; var c: complex); const c: complex= (re: 0.1; im: -1); implementation procedure LogC; begin c.re:=ln(sqrt(sqr(b.re)+sqr(b.im))) ; c.im:= arctan(b.im/b.re); end; {logC} end. Данная штука работает, но неверно. Последний раз редактировалось Danny10; 26.01.2018 в 23:16. |
26.01.2018, 23:05 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну так пиши, а здесь не решатель задач
Покажите свои наработки, конкретные вопросы и т.п. http://www.programmersforum.ru/announcement.php?f=31 Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
26.01.2018, 23:17 | #3 |
Регистрация: 08.05.2009
Сообщений: 3
|
Исправил
нужно написать процедуру, которая считала бы логарифм комплексного числа Unit complexn; Interface type complex= record re, im: real; end; procedure Logc (b: complex; var c: complex); const c: complex= (re: 0.1; im: -1); implementation procedure LogC; begin c.re:=ln(sqrt(sqr(b.re)+sqr(b.im))) ; c.im:= arctan(b.im/b.re); end; {logC} end. Данная штука работает, но неверно. |
27.01.2018, 07:34 | #4 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Код:
|
28.01.2018, 05:07 | #5 |
Регистрация: 08.05.2009
Сообщений: 3
|
ты не заметил, что сверху тоже самое написано. оно работает неверно.
возьми число -1-2i и посмотри, что твоя функция выдаст и что выдаст калькулятор, https://www.kontrolnaya-rabota.ru/s/kopleksnyie-chisla/ и плюс это должен быть паскаль |
28.01.2018, 10:00 | #6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Да, действительно поспешил, проверил только для первой четверти.
Для второй и третьей четверти нужно делать коррекцию аргумента на пи и -пи соответственно. А ещё для мнимой оси арктангенс упадет, нужно брать плюс/минус пи/2 явно. В общем, куча ветвлений в зависимости от знаков b.re и b.im |
28.01.2018, 10:15 | #7 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
главное значение должно быть в интервале (−пи,пи]. В случае ТС нужно -пи к результату мнимой части
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Использование перезагрузки операторов для комплексного числа | MAx721 | Общие вопросы C/C++ | 2 | 04.10.2015 09:02 |
C++ Builder возведение комплексного числа в целочисленную степень | mexmexmex | Помощь студентам | 3 | 04.12.2011 10:58 |
Корень из комплексного числа в С++ | Versiti | Помощь студентам | 0 | 24.10.2011 20:51 |
Как извлечь корень n-степени из комплексного числа | Natasha-pomosh | Помощь студентам | 7 | 18.01.2010 18:54 |
описание комплексного числа!!! | Medik07 | Помощь студентам | 0 | 02.11.2009 22:21 |