Введите три числа. Если они могут быть длинами сторон равнобедренного...

0 голосов
97 просмотров

Введите три числа. Если они могут быть длинами сторон равнобедренного остроугольного....

Ребят,подскажите пожалуйста как проверить могут ли быть стороны длинами равнобедренного остроугольного треуг. Не могу понять ,как проверить именно на остроугольный треугольник ,в геометрии 0. Помогите пожалуйста


Информатика (126 баллов) | 97 просмотров
0

три числа(длины сторон)

0

Вы не написали ни слова о программе. Вы спросили "как проверить", а это геометрия.

0

хорошо,спасибо.Посмотрю..

0

Теорема косинусов на каждом углу нацарапана

0

тригонометрией*

0

С тригонометрии плохо просто..

0

Я уже написал, что не знаю, как проверить без тригонометрии. И не вижу тут никакой проблемы.

0

спасибо,как проверить можно ли построить вообще треугольник я знаю, но как узнать остроугольный ли он...А так нельзя проверить ? if sqr(x) + sqr(y) - sqr(z) > 0 then writeln ('Остроугольный')

0

Тогда сначала проверяйте, можно ли вообще построить треугольник... сумма двух любых сторон больше третьей.

0

Без теоремы косинусов можно попробовать иные формулы, но все равно это будет тригонометрия. Не вижу смысла.

Дано ответов: 2
0 голосов
Правильный ответ

В программе необходимо последовательно выполнить несколько проверок.
1. Можно ли вообще построить треугольник с заданными сторонами?
Можно, если сумма двух любых сторон больше третьей.
2. Равнобедренный ли треугольник?
Равнобедренный, если из трех заданных сторон две имеют равную длину.
3. Остроугольный ли треугольник?
Треугольник остроугольный, если угол, заключенный между равными сторонами - острый. В самом деле, сумма углов в треугольнике равна 180 градусам, поэтому в равнобедренном треугольнике углы между основанием треугольника и прилегающими к нему равными сторонами всегда острые (если бы они были хотя бы прямыми, сумма только этих двух углов уже бы составила 180 градусов). Следовательно, достаточно чтобы угол при вершине равнобедренного треугольника был острым.
Для удобства обозначим боковые стороны a и b, а основание c. Тогда по теореме косинусов имеем:
c^2=a^2+b^2-2ab*cos(C); \ a=b; \ c^2=2a^2-2a^2*cos(C); \\ cos(C)= \frac{2a^2-c^2}{2a^2}=1- \frac{c^2}{2a^2};
Если угол острый, его косинус должен быть положительным, поэтому
image0 \to c^2<2a^2 " alt="1- \frac{c^2}{2a^2}>0 \to c^2<2a^2 " align="absmiddle" class="latex-formula">
Это и есть условие, определяющее остроугольный равнобедренный треугольник.

Ниже приведен текст программы на языке Pascal.ABC, решающей поставленную задачу.

var
  a, b, c, t: real;

begin
  Write('Введите через пробел стороны треугольника: ');
  Readln(a, b, c);
  if (a + b < c) or (a + c < b) or (b + c < a) then
    Writeln('Треугольник построить нельзя')
  else begin
    if a = c then begin t := b; b := c; c := t end
    else if b = c then begin t := a; a := c; c := t end;
    if a <> b then Writeln('Треугольник не равнобедренный')
    else
    if c * c < 2 * a * a then Writeln('Треугольник остроугольный')
    else Writeln('Треугольник не остроугольный')
  end
end.

Тестовое решение:
Введите через пробел стороны треугольника: 4 6 6
Треугольник остроугольный


(142k баллов)
0 голосов
var a, b, c, d :real;
      k:integer;
begin
   read (a, b, c);
   k:=0;if b=c then
      begin
      d:=c;
      c:=a;
      a:=d;
      end;
   if a=c then
      begin
      d:=c;
      c:=b;
      b:=d;
      end;
   if (a=b) and (a+b>c) then inc(k);
   if a+b<=c then k:=2;</em>
   if k=0 then writeln ('Треугольник не равнобедренный');
   if k=2 then writeln ('Это вообще не треугольник');
   if k=1 then    
      begin   
      d:=sqrt(a*a+b*b);   
      if d>c then writeln('остроугольный равнобедренный');
      if d
      if d=c then writeln('прямоугольный равнобедренный');
      end;
end.
P,S, Надеюсь на благодарность и лучший ответ.
(1.9k баллов)
0

выразив в pascal cos a = (b*b+c*c-a*a)/(2bc)

0

ну я как бы проверил в самом начале, перед тем как писать

0

у тебя всё работает)

0

pascal abc тоже прекрасно подойдет

0

просто скопируй и вставь кроме p.s. ...

0

вообще Delphi 7

0

турбо паскаль или же паскаль абс?

0

не разобрался как оформить эту формулу в pascal

0

Возможно,но его решение мне подходит, т.к. я так не разобрался как из трех сторон найти угол

0

сюда