1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
график, корни и экстреммумы функции. проблема, надо срочно
ЛЮДИ 1и2 я сделала, осталось про экстреммумы подумать,у кого какие мысли есть киньте пожалуйста и вопрос как увеличить масштаб у графика? у меня отрезок получается [-0.5;0.5] его даже не видно
Открой PAS-файл тем же Блокнотом, например, и скопируй... Или просто присоедини сюда сам PAS-файл, не копируя (не в форме быстрого ответа, а после нажатия на кнопку "Ответить")
вот посмотрите что я делала посмотри пожайлуйста в чём ошибка
PROGRAM abc; uses crt; const d1=-2; d2=2;h=0.1; var f1,f2,f3,s,s1,y1:longint; k,n:integer; f,x,a:real; function y(x:real):real; {zadaem funkciyu} var y1:real; procedure fact(n:integer; var f:longint); var i:integer; begin f:=1; if n=0 then f:=1 else for i:=1 to n do f:=f*i; end; procedure step(a:real;n:integer;var s:longint); var i,b:integer; begin s:=1; {здесь выдаёт ошибку №202} for i:=1 to n do s:=s*b;a:=b; end; procedure step1(a,n:integer;var s:longint); var i:integer; begin s:=1; for i:=1 to n do begin if i mod 2=0 then s:=1 else s:=-1; end; end; begin {funkcii} fact(k,f1); fact((19-k),f2); fact((20-2*k),f3); step(a,10-k,s); step1(-1,k,s1); y1:=10*s1*f2*s/(f1*f3); y:=0; for k:=0 to n do y:=y(x)+y1; end;{konec funkcii} begin {osnovnaya} x:=d1; f:=0; writeln('| x | y |'); writeln('|------- |---------------|'); repeat a:=4*x*x; f:=f+y(x); writeln('|',x:7:3,' | ',f:7:3 ,' |'); x:=x+h; until x>d2; writeln('|--------------------------|'); readln; end.
до этого записывала функцию просто тупым умножением квадратов, всё работала, решила через процедуры степени и факториала и всё выдаёт ошибку. глянь пожалуйста. и ещё написала прогу для максимумов и минимумов,(ф-я получается симметричной, т.е. дожно быть 4 экстреммума, а выдаёт только 2)
program extrem; uses crt; var a,b,x1,x2,y1,y2,x,y,e:real; n,i:integer; function f(x:real):real; {zadaem funkciyu} var y1,y2,y3,y4:real; begin {f:=sqr(x)-4*x-5;} y1:=(((sqr(sqr(sqr(4*sqr(x)))))*sqr(4*sqr(x)))/2)-((sqr(sqr(sqr(4*sqr(x)))))*(4*sqr(x))*10)+((sqr(sqr(sqr(4*sqr(x)))))*85); y2:=- (((sqr(sqr(4*sqr(x))))*(sqr(4*sqr(x))*(4*sqr(x))))*400)+(((sqr(sqr(4*sqr(x))))*s
qr(4*sqr(x)))*113.75); y3:=-((sqr(sqr(4*sqr(x))))*(4*sqr(x))*2002)+((sqr(sqr(4*sqr(x))))*2145)-((sqr(4*sqr(x)))*(4*sqr(x))*1320); y4:=((sqr(4*sqr(x)))*825)-(4*sqr(x))*50+1; f:=y1+y2+y3+y4; end; procedure gold1(a,b:real;var x1,y1:real); begin x1:=0.618*a+0.382*b; y1:=f(x1); end; procedure gold2(a,b:real;var x2,y2:real); begin x2:=0.618*b+0.382*a; y2:=f(x2); end; {osnovnaya programma} begin a:=-2; b:=2; e:=0.01; gold1(a,b,x1,y1); gold2(a,b,x2,y2); n:=0; while abs(b-a)>e do begin{minimum} if y1<y2 then begin b:=x2;x2:=x1; y2:=y1; gold1(a,b,x1,y1); n:=n+1; end else begin a:=x1;x1:=x2; y1:=y2; gold2(a,b,x2,y2); end; end;{konec minimuma} x:=(a+B)/2; {for i:=1 to n do} writeln('ymin=',f(x):4 :4,' pri x=',x:4 :4); a:=-2; b:=2; e:=0.01; gold1(a,b,x1,y1); gold2(a,b,x2,y2); n:=0; while abs(b-a)>e do begin{maximum} if y1>y2 then begin { a:=x1;x1:=x2; y1:=y2; gold2(a,b,x2,y2); n:=n+1;} b:=x2;x2:=x1; y2:=y1; gold1(a,b,x1,y1); n:=n+1; end else begin {b:=x2;x2:=x1; y2:=y1; gold1(a,b,x1,y1);} a:=x1;x1:=x2; y1:=y2; gold2(a,b,x2,y2); end; end;{konec maximuma} x:=(a+B)/2; {for i:=1 to n do } writeln('ymax=',f(x):4 :4,' pri x=',x:4 :4); readln; end.