Type num=double; { в этом месте можно сменить тип на иной } function legal(a,b,c: num): boolean; { возвращает true, если из отрезков длиной a,b,c можно построить треугольник } begin legal: =(a+b> c) and (a+c> b) and (b+c> a) end; function med(a,b,c: num): num; { возвращает длину медианы, проведенную к стороне а } begin med: =sqrt(2*(sqr(b)+sqr((a))/2 end; procedure med3(a,b,c: num; var m1,m2,m3: num); { возвращает длины m1,m2,m3 всех медиан треугольника, построенного из отрезков длиной a,b,c. при этом m1- длина медианы, проведенной к стороне а, m2- дилна медианы,проведенной к стороне b и т.д. если треугольник построить нельзя, m1=m2=m3=0 } begin if legal(a,b,c) then begin m1: =med(a,b,c); m2: =med(b,a,c); m3: =med(c,a,b) end else begin m1: =0; m2: =0; m3: =0 end end; { основная программа } var a,b,c,m1,m2,m3: num; begin write('введите длины сторон треугольника: '); readln(a,b,c); med3(a,b,c,m1,m2,m3); if m1> 0 then begin med3(m1,m2,m3,m1,m2,m3); if m1> 0 then writeln('длины медиан: ',m1,', ',m2,', ',m3) else writeln('из полученных медиан нельзя построить треугольник.') end else writeln('невозможно построить треугольник с такими сторонами.') end. тестовое решение: введите длины сторон треугольника: 14.3 18.9 8.6 длины медиан: 10.725, 14.175, 6.45
Спасибо
Популярные вопросы