Модуль по турбо паскалю не меняется в файл .tpu, ошибки не выдаёт и при компилировании показывает что программа выполняется правильно.
unit Graf_01;
interface
uses Graph,Crt;
type fun=function(x:real):real; {$F+}
procedure GrafInit;
procedure Tree(a,n:integer; x,y,L,xL,yL:real);
procedure Triangle(xa,ya,xb,yb,xc,yc,n:integer);
procedure Kantor(x,y:integer;size:word);
procedure FGraf(a,b,dx:real; f:fun; maxX,maxY:integer);
implementation
procedure GrafInit;
{ инициализация графического режима }
var gd,gm,ErrorCode:integer;
begin
gd:=Detect; { выбор графического драйвера }
InitGraph(gd, gm, 'c:\case\bp\bgi');
ErrorCode:=GraphResult;
if ErrorCode <> grOk
then begin
writeln('Error_Init:',GraphErrorMsg(ErrorCode)); Halt
end
end;
procedure Tree(a,n:integer; x,y,L,xL,yL:real);
{ построение фрактального дерева }
var r:real;
begin
if (n>0) and (not keypressed)
then begin
SetColor(21-n); { установка цвета линии }
xL:=0.5*(x+xL); yL:=0.5*(y+yL); r:=a*pi/180;
x:=xL+L*cos(r); y:=yL-L*sin(r);
Line(round(x),round(y),round(xL),round(yL)); { рисует отрезок прямой}
Tree(a-30,n-1,x,y,L/2,xL,yL); {рекурсивный вызов}
Tree(a+30,n-1,x,y,L/2,xL,yL);
Tree(a-45,n-1,x,y,L/2,xL,yL);
Tree(a+45,n-1,x,y,L/2,xL,yL);
Tree(a+15,n-1,x,y,L/1.5,xL,yL);
Tree(a+30,n-1,x,y,L/1.5,xL,yL);
end
end;
procedure Triangle(xa,ya,xb,yb,xc,yc,n:integer);
{ построение треугольника Серпинского}
var xp,xq,xr,yp,yq,yr:integer;
begin
if n > 0
then begin
xp:=(xb+xc) div 2; yp:=(yb+yc) div 2;
xq:=(xa+xc) div 2; yq:=(ya+yc) div 2;
xr:=(xb+xa) div 2; yr:=(yb+ya) div 2;
Line(xp,yp,xq,yq); Line(xq,yq,xr,yr); Line(xp,yp,xr,yr);
Triangle(xa,ya,xr,yr,xq,yq,n-1);
Triangle(xb,yb,xp,yp,xr,yr,n-1);
Triangle(xc,yc,xq,yq,xp,yp,n-1);
end
end;
procedure Kantor(x,y:integer;size:word);
{ построение множества Кантора }
var s:word;
procedure SolidRec(x,y,size:integer);
begin
Rectangle(x-size,y-size,x+size,y+size); { рисует прямоугольник}
Bar(x-size+1,y-size+1,x+size-1,y+size-1); {закрашеный квадрат}
end;
begin
if size>1
then begin
s:=size div 2;
Kantor(x-size,y+size,s); Kantor(x-size,y-size,s);
Kantor(x+size,y+size,s);Kantor(x+size,y-size,s);
end;
SolidRec(x,y,size)
end;
procedure FGraf(a,b,dx:real; f:fun; maxX,maxY:integer);
const Ots=10;
procedure MaxMinF(a,b,dx:real;f:fun; var fmin,fmax:real);
var w,x:real; k,n:integer;
begin
fmin:=f(a); fmax:=f(a); n:=trunc((b-a)/dx)+1;
for k:=0 to n do begin
x:=a+k*dx; w:=f(x);
if w < fmin then fmin:=w;
if w > fmax then fmax:=w
end
end;
var fmin,fmax,mx,my,x:real; n,x0,y0,k,xg,yg:integer;
begin
{ определение начала координат }
x0:=maxX div 2; y0:=maxY div 2;
Line(Ots,y0,maxX-Ots,y0); { проведение оси Ox}
Line(x0,Ots,x0,maxY-Ots); { проведение оси Oy}
MaxMinF(a,b,dx,f,fmin,fmax); { вычисление fmin, fmax на отрезке [a,b] }
mx:=(maxX-2*Ots)/(b-a); { масштаб по оси х}
my:=(maxY-2*Ots)/(fmax-fmin); { масштаб по оси y}
MoveTo(x0+trunc(mx*a),y0-trunc(my*f(a))); {установка курсора в начало графика}
n:=trunc((b-a)/dx)+1;
for k:=0 to n do begin
x:=a+k*dx;
xg:=x0+trunc(mx*x); { графические координаты по оси x}
yg:=y0-trunc(my*f(x)); { графические координаты по оси y}
LineTo(xg,yg); { проведение кривой}
end
end;
end.
246
485
Ответы на вопрос:
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Данилкакрутой24.03.2020 02:03
-
Rabika201818.10.2022 18:43
-
1Z1D21.02.2023 22:10
-
erfsdgfRyde20.12.2021 00:51
-
gb0304196612.05.2021 18:01
-
kluk1220.12.2021 14:07
-
lddld08.07.2020 05:29
-
fufujyrfjyrfyjrff18.08.2021 23:00
-
Лера981411.11.2022 06:28
-
крыска23517.01.2021 18:35
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.