Вторая лабораторная работу по предмету "Java программирование".
Постановка задачи: Разбор выражения и вычисление его значения. Выражение может содержать числа, знаки операций, скобки. В случае, если выражение записано корректно, вычислить значение, в противном случае — вывести сообщение об ошибке. Дополнительно приветствуется поддержка имен переменных и различных функций. В случае, если есть переменные, их значения нужно запросить у пользователя (для каждой из них — по одному разу).
Реализация задачи:
Для реализации задачи был создан класс Formula, содержащий:
- strFormula - исходную формулу;
- result - результат вычисления (или определенное сообщение об ошибке);
- index - текущий индекс символа обрабатываемой строки (нужен для работы методов класса);
- ch - текущий символ обрабатываемой строки (нужен для работы методов класса);
- variables - словарь используемых в формуле переменных, где ключом выступает сама переменная, а значением - ее значение.
В классе были реализованы следующие методы:
- currentCh и previousCh для перемещения по символам строки;
- setVariable для добавления новой переменной;
- setStrFormula getStrFormula для изменения исходной формулы и ее получения;
- setVariables и getVariables для получения и внесения переменных в виде словаря;
- calculateFormula и calculate для вычисления значения введенного выражения;
- checkFormula для проверки выражения на корректность;
- firstPriority для произведения операций первой очереди;
- secondPriority для произведения операций второй очереди.
Дополнительно:
- в программе реализована поддержка имен переменных и различных функций (взятие модуля, тригонометрические функции, взятие корня);
- был создан файл FormulaTest.java с юнит-тестами методов;
- были добавлены комментарии к каждому из методов;
- были созданы джава-доки;
- была проведена работа с git.