График функции
Помогите пожалуйста исправить ошибки в задачах(((((
их две.Вот первая: uses graph; function F(x:real):real; begin F:=exp(5/2*ln(abs(sqr(x)+3*sqr(x)*x)))+sqrt(x-1); end; var xn,xk,max,min,x,y,mx,my,dx:real; x0,y0,i,px,py:integer; s:string; begin x0:=0; initgraph(x0,y0,''); x0:=40;{начало экранных координат} y0:=getmaxY div 2; xn:=0.1;xk:=25;{интервал по Х} mx:=(getmaxX-80)/xk;{масштаб по Х} {найдем максимумдля масштаба по У, минимум-бесконечность} max:=F(xn); x:=xn; while x<=xk do begin x:=x+0.01; if F(x)>max then max:=F(x) end; my:=(y0-40)/max;{по У} setbkcolor(15);{цвет фона} setcolor(8);{цвет линий} line(0,y0,getmaxX,y0);{оси} line(x0,0,X0,getmaxY); for i:=1 to round(xk)+1 do{максимальное количество засечек в одну сторону} begin line(x0-3,y0-round(i/10*my),x0+3,y0-round(i/10*my));{засечки на оси Y} line(x0-3,y0+round(i/10*my),x0+3,y0+round(i/10*my)); line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х} str(i/10:0:1,s); {подпись оси У} outtextXY(x0-35,y0-round(i/10*my),s);{соответственно засечкам} outtextXY(x0-35,y0+round(i/10*my),'-'+s); {подпись оси Х} str(i,s); outtextXY(x0+round(i*mx),y0+10,s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0-10,10, 'Y'); setcolor(8); {график} x:=xn; dx:=0.001; while x<=xk do begin x:=x+dx; {наращиваем х} px:=x0+round(x*mx); {изменение по оси Х} y:=F(x); {график в реальных координатах} py:=y0-round(y*my);{в экранных} putpixel(px,py,8); end; readln end. ошибку выводит((( и вот вторая: uses graph; function F(x:real):real; begin F:=exp(2.8*ln(abs(18*sqr(x)-ln(x)))); end; var xn,xk,max,min,x,y,mx,my,dx:real; x0,y0,i,px,py:integer; s:string; begin writeln('vvedi interval'); readln(xk); x0:=0; initgraph(x0,y0,''); x0:=40;{начало экранных координат} y0:=getmaxY div 2; xn:=0.1; mx:=(getmaxX-80)/xk;{масштаб по Х} {найдем максимумдля масштаба по У, минимум-бесконечность} max:=F(xn); x:=xn; while x<=xk do begin x:=x+0.01; if F(x)>max then max:=F(x) end; my:=(y0-40)/max;{по У} setbkcolor(15);{цвет фона} setcolor(8);{цвет линий} line(0,y0,getmaxX,y0);{оси} line(x0,0,X0,getmaxY); for i:=1 to round(xk)+1 do{максимальное количество засечек в одну сторону} begin line(x0-3,y0-round(i/10*my),x0+3,y0-round(i/10*my));{засечки на оси Y} line(x0-3,y0+round(i/10*my),x0+3,y0+round(i/10*my)); line(x0+round(i*mx),y0-3,x0+round(i*mx),Y0+3); {засечки на оси Х} str(i/10:0:1,s); {подпись оси У} outtextXY(x0-35,y0-round(i/10*my),s);{соответственно засечкам} outtextXY(x0-35,y0+round(i/10*my),'-'+s); {подпись оси Х} str(i,s); outtextXY(x0+round(i*mx),y0+10,s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0-10,10, 'Y'); setcolor(8); {график} x:=xn; dx:=0.001; while x<=xk do begin x:=x+dx; {наращиваем х} px:=x0+round(x*mx); {изменение по оси Х} y:=F(x); {график в реальных координатах} py:=y0-round(y*my);{в экранных} putpixel(px,py,8); end; readln end. эта вроде показывает график,но мне нужно чтоб я интервал графика сама вводила,а здесь тока одну переменную могу ввести,при вводе второй ошибку показывает(((((((((((((((((( Пожалуйстааааааааааааааааа,очень надо |
Цитата:
readln(xk); Замените на readln(x0,xk); и не будет ошибки. Числа вводить через пробел. Соответственно дальше x0:=0; надо убрать. |
сделала как вы посоветовали,но график все равно строится не в заданном мной интервале(((
|
Цитата:
|
была бы очень благодарна))))я уже неделю с ними мучаюсь(((:tehnari_ru_325:
|
Вложений: 1
Цитата:
Код:
uses CRT, graph; Со второй - и не знаю, как получится со временем. |
ой,спасибо огромнооооооооое))))))))))))))))))))))))))
|
:tehnari_ru_674:
|
F:=exp(5/2*ln(abs(sqr(x)+3*sqr(x)*x)))+sqrt(x-1);
Я так понимаю, это уравнение рисует программа? А если я например хочу, сама ввести любое другое, будь то: F(x)=cos(x) или F(x)=ax^2+bx+c. и чтобы не только нарисовало, но и корни посчитала? |
Цитата:
|
Часовой пояс GMT +4, время: 20:39. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.