Определить существование треугольника и его тип

Задача

По длинам трех отрезков, введенных пользователем, определить возможность существования треугольника, составленного из этих отрезков. Если такой треугольник существует, то определить, является ли он разносторонним, равнобедренным или равносторонним.

Пояснение к задаче и алгоритм решения

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

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

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

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

Исходный код на языке программирования Pascal

var
    a,b,c: word;
 
begin
    write('a='); readln(a);
    write('b='); readln(b);
    write('c='); readln(c);
    if (a+b <= c) or (a+c <= b) or (b+c <= a) then
        writeln('Такой треугольник не существует.')
    else
        if (a <> b) and (a <> c) and (b <> c) then
            writeln('Это разносторонний треугольник.')
        else
            if (a = b) and (b = c) then
                writeln('Это равносторонний треугольник.')
            else
                writeln('Это равнобедренный треугольник.');
end.

Пример(ы) выполнения программы на языке Pascal

a=34
b=6
c=5
Такой треугольник не существует.

a=7
b=8
c=9
Это разносторонний треугольник.

a=6
b=6
c=4
Это равнобедренный треугольник.

a=5
b=5
c=5
Это равносторонний треугольник.

Исходный код на языке программирования C

#include <stdio.h>
 
main() {
    int a,b,c;
    scanf("%d%d%d", &a, &b, &c);
    if (a+b <= c || a+c <= b || b+c <= a)
        printf("Треугольник не существует.\n");
    else
        if (a != b && a != c && b != c)
            printf("Разносторонний\n");
        else
            if (a == b && b == c)
                printf("Равносторонний\n");
            else
                printf("Равнобедренный\n");
}

Исходный код на языке программирования Python

a = int(input("a = "))
b = int(input("b = "))
c = int(input("c = "))
 
if a + b <= c or a + c <= b or b + c <= a:
    print("Треугольник не существует")
elif a != b and a != c and b != c:
    print("Разносторонний")
elif a == b == c:
    print("Равносторонний")
else:
    print("Равнобедренный")

Исходный код на языке программирования КуМир

алг треугольник
нач
  цел a,b,c
  ввод a,b,c
  если (a+b)<=c или (a+c)<=b или (b+c)<=a то
    вывод "Треугольник не существует"
   иначе
    если (a<>b) и (a<>c) и (b<>c) то
      вывод "Разносторонний треугольник"
     иначе
      если (a=b) и (b=c) то
        вывод "Равносторонний треугольник"
       иначе
        вывод "Равнобедренный треугольник"
      все
    все
  все
кон

Пример(ы) выполнения программы на языке КуМир

12 18 14
Разносторонний треугольник

25 30 25
Равнобедренный треугольник

Исходный код на языке программирования Basic

input "a = ", a
input "b = ", b
input "c = ", c
if a+b <= c or a+c <= b or b+c <= a then
        print "Треугольник не существует."
 
else
        if a<>b and a<>c and b<>c then
                print "Разносторонний треугольник."
        else
                if a = b and a = c then
                        print "Равносторонний треугольник."
                else
                        print "Равнобедренный треугольник"
                endif
        endif
endif

Тема

Ветвления

Уровень сложности

Средний

Дата публикации