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

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

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

 
 Ответить  Открыть новую тему 
> точки пересечения
Vipka
сообщение 16.04.2003 14:09
Сообщение #1


Гость






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

и еще может кто нить дать ссылку где на примере показывается как составить прогу для вычилении функции с траемя перемеными.
 К началу страницы 
+ Ответить 
Dark
сообщение 20.04.2003 3:19
Сообщение #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 - 17.12.2004 11:41


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


Lonely_Raven
****

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

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


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


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

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

 



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