Программа
{ Рекурсия }
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
if PowerDif>0 then
with Polin do
begin
if PowerDif>1 then PolinDif(Polin,PowerDif-1);
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.
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию