Даны длины а,в,с сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. PASCAL ABC
Нужно написать программу, используя процедуру(ы) и функцию(ы).
Пожалуйста, помогите! :)

Ответы

Ответ дал: Аноним
0
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(c))-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


Вас заинтересует