Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2010, 19:20   #1
Grozglaz
 
Регистрация: 20.11.2010
Сообщений: 7
Восклицание [Pascal] Значение k-й производной записанного по убывающим степеням многочлена в точке t0

Задание:
Значение 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.
Возможно ли вообще выполнить исходное задание с такими условиями? Т.е. ни коэффициенты нельзя считать в массив, степень полинома неизвеста, т.к. степень не является входным данным, а алгоритм при этом должен быть однопроходным, т.е. пробежаться по файлу и посчитать коэффициенты нельзя.
Направьте в правильное русло, ибо я уже остатки мозга поломал.

Последний раз редактировалось Stilet; 20.11.2010 в 20:00.
Grozglaz вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нахождение производной в точке Deja_vu Помощь студентам 7 30.04.2010 20:12
вычислить значение многочлена. С++ varlonec Помощь студентам 0 26.01.2010 17:55
Вычислить значение f(x)=x+lnx в заданной точке. Наталья111 Паскаль, Turbo Pascal, PascalABC.NET 6 23.12.2008 12:33
Получить значение многочлена при данном x Aleksandr Паскаль, Turbo Pascal, PascalABC.NET 7 07.03.2008 18:54