Показать сообщение отдельно
Старый 02.03.2016, 12:27   #5 (permalink)
votsarskam
Member
 
Регистрация: 09.12.2015
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

вот так?
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.
votsarskam вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070