Программа


PROGRAM dx(input,output);
CONST MaxPower=10;  { Максимальная степень полинома }
TYPE PolinType=record  { Тип - Полином }
                 Power:0..MaxPower;  { Степень полинома }
                 Addend:array[0..MaxPower]of real { Коэффициенты (индекс - степень) }
               end;
VAR Polin:PolinType; { Полином }
    PowerDif:integer; { Кратность дифференцирования }
PROCEDURE InputPolin(var Polin:PolinType); { Процедура ввода полинома }
  Var i:0..MaxPower;  { Счетчик цикла ввода коэффициентов }
  Begin
    Write('Введите степень полинома '); { Вывод приглашения }
    ReadLn(Polin.Power); { Ввод степени полинома }
    for i:=Polin.Power downto 0 do { Цикл ввода коэффициентов полинома }
    begin
      Write('Введите коэффициент при X^',i,' '); { Вывод приглашения }
      ReadLn(Polin.Addend[i])                    { Ввод коэффициента }
    end
  End;
PROCEDURE OutputPolin(Polin:PolinType); { Процедура вывода полинома }
  Var i:0..MaxPower;  { Счетчик коэффициентов }
  Begin
    for i:=Polin.Power downto 0 do { Цикл вывода  полинома }
    begin
      if Polin.Addend[i]>=0 then Write('+');
                             { Вывод знака перед положительным коэффициентом }
      Write(Polin.Addend[i]:0:1,'x^',i:0)                  { Ввод коэффициента }
    end;
    WriteLn { Вывод конца строки }
  End;
PROCEDURE PolinDif(var Polin:PolinType;PowerDif:integer);
                                               { Процедура дифференцирования }
  Var i:integer;  { Счетчик цикла дифференцирования }
      j:0..MaxPower; { Счетчик коэффициентов полинома }
  Begin
    for i:=1 to PowerDif do { Цикл последовательного дифференцирования }
      with Polin do
      begin
        if Power>0   { Проверка степени полинома }
        then begin   { Вычисление производной функции }
               for j:=1 to Power do { Цикл пересчета коэффициентов полинома }
                 Addend[j-1]:=Addend[j]*j;  { Пересчет коэффициента }
               Power:=Power-1    { Пересчет степени полинома }
             end
        else Addend[0]:=0  { "Вычисление" производной константы }
      end
  End;
BEGIN
  WriteLn;   { Пропуск строки }
  InputPolin(Polin); { Ввод полинома }
  Write('Введите кратность дифференцирования '); { Вывод приглашения }
  ReadLn(PowerDif);               { Ввод кратности дифференцирования }
  { Вывод полинома: }
  Write(' f(x)=');
  OutputPolin(Polin);
  PolinDif(Polin,PowerDif); { Дифференцирование }
  { Вывод полинома: }
  Write('f''(x)=');
  OutputPolin(Polin);
END.

Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию