Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New changes #14

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open

New changes #14

wants to merge 2 commits into from

Conversation

artemchikk
Copy link

No description provided.

@annapirova
Copy link
Owner

Артем, посмотрела ЛР.
что хорошо:

  • нормальная реализация
  • параметризованные тесты (вы первый, кто это сделал. Здесь они уместны)

что можно улучшить:

  • в цикле, где разбиваете на лексемы, можно бы прописать переход к следующей итерации после каждого случая (continue), чтобы не проверять.
  • разбиение, строка 132 (цифры) - тут можно вызвать std::stod или аналог, чтобы сразу найти число
  • зачем перевыделяете память под лексемы и переменные? (стр 156, 166). Лишние операции.
  • Если очень хочется перевыделить массив, можно написать короче
Lexem* l1;
l1 = new Lexem[nLexem];
for (int i = 0; i < nLexem; i++)
	l1[i] = lexem[i];
delete[] lexem;
lexem = l1;

что надо добавить / переделать:

  • пропишите в свойствах проекта относительный путь к arithmetic.h
  • нужен минимальный пользовательский интерфейс (в проекте sample), чтобы можно было вводить свою строку
  • функцию проверки проще переписать как обход массива лексем. Т.е. сравнивать типы соседних лексем на "недопустимое соседство"
  • надо сделать какой-нибудь метод для проверки корректности разбиения на лексемы
  • надо сделать какой-нибудь метод для проверки корректности польской записи (например, формировать строку с польской записью)
  • мало тестов! это значит, нет гарантии, что все варианты работы программы отрабатывают. Надо добавить проверки неккорректных выражений, проверку разбиения на лексемы, проверку построения польской записи, проверку правильности вычислений. По несколько тестов каждого вида.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants