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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2008, 11:01   #1
KpeHDeJIb
Пользователь
 
Регистрация: 24.06.2008
Сообщений: 16
Восклицание Задача с графиком

Дана программа на построение графика |(x-40)^2+1000*y^2|=10000
| - это какбы модуль
листинг:
Код:
Program Graph_14_1;
uses graph;
var
k:byte;
x,dx,x1,x2,y:real;
mx,my,x0,y0,px,py:integer;
driver,mode,errcode:integer;
path:string;
procedure Grid(X1,Y1,X2,Y2:integer;k:real);
var i:integer;
begin
 if k>=8 then
  begin
   i:=X1+((X2-X1) div 2);
   setcolor(8);
   repeat
    line(i,Y1+227,i,Y2-227);
    i:=i+round(k);
   until i>=X2;
   i:=X1+((X2-X1) div 2);
   repeat
    line(i,Y1+227,i,Y2-227);
    i:=i-round(k);
   until i<=X1;
   i:=Y1+((Y2-Y1) div 2);
   repeat
    line(X1+310,i,X2-310,i);
    i:=i+round(k);
   until i>=Y2;
   i:=Y1+((Y2-Y1) div 2);
   repeat
    line(X1+310,i,X2-310,i);
    i:=i-round(k);
   until i<=Y1;
  end;
end;
begin
k:=30;
driver:=vga;
mode:=vgahi;
path:='c:\language\bp\bgi';
initgraph(driver,mode,path);
errcode:=graphResult;
Grid(0,0,639,479,K);
if errcode<>grok then
begin
writeln('Error');
readln;
halt(1);
end;
x0:=320;
y0:=240;
mx:=30;
my:=30;
setcolor(15);
line(10,y0,790,y0);
line(x0,10,x0,590);
x1:=-13;
x2:=13;
dx:=0.01;
x:=x1;
while (x<x2) do
begin
setcolor(3);
outtextxy(624,224,'X');
outtextxy(324,17,'Y');
for i=1 to 2 do
begin
outtextxy(350,256,'1');
outtextxy(380,256,'2');
outtextxy(410,256,'3');
outtextxy(440,256,'4');
outtextxy(470,256,'5');
outtextxy(500,256,'6');
outtextxy(530,256,'7');
outtextxy(560,256,'8');
outtextxy(590,256,'9');
outtextxy(620,256,'10');
outtextxy(350,256,'1');
outtextxy(380,256,'2');
outtextxy(410,256,'3');
outtextxy(440,256,'4');
outtextxy(470,256,'5');
outtextxy(500,256,'6');
outtextxy(530,256,'7');
outtextxy(560,256,'8');
outtextxy(590,256,'9');
outtextxy(620,256,'10');
setcolor(4);
y:=sqrt(10)-(x/sqrt(1000))+(40/sqrt(1000));
px:=x0+round(x*mx);
py:=y0-round(y*my);
putpixel(px,py,4);
x:=x+dx;
end;
readln;
closegraph;
end.
надо по подобию этой задачи сделать график |100-400*y^2|=2500*x
KpeHDeJIb вне форума Ответить с цитированием
Старый 23.09.2008, 11:46   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Вначале программы добавьте var i: integer;, перед readln; надо добавить ещё один end;, outtext почему-то по два раза выводятся каждый проход(их лучше за цикл while вынести). К тому же в программу числа подставили уже после вычислений на бумаге (масштаб, оси координат).

На счёт графика функции (вообще-то это больше на отображение функции смахивает), раскрываем модуль и получаем два графика
100-400*y^2=2500*x
-100+400*y^2=2500*x
Выражаем y и подставляем в программу, учитывая область определения; масштаб и координаты естественно подбираем другие.
eoln вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с графиком PASCAL ANARHIST Помощь студентам 6 03.07.2008 18:54
проблема с графиком Алёнка2 Помощь студентам 3 25.05.2008 09:44
Задача по ТП. GE076 Помощь студентам 11 07.12.2007 19:29