![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
Vipka |
![]()
Сообщение
#1
|
Гость ![]() |
Помогите составить программу для вычисления точек пересечения двух функиций.
и еще может кто нить дать ссылку где на примере показывается как составить прогу для вычилении функции с траемя перемеными. |
Dark |
![]()
Сообщение
#2
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ну, насколько я помню из математики, две функции пересекаются тогда, когда при одинаковых значениях их переменных они равны,
т.е. x^2+x+2 пересек. c x+2 тогда, когда x^2+x+2=x+2(к примеру не придирайтесь - взят из головы...) Код program peresek; var i: integer; begin for i:=1 to 1000 do begin if ((i*i)+i+2)=(i+2) then writeln('Пересечение! х= ',i); end; end. Ну и соответственно для функции с двумя неизвесными - двойной цикл. Сообщение отредактировано: volvo - 17.12.2004 11:41 -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
Shadow |
![]()
Сообщение
#3
|
![]() Lonely_Raven ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 640 Пол: Мужской Репутация: ![]() ![]() ![]() |
:D а можно когда разница координат двух фн-ций
меньше чем напрмер 1 --- взвисимости какой тосности надо получить результат -------------------- Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ --------------------- RTFM - Read the fucking manual --------------------- http://www.livejournal.com/users/lonley_raven/ |
Vipka |
![]()
Сообщение
#4
|
Гость ![]() |
2 Dark что не работает.
Надо чтоб эта программа не тока считала но и рисовала график но с этим проблем меньше...........есть програама которая рисует один график: Код program gluk; uses crt,graph; var grdr,grmod,i,y0,dy1,dy,dx1,dx:integer; const ny=300;nx=400; type func= function(x:real):real; var a,b,hx, n,x,y,yg,scaly,ym,max,min:real; stma,stmi:string; const xmax=640;ymax=480;pi=3.14;t1=10;t2=2;t=3; {$F+} function f(x:real):real; begin f:=-x; end; {$F-} procedure maxmin(var max,min:real;var y0:integer; a,b,hx:real;f:func); begin x:=a; min:=f(a); max:=min; repeat x:=x+hx; y:=f(x); if y>max then max:=y else begin if y<min then min:=y; end; until x>b; writeln('max=',max); writeln('min=',min); if (max>0) and (min<0) then begin yg:=max+abs(min); scaly:=ny/yg; y0:=dy+round(scaly*max); end else begin if(max>0) and (min>=0) then begin yg:=max; y0:=ny+dy; end else begin yg:=abs(min); y0:=dy; end end; writeln('scaly=',scaly); scaly:=ny/yg; end; begin a:=0; b:=20; hx:=(b-a)/nx; dy:=round((ymax-ny)/2); dx:=round((xmax-nx)/2); dx1:=round(dx/2); dy1:=round(dy/2); maxmin(max,min, y0,a,b,hx,f); grdr:=detect; initgraph(grdr,grmod,''); setcolor(129); line(dx1,y0,xmax-dx1,y0); line(dx,ymax-dy1,dx,dy1); setcolor(5); line(xmax-dx,y0+5,xmax-dx,y0-5); line(dx+5,y0-round(max*scaly),dx-5,y0-round(max*scaly)); line(dx-5,y0-round(min*scaly),dx+5,y0-round(min*scaly)); line(xmax-dx1,y0,xmax-dx1-5,y0-5); line(xmax-dx1,y0,xmax-dx1-5,y0+5); line(dx,dy1,dx+5,dy1+5); line(dx,dy1,dx-5,dy1+5); str(max,stma); str(min,stmi); delete(stma,5,7); delete(stmi,5,7); OutTextXY (100,46 ,'y'); outtextxy (dx1+15,y0-10,'(0.0)'); outtextxy (dx-100,y0-round(max*scaly)-10,stma); outtextxy (dx-100,y0-round(min*scaly)-10,stmi); outtextxy (xmax-dx+55,y0+5,'x'); delay(2000); for i:=0 to nx do putpixel(dx+i,y0-round(scaly*f(a+i*hx)),2); readln; closegraph; end. но незнаю как сделать чтоб оба рисовала и считала точку пересечения........кто может помогите перделать если что функции f1:=-x; f2:=sqr(x+4); при -4<=x<=0 Сообщение отредактировано: volvo - 17.12.2004 11:41 |
![]() ![]() |
![]() |
Текстовая версия | 24.06.2025 14:05 |