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

Задача: 

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

Дано: a, b, c – стороны предполагаемого треугольника.
Требуется сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

Алгоритм решения задачи: 

Приведено решение задачи на языке программирования Паскаль двумя способами. В одном случае, все условия проверяются в одном операторе if; во втором случае каждое условие проверяется отдельно, а программа содержит вложенные операторы if-else.

Программа на языке Паскаль: 

var a, b, c: integer;
 
begin
    write (' Длины сторон: ');
    readln (a,b,c);
 
    if (a +c) and (b +c) and (c +b) then
        writeln ('Треугольник существует.')
    else
        writeln ('Треугольник не существует.');
 
readln
end.

var a, b, c: integer;
 
begin
    write ('Длины сторон: ');
    readln (a,b,c);
 
    if a +c then
        if b +c then
            if c +b then
                writeln ('Треугольник существует.')
            else
                writeln ('Треугольник не существует.')
        else
            writeln ('Треугольник не существует.')
    else
        writeln ('Треугольник не существует.');
 
readln
end.

Комментарии

Как это можно сократить?

program FLHW_2; {Требуется сравнить длину каждого отрезка с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует. Дополнительно вывести на экран то, каким является треугольник(р\б, р\с, п\у). Дополнительно вывести на экран S= и P= треугольников.}

uses crt;
var a,b,c,t,P:integer;
    h,S:real;
begin
writeln('введите длины сторон треугольника abc ');
readln(a,b,c);
t:=0;
if (a+b>c) and (b+c>a) and (c+a>b) then
 begin
 writeln('такой треугольник существует!');
 readln;
 t:=t+1;
 end
else
 begin
 writeln('такой треугольник НЕ существует!');
 readln;
 end;
if t=1 then
 begin
 if (a=b) and (ac) then
  begin
  writeln('Треугольник равнобедренный');
  readln;
  P:=a+b+c;
  h:=sqrt(sqr(a)-sqr(c/2))
  S:=0.5*h*c;
  writeln('Периметр р\б треугольника=',P);
  readln;
  writeln('Площадь р\б треугольника=',S:0:1);
  readln;
  end;
  if (a=c) and (ab) then
   begin
   writeln('Треугольник равнобедренный');
   readln;
   P:=a+b+c;
   h:=sqrt(sqr(a)-sqr(b/2))
   S:=0.5*h*b;
   writeln('Периметр р\б треугольника=',P);
   readln;
   writeln('Площадь р\б треугольника=',S:0:1);
   readln;
   end;
   if (b=c) and (ba) then
    begin
    writeln('Треугольник равнобедренный');
    readln;
    P:=a+b+c;
    h:=sqrt(sqr(c)-sqr(a/2))
    S:=0.5*h*a;
    writeln('Периметр р\б треугольника=',P);
    readln;
    writeln('Площадь р\б треугольника=',S:0:1);
    readln;
    end;
 if (a=b) and (a=c) then
  begin
  writeln('Треугольник равносторонний');
  readln;
  P:=a+b+c;
  h:=(a*sqrt(3))/2;
  S:=0.5*h*a;
  writeln('Периметр р\б треугольника=',P);
  readln;
  writeln('Площадь р\б треугольника=',S:0:1);
  readln;
  end;
 if (sqr(a)=sqr(b)+sqr(c)) then
  begin
  writeln('Треугольник прямоугольный');
  readln;
  P:=a+b+c;
  S:=0.5*b*c;
  writeln('Периметр р\б треугольника=',P);
  readln;
  writeln('Площадь р\б треугольника=',S:0:1);
  readln;
  end;
  if (sqr(c)=sqr(b)+sqr(a))then
   begin
   writeln('Треугольник прямоугольный');
   readln;
   P:=a+b+c;
   S:=0.5*b*a;
   writeln('Периметр р\б треугольника=',P);
   readln;
   writeln('Площадь р\б треугольника=',S:0:1);
   readln;
   end;
   if (sqr(b)=sqr(a)+sqr(c)) then
    begin
    writeln('Треугольник прямоугольный');
    readln;
    P:=a+b+c;
    S:=0.5*a*c;
    writeln('Периметр р\б треугольника=',P);
    readln;
    writeln('Площадь р\б треугольника=',S:0:1);
    readln;
    end;
 end;
