Многое можно поправить...
Код | program PolyDerivative;
const MAX_POLY_DIM = 10;{размерность многочлена} type TPoly = array [ 0..MAX_POLY_DIM ] of integer;{тип - многочлен, в 0 элементе - размерность}
{процедура печати полинома poly} procedure PrintPoly( var poly : TPoly ); var i : integer;{счетчик} begin if( poly[ 0 ] > 0 ) then{есть хотя бы один коэффициент} begin write( poly[ 1 ] );{печатаем первый коэффициент} for i := 2 to poly[ 0 ] do{для остальных коэффициентов} write( ' + ', poly[ i ], '*x^', i - 1 );{печатаем форматированный вывод } writeln;{переход на следующую строку} end; end;
{процедура ввода полинома poly, размерности poly[ 0 ]} procedure InputPoly( var poly : TPoly ); var i : integer;{счетчик} begin {читаем коэффициенты} for i := 1 to poly[ 0 ] do begin write( 'x^', i - 1, '=' ); readln( poly[ i ] ); end; end;
{процедура возвращает производную derivative от многочлена poly} procedure GetDerivative( var poly, derivative : TPoly ); var i : integer;{счетчик} begin derivative[ 0 ] := poly[ 0 ] - 1;{размерность многочлена производной - на 1 меньше} for i := 1 to derivative[ 0 ] do{для каждого разряда многочлена} derivative[ i ] := poly[ i + 1 ] * i;{вычисляем коэффициент (a*x^n)' = a*n*x^(n-1)} end;
var poly, derivative : TPoly;{poly - многочлен, derivative - его производная}
begin
writeln( 'Please enter poly dimension:' ); readln( poly[ 0 ] );{ввод размерности} writeln( 'Please enter poly coefficients...' ); InputPoly( poly );{ввод многочлена} writeln( 'Poly:' ); PrintPoly( poly );{печать исходного многочлена} {вычисление производной} GetDerivative( poly, derivative ); writeln( 'Derivative:' ); PrintPoly( derivative );{печать производной} end.
|
|