Може не дуже раціонально, зате працює.
program khtd;
uses crt;
var a:array[1..3] of integer;
i,j,x, max, min, m:integer;
e, p, s, h3, h2, h1: real;
begin
for i:=1 to 3 do readln(a[i]);
for i:=1 to 2 do begin
for j:=i+1 to 3 do begin
if a[i]>a[j] then begin
x:=a[i]; a[i]:=a[j]; a[j]:=x;
end;
end;
end;
max:=a[3];
m:=a[2];
min:=a[1];
e:=(max*max-m*m-min*min)/((-2)*m*min);
if e<0 then writeln ('тупокутний');
if e=0 then writeln ('прямокутний');
if e>0 then writeln ('гострокутний'); p:=(max+m+min)/2;
s:=sqrt(p*(p-max)*(p-min)*(p-m));
h3:=2*s/max;
h2:=2*s/m;
h1:=2*s/min;
writeln ('h3=', h3,' h2=', h2 ,' h1=', h1)
end.