IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> точки пересечения
Vipka
сообщение 16.04.2003 14:09
Сообщение #1


Гость






Помогите составить программу для вычисления точек пересечения двух функиций.

и еще может кто нить дать ссылку где на примере показывается как составить прогу для вычилении функции с траемя перемеными.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Vipka
сообщение 21.04.2003 14:59
Сообщение #2


Гость






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
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Vipka   точки пересечения   16.04.2003 14:09
Dark   Re: точки пересечения   20.04.2003 3:19
Shadow   Re: точки пересечения   21.04.2003 4:16
Vipka   Re: точки пересечения   21.04.2003 14:59


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 12:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"