
Вопрос задан 10.04.2020 в 10:39.
Предмет Информатика.
Спрашивает Варежкин Антон.
Введите три числа. Если они могут быть длинами сторон равнобедренного
остроугольного....Ребят,подскажите пожалуйста как проверить могут ли быть стороны длинами равнобедренного остроугольного треуг. Не могу понять ,как проверить именно на остроугольный треугольник ,в геометрии 0. Помогите пожалуйста

Ответы на вопрос

Отвечает Иванова Валерия.
В программе необходимо последовательно выполнить несколько проверок.
1. Можно ли вообще построить треугольник с заданными сторонами?
Можно, если сумма двух любых сторон больше третьей.
2. Равнобедренный ли треугольник?
Равнобедренный, если из трех заданных сторон две имеют равную длину.
3. Остроугольный ли треугольник?
Треугольник остроугольный, если угол, заключенный между равными сторонами - острый. В самом деле, сумма углов в треугольнике равна 180 градусам, поэтому в равнобедренном треугольнике углы между основанием треугольника и прилегающими к нему равными сторонами всегда острые (если бы они были хотя бы прямыми, сумма только этих двух углов уже бы составила 180 градусов). Следовательно, достаточно чтобы угол при вершине равнобедренного треугольника был острым.
Для удобства обозначим боковые стороны a и b, а основание c. Тогда по теореме косинусов имеем:

Если угол острый, его косинус должен быть положительным, поэтому

Это и есть условие, определяющее остроугольный равнобедренный треугольник.
Ниже приведен текст программы на языке 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
Треугольник остроугольный
1. Можно ли вообще построить треугольник с заданными сторонами?
Можно, если сумма двух любых сторон больше третьей.
2. Равнобедренный ли треугольник?
Равнобедренный, если из трех заданных сторон две имеют равную длину.
3. Остроугольный ли треугольник?
Треугольник остроугольный, если угол, заключенный между равными сторонами - острый. В самом деле, сумма углов в треугольнике равна 180 градусам, поэтому в равнобедренном треугольнике углы между основанием треугольника и прилегающими к нему равными сторонами всегда острые (если бы они были хотя бы прямыми, сумма только этих двух углов уже бы составила 180 градусов). Следовательно, достаточно чтобы угол при вершине равнобедренного треугольника был острым.
Для удобства обозначим боковые стороны a и b, а основание c. Тогда по теореме косинусов имеем:
Если угол острый, его косинус должен быть положительным, поэтому
Это и есть условие, определяющее остроугольный равнобедренный треугольник.
Ниже приведен текст программы на языке 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
Треугольник остроугольный



Отвечает Мощанец Алина.
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;
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<c then writeln('тупоугольный равнобедренный');
if d=c then writeln('прямоугольный равнобедренный');
end;
end.
P,S, Надеюсь на благодарность и лучший ответ.
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;
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<c then writeln('тупоугольный равнобедренный');
if d=c then writeln('прямоугольный равнобедренный');
end;
end.
P,S, Надеюсь на благодарность и лучший ответ.


Топ вопросов за вчера в категории Информатика

Информатика 557

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili