вот так?
program noname;
uses Crt;
const nmax=20;
function MaxH(var s,a,b,c,da,db,dc,mn,ax,ay,bx,by,cx,cy:Real):Real;
begin
s:=abs((ax-cx)*(by-cy)-(bx-cx)*(ay-cy));
{найдем длины сторон}
da:=sqrt(sqr(ax-bx)+sqr(ay-by));
db:=sqrt(sqr(bx-cx)+sqr(by-cy));
dc:=sqrt(sqr(cx-ax)+sqr(cy-ay));
{найдем меньшую сторону, высота к ней наибольшая}
if da<db then mn:=da else mn:=db;
if dc<mn then mn:=dc;
MaxH:=s/mn;{значение высоты}
end;
var ax,ay,bx,by,cx,cy,dx,dy,ex,ey,fx,fy:real;a,b,c,d,e ,f:Real;
t:array[1..nmax] of integer;
n,i,imx:byte;
mx:real;
H:integer;
begin
ClrScr;
repeat
write('Kol-vo treug-ov do ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Vvedite koordinati vershin treug-ov:');
for i:=1 to n do
begin
writeln('treug-k ',i);
writeln('vershina 1:');
readln(ax,ay);
writeln('vershina 2:');
readln(bx,by);
writeln('vershina 3:');
readln(cx,cy);
H:=MaxH;
end;
mx:=h1;
imx:=1;
for i:=1 to n do
if h[i]>mx then
begin
mx:=h[i];
imx:=i;
end;
writeln;
write('naibolshaya visota=',mx,' v treug-ke nomer',imx);
end;
Readln;
end.