На вход подаётся csv-файл из N строк и M столбцов. Значения разделены точкой с запятой. В ячейках либо вещественные числа, либо формулы. Формулы могут содержать четыре математические операции: +, -, * и /, а также числа и/или номера ячеек, по аналогии с формулами в Excel.
Например, ячейки могут быть следующими:
- 123
- 7.55
- 3+7
- 22*3-10
- А1*20+А2/А3
Нужно прочитать указанный файл и на выходе получить новый csv-файл, где все формулы заменены на посчитанный результат. Или, если это невозможно, написать причину ошибки.
Например, если взять файл 2 на 2.
- 7;A1-1
- A1+B1;A2-1
- 7;6
- 13;12
Чтоб не писать свой Excel на коленке было принято несколько упрощений:
- Любая ячейка содержит арифметическое выражение или ссылку на арифметическое выражение. (Нет ссылок на ячейки со ссылками внутри)
- Таблица конечна в ширину. Диапазон A-Z
- На решение ушло ~10 часов.