Тестовое задание к тренингу «Разработка программного обеспечения для Framework»
Калькулятор. Написать консольное приложение, выполняющее простые арифметические действия и функции.Приложение читает выражения со стандартного входного потока и выводит значение выражения в стандартный выходной поток.
Выражения могут содержать целые и дробные числа, скобки, унарные (‘+’, ‘-‘) и бинарные (‘+’, ‘-‘, ‘*’, ‘/’) операторы и функции (напр. abs(), pow() – степень). Функции могут принимать определенное число аргументов: 1 (например sin(x)), 2 (например pow(x, y) и т. д. Некоторые функции допускают любое число аргументов (напр. max(1, 2), max(1, 2, 3, 4, 5)).
Функции, которые должны быть реализованы:
abs(x) – абсолютная величина
sqrt(x) – квадратный корень
min(x, y,…), max(x, y,…) – минимум и максимум из двух или более аргументов
round(x) – округление
pow(x, y) – x в степени y
Приложение должно уметь работать с любыми функциями из списка, корректно обрабатывая неправильное использование.
Примеры:
abs(-10) * (12 + max(1,4,0))
160
12 + abs(-10, 3)
Error: incorrect number of parameters for function “abs”
12 * a(-10)
Error: unknown function “a”
12 + (max(1,4)
Error: “)” expected
12 + PI2
Error: cannot resolve symbol “PI2”
abs(-min(200, 220 - sqrt(100)))
200
Общие требования для задания:
– Классы, методы и поля должны иметь XML-комментарии (см. http://msdn. /library/default. asp? url=/library/en-us/csref/html/vcwlkxmldocumentationtutorial. asp). Ключевые моменты в реализации методов должны сопровождаться комментариями.
– Приложения должны быть ”устойчивы” к ошибкам пользователя, выдавая информативные сообщения.
– Задания должны высылаться в одном zip-файле с именем вида: <LastName>_<FirstName>.zip
– Важно: задания оцениваются не только по правильности работы приложений, но и по качеству кода, эффективности реализации, пониманию и использованию OOP.


