kashschool3
?>

Сложить программу для нахождения всех двухцифровых чисел, которые делятся на N или содержат число N в

Информатика

Ответы

Анна гутлина
Можно заметить, что самый большой угол в треугольнике всегда расположен напротив самой длинной стороны, которую мы обозначим буквой с.
Значение такого угла можно найти по теореме косинусов:
\displaystyle \cos(C)= \frac{a^2+b^2-c^2}{2ab}
В остроугольном треугольнике угол всегда будет меньше 90 градусов, поэтому его косинус всегда будет положительным. В прямоугольном треугольнике косинус будет равен нулю, а в тупоугольном он будет отрицательным. На этом можно построить решение, предварительно определив, какая из сторон является самой длинной. И, само собой разумеется, надо сразу после ввода проверить условие существования треугольника, т.е. чтобы сумма длин двух его любых сторон была больше третьей.

var
  a,b,c,a1,b1,c1,cosC:real;
begin
  Write('Введите длины сторон треугольника: ');
  Read(a,b,c);
  Write('Треугольник ');
  if (a<(b+c)) and (b<(a+c)) and (c<(a+b)) then begin
    if a>b then
      if a>c then begin c1:=a; a1:=c; b1:=b end
      else begin c1:=c; a1:=a; b1:=b end
    else
      if b>c then begin c1:=b; a1:=a; b1:=c end
      else begin c1:=c; a1:=a; b1:=b end;
    cosC:=(sqr(a1)+sqr(b1)-sqr(c1))/(2*a*b);
    if cosC<0 then Writeln('тупоугольный')
    else
      if cosC=0 then Writeln('прямоугольный')
      else Writeln('остроугольный')
  end
  else Writeln('построить невозможно')
end.

Тестовое решение:
Введите длины сторон треугольника: 6 4.1 4
Треугольник тупоугольный
ukkavtodor6
        static void Main()
        {
            double a = float.Parse(Console.ReadLine()),
                   b = float.Parse(Console.ReadLine()),
                   c = float.Parse(Console.ReadLine()),
                   d;
            if (a > b) swap(ref a, ref b);
            if (b > c) swap(ref c, ref b);
            if (a > b) swap(ref a, ref b);
            if (b > c) swap(ref c, ref b);
            d = Math.Sqrt(Math.Pow(a, 2) + Math.Pow(b, 2));
            if (a + b <= c)
            {
                Console.WriteLine("Нет ▲");
            }
            else
            {
                if (d == c)
                    Console.WriteLine("Прямоугольный");
                else
                    if (d < c)
                        Console.WriteLine("Тупоугольный");
                    else
                        Console.WriteLine("Остроугольный");
            }
            Console.ReadKey(false);
        }
        private static void swap(ref double a, ref double b)
        {
            double c = a;
            a = b;
            b = c;
        }

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Сложить программу для нахождения всех двухцифровых чисел, которые делятся на N или содержат число N в
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

ИринаАлександровна
sahar81305
demochkoo
Полковников_Милана
krasilnikov74
Imarmy67
avdeevau807
Анатольевич
vtarasyuk
Газинурович
bondarev05071962
mariy-inkina8
rudakovam198
Aleksei
Vik1744184