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

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

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

> точки пересечения
сообщение
Сообщение #1


Гость






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

и еще может кто нить дать ссылку где на примере показывается как составить прогу для вычилении функции с траемя перемеными.
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 3)
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Ну, насколько я помню из математики, две функции пересекаются тогда, когда при одинаковых значениях их переменных они равны,
т.е. 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 -


--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


:D а можно когда разница координат двух фн-ций
меньше чем напрмер 1
---
взвисимости какой тосности надо получить результат


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 29.03.2024 5:44
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name