Вычисление производной функции - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Вычислить первую и вторую производную заданных функций. (в одной программе )

Решение задачи: «Вычисление производной функции»

textual
Листинг программы
//Вычисление производных
 Program dif;
 var x,dx:real;
 var y1x,y2x:real;
 Function f1(t:real):real; //первая функция 
 begin
 result:=(2-cos(t))/(3+sin(t));
 end; 
 Function f2(t:real):real; //вторая функция 
 begin
 result:=(exp(t)-exp(-t))/2;
 end; 
 Procedure f12(x:real;f: real -> real); 
 //Процедура расчета первой и второй производных функции
 var r0,r1,r2:real;
 begin 
 r0:=f(x);
 r1:=f(x-dx);
 r2:=f(x+dx);
 y1x:=(r2-r1)/2/dx;
 y2x:=(r1-2*r0+r2)/dx/dx;
 end; 
 Begin 
 dx:=0.00001; //приращение аргумента (можно менять)
 Write(' Введите x = '); 
 read(x); 
 f12(x,f1);
 Writeln(' Первая производная функции f1 = ',y1x:2:5);
 Writeln(' Вторая производная функции f1 = ',y2x:2:5);
 Writeln( );
 f12(x,f2);
 Writeln(' Первая производная функции f2 = ',y1x:2:5);
 Writeln(' Вторая производная функции f2 = ',y2x:2:5); 
 end.

Объяснение кода листинга программы

  1. Вычисление производных - название программы
  2. var x,dx:real; - объявление переменных x и dx типа real
  3. var y1x,y2x:real; - объявление переменных y1x и y2x типа real
  4. Function f1(t:real):real; - объявление функции f1, которая будет использоваться в расчетах
  5. begin - начало реализации функции f1
  6. result:=(2-cos(t))/(3+sin(t)); - формула для вычисления значения функции f1
  7. end; - конец реализации функции f1
  8. Function f2(t:real):real; - объявление функции f2, которая будет использоваться в расчетах
  9. begin - начало реализации функции f2
  10. result:=(exp(t)-exp(-t))/2; - формула для вычисления значения функции f2
  11. end; - конец реализации функции f2
  12. Procedure f12(x:real;f: real -> real); - объявление процедуры f12, которая будет использоваться для расчета первой и второй производных функции f
  13. var r0,r1,r2:real; - объявление локальных переменных r0, r1 и r2 типа real
  14. begin - начало реализации процедуры f12
  15. r0:=f(x); - присваивание значения функции f аргументу x переменной r0
  16. r1:=f(x-dx); - присваивание значения функции f аргументу (x-dx) переменной r1
  17. r2:=f(x+dx); - присваивание значения функции f аргументу (x+dx) переменной r2
  18. *y1x:=(r2-r1)/(2dx);** - вычисление первой производной функции f
  19. y2x:=(r1-2r0+r2)/(dxdx); - вычисление второй производной функции f
  20. end; - конец реализации процедуры f12
  21. Begin - начало основного блока программы
  22. dx:=0.00001; - присваивание значения приращения аргумента dx
  23. Write(' Введите x = '); - вывод приглашения для ввода значения x
  24. read(x); - считывание значения x с помощью функции read
  25. f12(x,f1); - вызов процедуры f12 с аргументами x и f1
  26. Writeln(' Первая производная функции f1 = ',y1x:2:5); - вывод значения первой производной функции f1 с точностью до 2 знаков после запятой
  27. Writeln(' Вторая производная функции f1 = ',y2x:2:5); - вывод значения второй производной функции f1 с точностью до 2 знаков после запятой
  28. Writeln( ); - вывод пустой строки для разделения вывода
  29. f12(x,f2); - вызов процедуры f12 с аргументами x и f2
  30. Writeln(' Первая производная функции f2 = ',y1x:2:5); - вывод значения первой производной функции f2 с точностью до 2 знаков после запятой
  31. Writeln(' Вторая производная функции f2 = ',y2x:2:5); - вывод значения второй производной функции f2 с точностью до 2 знаков после запятой
  32. end. - конец программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы