Найти недочеты в программе, которая определяет вид треугольника - C#

Узнай цену своей работы

Формулировка задачи:

"Составить программу, которая определяла бы вид треугольника (равносторонний, равнобедренный, разносторонний, прямоугольный, тупоугольный, остроугольный), если по данным трём отрезкам его можно построить."
 /*1.   Составить программу, которая определяла бы вид треугольника 
            (равносторонний, равнобедренный, разносторонний, прямоугольный, тупоугольный, остроугольный), если по данным трём отрезкам его можно построить.*/

            Console.WriteLine("Введите стороны любого треугольника, чтобы определить его свойства");
 
            // Вводим первую сторону треугольника                                                                    
            Console.WriteLine("Первая сторона равна:");
            string s = Console.ReadLine();
            int a = Convert.ToInt32(s);
 
            // Вводим вторую сторону треугольника
            Console.WriteLine("Вторая сторона равна:");
            string d = Console.ReadLine();
            int b = Convert.ToInt32(d);
 
            //Вводим третью сторону треугольника 
            Console.WriteLine("Третья сторона равна:");
            string f = Console.ReadLine();
            int c = Convert.ToInt32(f);
         
            //Вычисляем углы треугольника
 
            double q = Math.Acos((b * b) + (c * c) - (a * a)) / (2 * b * c);
            double w = Math.Acos((a * a) + (c * c) - (b * b)) / (2 * a * c);
            double e = (180 - (q + w));
 
            //------------------------------------------------------------------------------------------------------------

            if ((a + b <= c) | (a + c <= b) | (b + c < a))
                Console.WriteLine("Треугольник не существует");
            //------------------------------------------------------------------------------------------------------------
            else

            if (a == b & a == c & c == b)
                Console.WriteLine("Данный треугольник является равносторонним");
            else
                
            //------------------------------------------------------------------------------------------------------------
 
            if ((a == b | a == c | b == c) & (q > 90 | w > 90 | e > 90))
                  Console.WriteLine("Данный треугольник является равнобедренным и тупоугольным");
            else

                //------------------------------------------------------------------------------------------------------------

            if ((a == b | a == c | b == c) | (q < 90 & w < 90 & e < 90))
                   Console.WriteLine("Данный треугольник является равнобедренным и остроугольным");
             else
 
                //------------------------------------------------------------------------------------------------------------

 if ((a * a) + (b * b) == (c * c) | (a * a) + (c * c) == (b * b) | (c * c) + (b * b) == (a * a))
                Console.WriteLine("Данный треугольник является прямоугольным");
            else
                                            
                 //------------------------------------------------------------------------------------------------------------
 
           if ((a != b & a != c & b != c) & (q < 90) | w < 90 | e < 90))
            Console.WriteLine("Данный треугольник является разносторонним и остроугольным");
          else
                                                
               //------------------------------------------------------------------------------------------------------------
               
        if ((a != b & a != c & b != c) & (q > 90 | w > 90 | e > 90))
           Console.WriteLine("Данный треугольник является разносторонним и тупоугольным");
         else Console.WriteLine();
                                                
                //------------------------------------------------------------------------------------------------------------
                                
           Console.ReadKey();
При вводе в данную программу, скажем 2 2 1 Должно выполняться условие (Данный треугольник является равнобедренным и остроугольным), но пишет (Данный треугольник является равнобедренным и тупоугольным). При вводе 2 1 2 Программа вообще не работает Также при вводе таких чисел как 2 3 4 Программа тоже отказывается работать Т.е с двумя условиями она работает некорректно Укажите на ошибки пожалуйста! Уже мозги сломал. Может быть я где-то попутал | с || и & с && ? Алсо, посоветуйте какие нибудь стоящие книги на тему "программирование с# с нуля"

Решение задачи: «Найти недочеты в программе, которая определяет вид треугольника»

textual
Листинг программы
using System;
namespace CyberforumApp
{
    class Program
    {
        static void Main()
        {
            Console.WriteLine("Введите стороны любого треугольника, чтобы определить его свойства");
 
            // Вводим первую сторону треугольника                                                                    
            Console.WriteLine("Первая сторона равна:");
            int a = Convert.ToInt32(Console.ReadLine());
 
            // Вводим вторую сторону треугольника
            Console.WriteLine("Вторая сторона равна:");
            int b = Convert.ToInt32(Console.ReadLine());
 
            //Вводим третью сторону треугольника 
            Console.WriteLine("Третья сторона равна:");
            int c = Convert.ToInt32(Console.ReadLine());
 
 
            int alpha = b * b + c * c - a * a; // Величина пропорциональная косинусу угла, противолежащего стороне a.
            int betha = a * a + c * c - b * b;
            int gamma = a * a + b * b - c * c;
 
            if (a + b <= c || a + c <= b || b + c <= a) Console.WriteLine("Треугольник не существует");
            else
            {
                if (a == b && a == c && c == b) Console.WriteLine("Треугольник равносторонний(всегда остроугольный)");
                else if (a == b || a == c || b == c)
                {
                    Console.Write("Треугольник равнобедренный");
                    
                    if (alpha == 0 || betha == 0 || gamma == 0) Console.WriteLine("(прямоугольный)");
                    else if (alpha < 0 || betha < 0 || gamma < 0) Console.WriteLine("(тупоугольный)");
                    else Console.WriteLine("(остроугольный)");
                }
                else
                {
                    Console.Write("Треугольник разносторонний");
                    
                    if (alpha == 0 || betha == 0 || gamma == 0) Console.WriteLine("(прямоугольный)");
                    else if (alpha < 0 || betha < 0 || gamma < 0) Console.WriteLine("(тупоугольный)");
                    else Console.WriteLine("(остроугольный)");
                }   
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы