Блок задач

4. Структуры данных

Темы
Сложность 3

Задача «Сэмплирование функции»

Разработать класс, производящий сэмплирование функции (вычисление дискретных значений в заданных точках и построение таблицы, содержащей пары точки-значения)

Входные данные

Текстовый файл, задающий, в каком диапазоне нужно сэмплировать функцию и с каким шагом. Пример:

0, 2, 0.5 // сэмплировать функцию в диапазоне от 0 до 20 с шагом 0.5

Файл может содержать пустые и невалидные строки. Программа должна корректно это обрабатывать.

Выходные данные

Текстовый файл, содержащий таблицы пар x и y для конкретной функции. Пример для x2:

*x* 0.0 | 0.5  | 1.0 | 1.5  | 2.0 ...
*y* 0.0 | 0.025| 1.0 | 2.25 | 4.0 ...

Примечания

Конструктор разработанного класса должен принимать ссылку на объект класса Function, у которого есть метод:

double Evaluate(double x);

Таким образом можно будет создавать сэмплирующие объекты для разных функций.

Тестирование

Для всех разработанных модулей должны быть созданы наборы unit тестов. Функций ввода/вывода нужно тестировать с помощью std::stringstream.