- 2j и j2 для калькулятора - одно и то же!
- функция pow() обрабатывается не как функция :)
- zeroDivisionException() для случаев, когда в ходе операций получаем значения inf или nan
- показываем вычисленные значения переменных-детей для каждого из выражений
- показываем плохих ребят (не объявленные переменные) для выражений, которые нельзя высчитать (если дело в bad-guysах)
- невероятно умный и накрученный cleanInput() с исправлений скобочных последовательностей, кол-ва точек и запятых!!!
30 января:
- уверенное решение делать проект в гите
- создан фундамент: косячный calculate() и неплохой rpn()
- колхозные операции над числами через if-elseif-else
31 января:
- максимка добавляется в GitHub и создаёт ключевую фичу проекта - return 0 в конце файла
- макс продолжает бомбить: printf("Hello World!\n"), который добавил макс, дал возможность нашему проекту выйти в свет!
- пашка показывает, что есть pull, push, commit, add, pull request и т.д. и т.п.
- изменение функции cleanNumber() на addNumber() с продвинутым функционалом
- меняем кривой calculate() на хорошую домашнюю заготовку с работающим стэком
- добавлены кучу функций: приоритета, поиска оператора и т.д.
1 февраля:
- программа начала воспринимать числа double с точкой внутри себя
- добавлена функция возвдеения в степень (оператор ^)
- наконец-таки обработали скобки (надо было раньше, кому-то было очень влом - пашке)
- отличный апгрейд функции create() до createRPN()
- вынос польской из calculate, замена calculate на calculateRPN()
- передаём вместо queue везде polish, для простоты понимания
- утончённая обработка операторов в createRPN()
- макс добавил очень удобную функцию getNumber() для получения письма из всякой грязи input'а
2 февраля:
- появились первые простейшие унарные операции (по канонам Лупановой Е.А., с помощью указателя на функцию)
- появление столь же удобной функции getSymbols(), которая и название функции вычерпнет, и название переменной, и чего ещё более...
3 февраля:
- первое разбиение программы на файлы - functions.c и functions.h для хранения всех функций вне main.c
- свитч вместо if-else ветки в precedence()
- указатели даже на операторы!
- поменяли местами функции в main.c, дабы глаз радовался!
4 февраля:
- поялвение прототипа (довольно способного) унарного минуса
- появление функции очистки input'а: удаление пробелов (для начала хватит)
- поялвение обработки pow(a,b) - оно будет косячным ещё несколько pull request'ов :(
5 февраля:
- использование во всех частях программы double complex вместо double (кое-где мы за это поплатимся - pow(-1, 1/3) - чёртова аналитическая геометрия...)
- починка pow(a,b) - представление ',' как кобминации из 3 символов: ')', '^', '('; фактическое забивание болта на отдельную обработку этой хрени
6 февраля:
- добавление переменных в наш калькулятор: variables.c и variables.h для обработки переменных
- фундамент от Паши, мега крутые фичи от Макса, косметика и финальные штришки снова от Паши
- удаление isVariable() - казалось бы, бесполезной функции (увы и ах, это не так)
- добавлены все унарные и бинарные функции в functions.h
- прокачивание типа данных Var до хранение дочерних переменных
- вводимое выражение теперь является mainExp - главным выражением, для которого будем считать все переменные
- создание RPN для каждой переменной из Data
- функция toExpression() - создание из переменной со знаком '=' выражения для вычисления польской нотации
- инициализация данных, переменных
- обработка вводимых после выражения переменных
7 февраля:
- вычисление RPN для каждой переменной из Data
- полу-красивый вывод в файл значения выражений
- дети - связанные с выражением переменные, отцы - переменные на уровень выше, от них будут зависеть дети
- изменения работы функции inData()
- обработка за O(n^2) всех переменных из Data (из-за флажка даже меньше, чем O(n^2)!)
- добавление констант
8 февраля:
- починка pow(a, b)
- функция красивого вывода чисел (пока не знали о %g)
13 февраля:
- начало исправления вводимой строки: проверка на правильную скобочную последовательность
- изменение названия главной переменной в Answer to #n expression (n = 1, 2, 3...)
- обработка выражений, которые невозможно вычислить по разным причинам
- дефайним число констант, фиксим pow() опять
- альтернативная обработка унарного минуса
14 ферваля:
- функция createExpressionName для создания красивого имени для выражения
- создание previousInp() для обработки корявых вводов
- добаляем нехватающие комментарии ко всему подряд
- calculateAllDataVariables() - вычисление всех переменных из Data (вроде норм название, и так ясно)
- убираем вообще все функции из main.c в mainMethods.c mainMethods.h для 60-строчного main'a
- дальнейшие обработки неверных скобочных последовательностей, попытки изменить input в лучшую сторону с худшей от пользователя, добиваем унарный минус