Требования.

1. Калькулятор обеспечивает ввод комплексных чисел в записи:

[-]<действительная часть><разделитель>[-] <мнимая часть>

<действительная часть>::= <действительное число без знака с целой иили дробной частями>

<мнимая часть>::= <действительное число без знака с целой иили дробной частями>

<разделитель>::= ‘i*’

2. Предусмотреть настройку калькулятора на отображение результата в двух форматах: “комплексное” или “действительное” число. В формате «комплексное» результат всегда отображается в виде комплексного числа. В формате «действительное» результат отображается в виде действительного, если мнимая часть равна 0.

3. Калькулятор должен вычислять функции: Pwr - возведение в целую степень, Root - извлечение целого корня (Предусмотреть возможность вывода всех корней), Mdl - вычисление модуля комплексного числа, Cnr - вычисление аргумента комплексного числа в градусах, Cnr - вычисление аргумента комплексного числа в радианах. Предусмотреть ввод показателя степени для возведения в степень и извлечения корня. Результат вычисления указанных выше функций отображайте в отдельных компонентах. Эти операции вычисляются отдельно, а не в составе выражения.

Необходимо предусмотреть следующие варианты использования калькулятора (прецеденты):

1. Выполнение одиночных операций:
«операнд1» «операция» «операнд2» «=» «результат»

Пример. 5 + 2 = 7.

2. Выполнение операций с одним операндом:
«операнд» «операция» «=» «результат»

Пример. 5 * = 25.

3. Повторное выполнение операции:
«=» «результат» «=» «результат»

Пример. 5 + 4 = 9 = 13 = 17.

4. Выполнение операции над отображаемым значением в качестве обоих операндов:
«результат» «операция» «=» «результат»

Пример. 2 + 3 = 5 = 8 + = 16.

5. Вычисление функций:
«операнд» «Sqr» «результат»

Пример. 5 «Sqr» 25 (р = 10)

6. Вычисление выражений:
«операнд1» «функция1» «операция1» «операнд2» «функция2» «операция2» …«операндN» «операцияN» «=»«результат»

Пример.

ввод Sqr + Sqr / + =
Отображаемый результат

Отображаемое значение может сохраняться в памяти или добавляться к её содержимому.