Я написал программу постоения графика на заданном промежутке... Не могу, точнее не умею, сделать сжатие растяжение графика вдоль оси ОХ ("-"-сжатие, "+"-растяжение), и постраничный вывод таблицы значений...

Так основной код построения графика вот он (кое что там в коментаторных скобках эт то что я уже пробывал проэксперементировать):
Код
Procedure Graphik (Var c:char;min,max:real;S1:string);
Var DM,DG:integer;
{Mx,My:real;}
x1,y1:integer;
x,y:integer;
i:byte;
b:integer;
s:string;
{k:char;}
begin
{Mx:=1;
My:=1;
Repeat}
If min=max then ERROR (c) Else begin
DM:=detect;
DG:=0;
InitGraph (DM,DG,'G:\BP\BGI');
If GraphResult=GrOK then
begin
x1:=GetMaxX div 2;
y1:=GetMaxY div 2;
SetColor (White);
Line (0,y1,640,y1);
Line (x1,0,x1,480);
SetColor (black);
SetTextStyle (4,0,0);
Bar (0,445,310,480);
OutTextXY (10,437,S1);
b:=-1;
Str (b,s);
{Repeat
If k=#45 then a:=a*0.9;
If k=#43 then a:=a*1.1;}
SetTextStyle (2,0,0);
For i:=1 to 30 do
begin
SetColor (blue);
line (x1-20*i,y1-2,x1-20*i,y1+2);
OutTextXY (x1-20*i-5,y1+5,s);
dec(b);
Str (b,s);
end;
b:=1;
Str (b,s);
For i:=1 to 30 do
begin
line (x1+20*i,y1-2,x1+20*i,y1+2);
OutTextXY (x1+20*i,y1+5,s);
inc(b);
Str (b,s);
end;
b:=8;
str (b,s);
For i:=0 to 17 do
begin
line (x1-2,30*i,x1+2,30*i);
OutTextXY (x1+5,30*i,s);
dec (b);
str (b,s);
end;
Repeat
x:=Round(20*min)+x1;
y:=-(Round(30*min/(1-sqr(min)+0.0005)))+y1;
min:=min+0.05;
PutPixel (x,y,red);
Until min>max;
{ k:=readkey;
Until (k=#27) or (k=#43) or (k=#45);}
end Else
begin
OKHO_MAIN;
OKHO2;
GoToXY (30,1);
Write (S1);
OKHO1;
GoToXY (4,6);
TextColor (Red);
Write ('Module "GRAPH" not found.');
end;
Repeat
c:=Readkey;
Until (c=#27){ or (c=#45) or (c=#61)};
{If c=#45 then Mx:=Mx*0.7;
If c=#61 then Mx:=Mx*1.5;}
end;
{Until c=#27;}
CloseGraph;
end;
Var DM,DG:integer;
{Mx,My:real;}
x1,y1:integer;
x,y:integer;
i:byte;
b:integer;
s:string;
{k:char;}
begin
{Mx:=1;
My:=1;
Repeat}
If min=max then ERROR (c) Else begin
DM:=detect;
DG:=0;
InitGraph (DM,DG,'G:\BP\BGI');
If GraphResult=GrOK then
begin
x1:=GetMaxX div 2;
y1:=GetMaxY div 2;
SetColor (White);
Line (0,y1,640,y1);
Line (x1,0,x1,480);
SetColor (black);
SetTextStyle (4,0,0);
Bar (0,445,310,480);
OutTextXY (10,437,S1);
b:=-1;
Str (b,s);
{Repeat
If k=#45 then a:=a*0.9;
If k=#43 then a:=a*1.1;}
SetTextStyle (2,0,0);
For i:=1 to 30 do
begin
SetColor (blue);
line (x1-20*i,y1-2,x1-20*i,y1+2);
OutTextXY (x1-20*i-5,y1+5,s);
dec(b);
Str (b,s);
end;
b:=1;
Str (b,s);
For i:=1 to 30 do
begin
line (x1+20*i,y1-2,x1+20*i,y1+2);
OutTextXY (x1+20*i,y1+5,s);
inc(b);
Str (b,s);
end;
b:=8;
str (b,s);
For i:=0 to 17 do
begin
line (x1-2,30*i,x1+2,30*i);
OutTextXY (x1+5,30*i,s);
dec (b);
str (b,s);
end;
Repeat
x:=Round(20*min)+x1;
y:=-(Round(30*min/(1-sqr(min)+0.0005)))+y1;
min:=min+0.05;
PutPixel (x,y,red);
Until min>max;
{ k:=readkey;
Until (k=#27) or (k=#43) or (k=#45);}
end Else
begin
OKHO_MAIN;
OKHO2;
GoToXY (30,1);
Write (S1);
OKHO1;
GoToXY (4,6);
TextColor (Red);
Write ('Module "GRAPH" not found.');
end;
Repeat
c:=Readkey;
Until (c=#27){ or (c=#45) or (c=#61)};
{If c=#45 then Mx:=Mx*0.7;
If c=#61 then Mx:=Mx*1.5;}
end;
{Until c=#27;}
CloseGraph;
end;
Помогите, плиз... Заодно прикрепляю архив с файлами .pas и .exe... Заранее, спс...
Нажмите для просмотра прикрепленного файла