end.

Потратил около 20 минут

Program Treugolnik;
 
var a,b,c:real;
 
Begin
   write('Введите значение a='); readln(a);
   write('Введите значение b='); readln(b);
   write('Введите значение c='); readln(c);
   if ((a+b)>c) and ((a+c)>b) and ((b+c)>a) then
      if (a=b) and (a=c) and (c=b) then
         writeln('Треугольник равносторонний')
      else 
         if (a=b) or (b=c) or (a=c) then
            writeln('Треугольник равнобедренный')
         else 
            writeln('Треугольник разносторонний')
   else 
      writeln('Извините, треугольника с такими сторонами быть не может');
 
end.

Решил немного дополнить.

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

var a,b,c:integer;
Begin
Writeln('Введите длины сторон треугольника' );
Readln(a,b,c);
Writeln('Треугольник со сторонами ',a,', ',b,', ',c);
if (a >= b+c) or (b >= a+c) or (c >= b+a)then Writeln('Не существует')
else begin
if (a=b) and (b=c) and (c=a) then Writeln('Является равнобедренным ')
else begin
if (a=b) or (a=c) or (b=c)
then Writeln('Является равносторонним')
else Writeln('Существует');
end;
end;
END.

Час? Это школьник 10-го

Час? Это школьник 10-го класса сделает за 10 минут максимум

Неправильно, гордый человек

Треугольник является равнобедренным, если какие-либо две его стороны будут равны.
А равносторонним, когда все стороны равны.
То есть, вы перепутали "or"(это или) и "and"(это и).

а если a, b или с - точка? то

а если a, b или с - точка? то есть равны 0?

Треугольники

Ты путаешь равнобедренные и равносторонние треугольники:

 if (a=b) and (b=c) and (c=a) then Writeln('Является равнобедренным ')

if (a=b) or (a=c) or (b=c)
then Writeln('Является равносторонним')

Треугольник существует только

Треугольник существует только тогда, когда сумма любых двух его сторон МЕНЬШЕ третьей. Не опечатка ли?

вроде все правильно. Как

вроде все правильно. Как может существовать треугольник со сторонами 2, 3, 6? сумма должна быть больше

Да, опечатка. Исправлено.

Да, опечатка. Исправлено.

треугольник

Задача решена неправильно, допустим треугольик со сторонами 3, 2, 5 существует? Нет не существует, а программа скажет, что существует!

Смотрите, a := 3; b := 2; c

Смотрите,
a := 3;
b := 2;
c := 5.
Выражени c ложь, т.к. неравенство строгое (не такое как 5 Поэтому содержимое ветки if не выполнится и программа не скажет, что такой треугольник существует.

(Хотя по сути у такого треугольника две стороны лежат на третьей, и он выглядит как линия )))

Таким образом открыли новое

Таким образом открыли новое понятие в геометрии - линейный треугольник)))

А если сделать так?

А если не городить несколько вложенных else-if, а сделать одним, вот так:

var a, b, c: integer;
begin
write('Введите длины сторон треугольника: ');
read(a, b, c);
if (a(c+b)) and (b(a+c)) and (c(a+b)) then write('Такой треугольник существует.')
else write('Такой треугольник не существует.');
read;
end.

Я точно так же сделал)),

Я точно так же сделал)), только вместо and писал or и знак > делал

if (a

if (a - это лучше, чем первый вариант решения. Тут сразу видно что эти условия (одна сторона

Помогите!

Помогите пожалуйста! Заданы длины двух катетов прямоугольного треугольника a, b. Вычислить длину гипотенузы c и величины двух углов треугольника , . Если >500, то вычислить площадь треугольника. Если