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