Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal]Задача на массив


Автор: Kirimba 5.12.2010, 12:19
Многочлен степени n задан массивом своих коэффицентов.
Найти производную многочлена.

Автор: Elerond 5.12.2010, 18:39
Kirimba, а в чем заключается проблема? Вы не знаете как находить производную или совсем не знаете pascal? 

Автор: darkart 5.12.2010, 19:52
Многое можно поправить...
Код

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.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)