|
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}
*Указания по решению*
Необходимо промышленное качество кода. Более короткое и читаемое решение предпочтительней. Решение должно содержать тестовые примеры и код, использованные в процессе создания решения. Не забудьте откомментировать код в ключевых местах. Код должен быть устойчив к ошибкам. Задание можно выполнить на любом языке программирования.
Представьте, что это требования к первой фазе проекта. Необходимо реализовать только то, что нужно на этой фазе. Однако, известно, что планируется вторая фаза, в которой требования будут расширены следующими:
* Расширить формулы операциями над строками.
* Оптимизировать производительность для громадных таблиц.
Вам необходимо указать, какие изменения необходимо сделать для реализации второй фазы проекта.
Задание можно выполнить на любом языке программирования.
Задание взято с сайта: [https://wiki.haskell.org/Ru/Problem_K]
* Расширить формулы операциями над строками.
* Оптимизировать производительность для громадных таблиц.
Вам необходимо указать, какие изменения необходимо сделать для реализации второй фазы проекта.
Задание можно выполнить на любом языке программирования.
Задание взято с сайта: [https://wiki.haskell.org/Ru/Problem_K]