e-olymp 9531. Комплексные числа: сложение и вычитание

Условие

Даны два комплексных числа. Найдите их сумму или разность.

Входные данные

В каждой строке задан пример на сложение или вычитание комплексных чисел. Комплексное число задается в формате $a+bi$ или $a-bi$, где $a$ целое, $b$ целое неотрицательное. Действительная и мнимая часть каждого комплексного числа по модулю не превышает $10^{9}$.

Выходные данные

Для каждого входного примера выведите ответ в отдельной строке.

Тесты

Входные данные

Выходные данные

1
2+3i + 7-4i
9-1i
2
-1-1i — -1-1i
0+0i
3 56743+876i — 1234-124i 55509+1000i
4 331+10i — 331+10i 0+0i

Код

Решение

Чтобы решить задачу создадим структуру комплексных чисел complex_number, для удобства работы с парой переменных одновременно, и функцию convert(), для того чтобы нам не пришлось повторять действия, описанные в функции, отдельно для каждого слагаемого. Внутри функции мы будем переводить строку в пару чисел то есть в структуру.

После перевода обеих введённых строк в структуру, останется только выполнить сложение или вычитание соответствующих элементов этих структур.

Ссылки

E-olymp

Ideone

Ю1.11

Задача

     Комплексное число. Заданы действительная и мнимая части комплексного числа     [latex]z=x+\imath \cdot y[/latex] .  Преобразовать его в тригонометрическую форму и напечатать в виде выражения:

[latex]z=r\cdot\left(\cos\varphi+\sin \varphi\right)[/latex] .

     Для справки:    [latex]r=\sqrt{x^{2}+y^{2}}[/latex] ;      [latex]\varphi= \text{arctg} \left(\frac{y}{x}\right)[/latex]  .

x

y

Результат

Комментарий

4

2

z = 4.47214 * (cos(0.463648) + i *sin(0.463648))

пройден

1

0

z = 1 * (cos(0) + i * sin(0))

пройден

-1

-2

z = 2.23607 * (cos(-2.03444) + i * sin(-2.03444))

пройден

0

0

no answer

пройден;

(x стоит в знаменателе и не может быть нолем)

-100

356

z = 369.778 * (cos(1.84464) + i * sin(1.84464))

пройден

1,2

5,4

  z = 5.53173 *(cos(1.35213) + i*sin(1.35213))

пройден

 Код программы:

 

В условии задачи даны все нужные формулы.

Программа вычисляет r (радиус [latex]r[/latex]) и f (угол [latex]\varphi[/latex] ) и выводит их, вставляя в формулу геометрической формы комплексного числа  (которая не меняется).

Для выполнения программы и проверки тестов можно воспользоваться следующим объектом.

Решение на Java: