|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (9)
View Page HistoryЭти ограничения введены для упрощения разбора выражений, поскольку разбор выражений не является основной частью проблемы. Вы можете спокойно положиться на эти ограничения. Вот грамматика содержимого ячейки:
!Снимок экрана 2016-01-11 в 17.53.57 (2).png|width=300!
{code}
expression ::= '=' term {operation term}*
term ::= cell_reference | nonnegative_number
cell_reference ::= [A-Za-z][0-9] --
operation ::= '+' | '-' | '*' | '/'
text ::= '\'' {printable_character}
{code}
expression ::= '=' term {operation term}*
term ::= cell_reference | nonnegative_number
cell_reference ::= [A-Za-z][0-9] --
operation ::= '+' | '-' | '*' | '/'
text ::= '\'' {printable_character}
{code}
*Процесс обработки *
Пример данных:
!Снимок экрана 2016-01-11 в 18.09.21 (2).png|width=300!\\
{code}
3 4
12 =C2 3 'Sample
=A1+B1*C1/5 =A2*B1 =B3-C3 'Spread
'Test =4-3 5 'Sheet
{code}
12 =C2 3 'Sample
=A1+B1*C1/5 =A2*B1 =B3-C3 'Spread
'Test =4-3 5 'Sheet
{code}
Ожидаемый вывод:
!Снимок экрана 2016-01-11 в 18.16.53 (2).png|width=300!
{code}
12 -4 3 Sample
4 -16 -4 Spread
Test 1 5 Sheet
{code}
12 -4 3 Sample
4 -16 -4 Spread
Test 1 5 Sheet
{code}
*Указания по решению*
Необходимо промышленное качество кода. Более короткое и читаемое решение предпочтительней. Решение должно содержать тестовые примеры и код, использованные в процессе создания решения. Не забудьте откомментировать код в ключевых местах. Код должен быть устойчив к ошибкам. Задание можно выполнить на любом языке программирования.
Представьте, что это требования к первой фазе проекта. Необходимо реализовать только то, что нужно на этой фазе. Однако, известно, что планируется вторая фаза, в которой требования будут расширены следующими:
* Расширить формулы операциями над строками.
* Оптимизировать производительность для громадных таблиц.
Вам необходимо указать, какие изменения необходимо сделать для реализации второй фазы проекта.
Задание можно выполнить на любом языке программирования.
* Расширить формулы операциями над строками.
* Оптимизировать производительность для громадных таблиц.
Вам необходимо указать, какие изменения необходимо сделать для реализации второй фазы проекта.
Задание можно выполнить на любом языке программирования.