Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2008, 08:22   #1
ANARHIST
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 11
По умолчанию Помогите с графиком PASCAL

|(100* x^2)-(400*y^2)|=2500
ANARHIST вне форума Ответить с цитированием
Старый 03.07.2008, 08:32   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

И что не получается? График нарисовать или выделить x,y?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2008, 14:27   #3
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Когда Вы преобразуете выражение и выразите у через х, то получите 4 графика, два из которых делятся на 2 ветки, т.е. Вам надо нарисовать 6 графиков. Имея формулы для них остается только выбрать точки начала и конца каждого графика, перевести реальные координаты в координаты экрана, подобрать масштабирование по осям и все. Что должно получиться, во вложении.
Вложения
Тип файла: rar Книга1.rar (10.7 Кб, 14 просмотров)
puporev вне форума Ответить с цитированием
Старый 03.07.2008, 17:36   #4
ANARHIST
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 11
По умолчанию

он не выдаёт графика тоесть пустое окно
ANARHIST вне форума Ответить с цитированием
Старый 03.07.2008, 17:54   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
он не выдаёт графика
Код в студию )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.07.2008, 18:07   #6
ANARHIST
Пользователь
 
Регистрация: 01.07.2008
Сообщений: 11
По умолчанию

program g;
Uses Graph,crt;
const
{ OPTIONS }
shag=0.001;
lgr = -50;
pgr = 150;
zcrtX=320;
zcrty=240;
mtrX=1;
mtrY=1;
colorG=15;
colorOXY=14;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;
Var
k:byte;
x,dx,x1,x2,y:real;
mx,my,x0,y0,px,py:integer;
graphdriver,graphmode:integer;
s,path:string;
procedure Grid(X1,Y1,X2,Y2:integer;k:real);
var i:integer;
Begin
graphdriver:=detect;
graphmode:=0;
initgraph(graphdriver,graphmode,' ');
if k>=8 then
begin
i:=X1+((X2-X1) div 2);
repeat
line(i,Y1,i,Y2);
i:=i+round(k);
until i>=X2;
i:=X1+((X2-X1) div 2);
repeat
line(i,Y1,i,Y2);
i:=i-round(k);
until i<=X1;
i:=Y1+((Y2-Y1) div 2);
repeat
line(X1,i,X2,i);
i:=i+round(k);
until i>=Y2;
i:=Y1+((Y2-Y1) div 2);
repeat
line(X1,i,X2,i);
i:=i-round(k);
until i<=Y1;
end;
for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY);
for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY);

x:=lgr;
while x<=pgr do
begin
y:=(sqrt(abs(-2500+(100)*(x*x)/400)) );
if abs(y) < MaxInt then

putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg);
x:=x+shag;
end;

end;
begin
readln;
closegraph;
end.
ANARHIST вне форума Ответить с цитированием
Старый 03.07.2008, 18:54   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Поправил твой код, но рисует неизвестно что.
Код:
program g;
Uses Graph,crt;
const
{ OPTIONS }
shag=0.001;
lgr = -50;
pgr = 150;
zcrtX=320;
zcrty=240;
mtrX=1;
mtrY=1;
colorG=15;
colorOXY=14;
OXYminX=-200;
OXYmaxX=200;
OXYminY=-200;
oxymaxY=200;
Var
k:byte;
x,dx,y:real;
x1,y1,x2,y2:integer;
mx,my,x0,y0,px,py:integer;
graphdriver,graphmode:integer;
s,path:string;
procedure Grid(X1,Y1,X2,Y2:integer;k:real);
var i:integer;
Begin
graphdriver:=detect;
graphmode:=0;
initgraph(graphdriver,graphmode,' ');
if k>=8 then
    begin
      i:=X1+((X2-X1) div 2);
      repeat
      line(i,Y1,i,Y2);
      i:=i+round(k);
      until i>=X2;
      i:=X1+((X2-X1) div 2);
     repeat
     line(i,Y1,i,Y2);
     i:=i-round(k);
     until i<=X1;
     i:=Y1+((Y2-Y1) div 2);
     repeat
     line(X1,i,X2,i);
      i:=i+round(k);
     until i>=Y2;
     i:=Y1+((Y2-Y1) div 2);
     repeat
     line(X1,i,X2,i);
     i:=i-round(k);
     until i<=Y1;
  end;
  for i:=OXYminX to OXYmaxX do putpixel(zcrtX+i,zcrty,colorOXY);
  for i:=OXYminY to OXYmaxY do putpixel(zcrtX,zcrty-i,colorOXY);
  x:=lgr;
  while x<=pgr do
    begin
       y:=(sqrt(abs(-2500+(100)*(x*x)/400)) );
       if abs(y) < MaxInt then
       putpixel(zcrtx+trunc(x*mtrX),zcrty-trunc(y*mtrY),colorg);
       x:=x+shag;
    end;
end;
begin
clrscr;
Grid(X1,Y1,X2,Y2,k);
readln;
closegraph;
end.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с матрицей PASCAL ANARHIST Помощь студентам 6 03.07.2008 18:12
Помогите с заданиями в PASCAL LLIypLLIyH Помощь студентам 8 11.06.2008 11:51
проблема с графиком Алёнка2 Помощь студентам 3 25.05.2008 09:44
Помогите с программой(Pascal) And1mx Помощь студентам 3 05.04.2007 21:52