Программа считающая производную функции |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Программа считающая производную функции |
Dex |
Сообщение
#1
|
Группа: Пользователи Сообщений: 7 Репутация: 0 |
Люди я тут новичёк и поэтому сразу не убивайте.
Мне по информатики задали составить программку считающую производную функции по математики я примерно помню как это делается ,а вот чтоб в паскале написать ,мне слабо. Может кто знает где готовую достать ,или сам когда-то писал ,буду очень благодарен за любую помощь. |
anka |
Сообщение
#2
|
Гость |
переделай чуть чуть, она больше делает чем надо=)
Код program task3(input,output); var x,xn,xk,dx,h,hv:real; k:integer; function f(x:real):real; begin f:=x*x*x-3*x;end; function fpr1(x:real):real; begin fpr1:=3*x*x-3;end; function fpr2(x:real):real; begin fpr2:=3*x*x-3; end; function fprL(x,h:real):real; begin fprL:=(f(x+h)-f(x))/h; end; function fprR(x,h:real):real; begin fprR:=(f(x)-f(x-h)); end; function y4(x:real):real; begin y4:=(fprL(x,h)+fprR(x,h))/2; end; function fpr(x:real):real; begin if x>=0 then fpr:=fpr1(x) else fpr:=fpr2(x); end; procedure prmax(y6,y7,x:real;var max,xmax,ymax:real); begin if max<=y6 then begin max:=y6; xmax:=x; ymax:=f(x);end; if max<=y7 then begin max:=y7; xmax:=x; ymax:=f(x);end; end; procedure main(xn,xk,dx,h:real); var i:integer; y,max,xmax,ymax,y5,y6,y7:real; begin writeln('pri h= ',h:5:5); i:=0;x:=xn; max:=abs(fprL(xn,h)-fpr(xn)); xmax:=xn; ymax:=f(x); writeln(' x y y1=f`L y2=f`R y3=f` y4=(f`L+f`R)/2 |y4-y3| |y1-y3| |y2-y3|'); while(i<100) and (x<=xk+dx/2) do begin y5:=abs(y4(x)-fpr(x)); y6:=abs(fprL(x,h)-fpr(x)); y7:=abs(fprR(x,h)-fpr(x)); writeln(' ',x:2:1,' ',f(x):1:2,' ',fprL(x,h):1:2,' ',fprR(x,h):1:2,' ',fpr(x):1:2,y4(x):1:2,y5:1:2,y6:1:2,y7:1:2); prmax(y6,y7,x,max,xmax,ymax); x:=x+dx; i:=i+1; end; writeln('maksimalnoe otklonenie=',max:5:2,'pri x=',xmax:5:2,'y=', ymax:5:2); end; begin write('Vvedite xn,xk,dx,h'); readln(xn,xk,dx,hv); k:=1; repeat case k of 1:begin h:=dx/10; k:=k+1; main(xn,xk,dx,h) end; 2:begin h:=dx/100; k:=k+1; main(xn,xk,dx,h); end; 3:begin h:=hv; k:=k+1; main(xn,xk,dx,h); end; end; until k>3; readln; end. |
Текстовая версия | 28.04.2024 0:49 |