uses
CRT,Sus_tre,Ploshad,Perimetr;
var
f1,f2:file of trg;
z:trg;
n,i,k,kl:integer;
r1,r2:real;
begin
clrscr;
randomize;
assign(f1,'input');
rewrite(f1);
assign(f2,'output');
rewrite(f2);
write('Enter the number of triangles ');
readln(n);
for i:= 1 to n do
with z do
begin
x1:= -1.2+2.4*random;
y1:= -1.2+2.4*random;
x2:= -1.2+2.4*random;
y2:= -1.2+2.4*random;
x3:= -1.2+2.4*random;
y3:= -1.2+2.4*random;
a:=Sqrt(Sqr(x1-x2)+Sqr(y1-y2));
b:=Sqrt(Sqr(x1-x3)+Sqr(y1-y3));
c:=Sqrt(Sqr(x2-x3)+Sqr(y2-y3));
p:=perm(z);
s:=plos(z);
write(f1,z)
end;
Close(f1);
Reset(f1);
writeln('File F1 content:');
k:=0;
kl:=0;
while not eof(f1) do
begin
read(f1,z);
k:=k+1;
writeln(k:2,' A (', z.x1:5:2, ', ', z.y1:5:2, ') B (', z.x2:5:2, ', ', z.y2:5:2, ') C (', z.x3:5:2, ' ', z.y3:5:2, ')');
if k mod 20 = 0 then
begin
writeLn('Press Enter');
readln
end;
if prin(z) then
begin
kl:= kl+1;
write(f2, z);
end;
end;
close(f1);
close(f2);
if kl=0 then
writeLn('No triangulas lying inside the circle')
else
begin
repeat
write('Enter the perimeter search range r1<r2 ');
readln(r1,r2);
until r1<r2;
reset(f2);
writeln('Result of perimeter search:');
k:=0;
while not eof(f2) do
begin
read(f2,z);
if (z.p>=r1) and (z.p<=r2) then
begin
k:=k+1;
writeln(k:2,' A (', z.x1:5:2, ', ', z.y1:5:2, ') B (', z.x2:5:2, ', ', z.y2:5:2, ') C (', z.x3:5:2, ' ', z.y3:5:2, ')');
writeln(' S = ', z.s:5:2, ' P = ', z.p:5:2);
if k mod 20 = 0 then
begin
writeLn('Press Enter');
readln
end;
end;
end;
writeln('Number of triangles with perimeter inside the given range is ',k);
writeln;
repeat
write('Enter the square search range r1<r2 ');
readln(r1,r2);
until r1<r2;
reset(f2);
writeln('Result of square search:');
k:=0;
while not eof(f2) do
begin
read(f2,z);
if (z.s>=r1) and (z.s<=r2) then
begin
k:=k+1;
writeln(k:2,' A (', z.x1:5:2, ', ', z.y1:5:2, ') B (', z.x2:5:2, ', ', z.y2:5:2, ') C (', z.x3:5:2, ' ', z.y3:5:2, ')');
writeln(' S = ', z.s:5:2, ' P = ', z.p:5:2);
if k mod 20 = 0 then
begin
writeLn('Press Enter');
readln
end;
end;
end;
writeln('Number of triangles with square inside the given range is ',k);
close(f2);
end;
ReadKey
end.