Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[Pascal] Значение k-й производной записанного по убывающим степеням многочлена в точк

64K
21 ноября 2010 года
grozglaz
1 / / 21.11.2010
Задание:
Значение k-й производной записанного по убывающим степеням многочлена в точке t0, f: сигма(R) > R, f(дельта) = 0.
Требования и рекомендации к выполнению задания:
Цитата:
1) Алгоритм решения задачи должен быть однопроходным и не должен использовать дополнительную память, пропорциональную размеру входного файла (использование массивов для хранения входной последовательности запрещено);
2) Возможны 2 варианта реализации последовательности в виде входного файла: а) файл имеет тип Text, создается с помощью стандартного текстового редактора и просматривается тоже стандартными средствами; б) файл имеет тип file of X, создается и просматривается специальной отдельной программой (или программами) генерации и просмотра;
3) Рекомендуется использовать схему вычисления индуктивной функции, в которой на каждом шаге основного цикла из входного файла читается и обрабатывается 1 элемент последовательности (в этом случае инвариант цикла и ограничивающая функция стандартны);
4) Программа должна выводить поочередно обрабатываемые элементы входного файла, а также другие (промежуточные) данные в виде, позволяющем проанализировать и понять процесс формирования окончательного результата как автору программы, так и проверяющему задание;
5) Выходные данные (включая те, что необходимы для понимания работы алгоритма) должны выводиться на экран для оперативного анализа результатов (в режиме отладки) и в выходной файл (в режиме формирования отчета) для демонстрации проверяющему работоспособности программы;
6) Требуется протестировать основные особые случаи входных данных (например, входной файл пуст или содержит лишь 1 элемент), корректную обработку последнего элемента файла, проверить, учитывается ли наличие стационарного значения индуктивной функции и т. п.


Я смог написать программу для вычисления только первой производной по схеме Горнера:

Код:
program work5;

(****************************************************************)

var { значение производной в точке t0 }
    ValueDerivative : real;
   
    { значение полинома в точке t0 }
    ValuePolinom    : real;

    { коэффициент одночлена из файла inputfile.txt }
    k               : real;

    { точка, в которой считаем значение производной n-го порядка от полинома }
    t0              : real;
   
    { Порядок производной }
    OrderDerivative : integer;
   
    { Файл с входными данными }
    InputPolinom    : text;
   
    { Файл с результатом работы программы }
    OutputPolinom   : text;

(****************************************************************)

begin
{ устанавливаем связь между файловой переменной и именем файла }
Assign( InputPolinom, 'inputfile.txt' );
Assign( OutputPolinom, 'outputfile.txt' );
{ подготовка к записи в файл }
Rewrite(OutputPolinom);
{ подготовка файла к чтению }
Reset(InputPolinom);
{ блок ввода }
Write( 'Введите порядок производной: ' );
Readln( OrderDerivative );
Write( 'Введите t0: ' );
Readln( t0 );
ValuePolinom := 0;
ValueDerivative := 0;
{ вычисляем значение полинома и производной от полинома в точке t0 }
while ( not EOF( InputPolinom )) do
begin
    { считываем значение коэффициента при одночлене из файла inputfile.txt }
    Read( InputPolinom, k );
    ValueDerivative := ValueDerivative * t0 + ValuePolinom;
    ValuePolinom := ValuePolinom * t0 + k;
end;
Writeln( 'ValueDerivative =  ', ValueDerivative );
Readln;
{ записываем полученное значение в файл outputfile.txt }
Writeln( OutputPolinom, ValuePolinom ) ;
Writeln( OutputPolinom, ValueDerivative ) ;
{ заканчиваем работу с файлами inputfile.txt outputfile.txt }
close( InputPolinom );
close( OutputPolinom );
end.


Возможно ли вообще выполнить исходное задание с такими условиями? Т.е. коэффициенты нельзя считать в массив, степень полинома неизвестна(степень не является входным данным), а алгоритм при этом должен быть однопроходным.
Направьте в правильное русло, ибо я уже остатки мозга поломал.
Может есть какая-то модификация схемы Горнера?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог