![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Dex |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 7 Репутация: ![]() ![]() ![]() |
Люди я тут новичёк и поэтому сразу не убивайте.
Мне по информатики задали составить программку считающую производную функции по математики я примерно помню как это делается ,а вот чтоб в паскале написать ,мне слабо. Может кто знает где готовую достать ,или сам когда-то писал ,буду очень благодарен за любую помощь. |
![]() ![]() |
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. |
![]() ![]() |
![]() |
Текстовая версия | 12.08.2025 7:21 |