1. Да се допълнят тестовете за пресмятане на израз в обратен полски запис и за превръщане на израз в инфиксен запис в обратен полски запис.
  2. Да се реализира проверка за коректност на израз, записан в прав и обратен полски запис. Да се реализират подходящи компонентни (unit) тестове.
  3. Да се предложи и реализира алгоритъм за превръщане на израз, записан в инфиксен запис в прав полски запис. Да се реализират подходящи компонентни (unit) тестове.
  4. Да се добави поддръжка на допълнителни, избрани от вас, аритметични операции. Да се реализират подходящи компонентни (unit) тестове.
  5. Да се реализира проверка за коректност на израз, записан в инфиксен запис. Да се реализират подходящи компонентни (unit) тестове.
  6. Да се добавят още операции към синтаксиса на израза. Да се променят алгоритмите по подходящ начин. Да се реализират подходящи компонентни (unit) тестове.
  7. Да се добави възможност за извикване на математически функции в израза (sqrt(2), exp(3), sin(4)). Изфикването на функции да е с най-висок приоритет. Да се променят алгоритмите за пресмятане по подходящ начин. Да се реализират подходящи компонентни (unit) тестове.
  8. Може ли случаят за отваряща скоба да се обработи по същия начин както останалите операции? Какъв приоритет трябва да има отварящата скоба спрямо другите операции?
  9. Да се даде пример, в който някоя операция избутва повече от една други операции с по-висок или равен приоритет. Да се реализира като компонентен (unit) тест.
  10. Да се направи поточна реализация на алгоритъма на разпределителната гара (shunting yard) и алгоритъма за пресмятане на израз в обратен полски запис. Да се дефинира композиция на потоци и чрез нея да се дефинира алгоритъм за пресмятане на алгоритъм в инфиксен запис.
  11. Да се покаже как трябва да се променят алгоритмите, ако се налага да включим унарна операция: префиксна или постфиксна (например 4!). Да се реализират подходящи компонентни (unit) тестове.
  12. Да се опише синтаксис на логически израз, в който участват константи за истина и лъжа, цифри, операции за сравнения и логически операции (конюнкция, дизюнкция, отрицание). Да се реализира алгоритъм за пресмятане на стойността на логически израз. Да се реализират подходящи компонентни (unit) тестове.
  13. Да се поправи програмата за ходя на коня от лекции, така че правилно да отчита връщане назад.
  14. Да се реализира алгоритъм, който разполага n царици върху шахматна дъска nxn, така че да няма две царици, които да се бият. Да се реализира рекурсивен вариант и вариант, при който рекурсията се симулира със стек.
  15. Да се реализира алгоритъма quickSort чрез стек вместо чрез рекурсия. Да се реализират подходящи компонентни (unit) тестове.
  16. Да се реши задачата за Ханойските кули чрез стек.
  17. Да се реализира нерекурсивен алгоритъм, който търси дали в лабиринт има път между две точки.
  18. Да се реализира нерекурсивен алгоритъм, който в лабиринт намира всички пътища между две точки.
Последно модифициране: понеделник, 14 октомври 2019, 23:06