Задача 9

Определить удовлетворяет ли последовательность вещественных чисел данному трехчленному рекуррентному соотношению с точностью е=0.0001.

Пусть c1, c2, c3, d - заданные числа и обозначим x1, x2, x3 - три любых соседних последовательно идущих элемента последовательности. Тогда должно выполняться неравенство

    |x1*с1 + x2*c2 + x3*c3 - d| < 0.0001

Ответ:
слово true, если указанное неравенство всегда выполнено,
слово false, если неравенство нарушается хотя бы для одной тройки последовательных элементов или если последовательность содержит менее трех членов.

В файле данных сначала записаны числа c1, c2, c3, d, а затем элементы последовательности.

Исходные данные (последовательность чисел) задаются в файле input.txt, при этом количество чисел в последовательности считается заранее неизвестным. Ответ надо вывести в указанной форме в файл output.txt.

Программа должна решать указанную задачу, последовательно читая числа из файла и вычисляя требуемый результат за один просмотр данной последовательности. При реализации алгоритма нельзя создавать ни в функции main, ни в других функциях рабочие массивы, длина которых явно или неявно зависела бы от длины исходных данных.

Программа должна содержать отдельную функцию для обработки последовательности, получающую в качестве параметров указатель на предварительно открытый файл с данными, а также, возможно, другие параметры, необходимые для решения конкретной задачи; при этом открытие и закрытие файла данных, а также вывод результата должен происходить вне этой функции, например, это можно делать в функции main.

Если программа не может корректно решить задачу (файлы не открылись, при чтении возникли ошибки, количество чисел в последовательности не позволяет корректно найти результат и т.п.), то результат не вычисляется, а функция main должна возвратить значение -1. При успешном решении задачи функция main должна возвратить 0.