XMaster (exe for windows 10 x64):
https://drive.google.com/drive/folders/1MsVYhE5FXIyU78sOs5jhazMu3oHizoIt?usp=sharing
Программа работает с многочленами с переменной x. Введённый многочлен приводится к стандартному виду и сохраняется. С сохранёнными многочленами можно производит различные операции (в том числе f(x); f'(x)). Написан на C++ с использованием фреймворка Qt 5.15. Особенности:
- Можно использовать, как обычный калькулятор.
- Реагирует на некорректный ввод (даже за переполнение ругает).
- На каждую ошибку есть пояснение. Аварийного завершения не должно быть.
- Программа воспринимает правильную запись многочлена (правильная запись очень вольная, т.е. можно ставить любое кол-во пробелов, опускать знаки, ставить унарные знаки). Ввод может производиться клавишой "Enter" или нажатием на кнопку "Ввод"
- Последний выделенный многочлен отмечен жёлтым. Это важно для некоторых операций. Например, в f(x) желтой должна быть функция f, а не аргумент x. Логика такая, что жёлтым должно быть отмечено то, что находится в левой части при записи.
- Есть фоновая музыка (из HoMM V). Можно включить/отключить.
- Есть звуковые эффекты (долго потрошил файлы HoMM V и искал подходящие). Можно включить/отключить.
- Есть необычный параметр "ИИ". Отвечает за озвучку комментариев к действиям пользователя. Если получить красную ошибку 8 раз подряд, то он рассердится. Можно включить/отключить. Весьма вероятно, что он вас задолбает.
- Параметры того, что можно включить/отключить, сохраняются в файле settings, т.е. настройки сохраняются для следующего запуска программы.
- Введённые многочлены сохраняются в файле data для дальнейшего использование, т.е. они не пропадут после закрытия программы.
- Программа реагирует на отсутствие файлов "data", "settings".
- Если ввести некорректные значения в "settings", то программа заметит это.
К сожалению, код весьма некрасив в некоторых местах и имеет множество сомнительных решений.
Я был молод (начало 2020-го года) и глуп и не знал ООП (однако был очень упорен и усерден).
Интересные примеры:
- 0 ^ 0 = 1
- 0 ^ (-1) - error (деление на 0)
- 2 ^ (-2) - error (вещественная арихметика)
- x(2)x = 2x^2
- -x ( +3 ) x ( + 2 ) x ( +1 ) = -6x^3
- x ^ x - error
- x ^ x / x ^ x - error
- x ^ (x - x) = 1
- 1 / 2 + 1 / 2 - error
- 2 / 2 = 1