Вычислите площадь тупоугольного равнобедренного треугольника - C#

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

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

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

Решение задачи: «Вычислите площадь тупоугольного равнобедренного треугольника»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace CAppl1
  8. {
  9.     class Program
  10.     {
  11.         private struct Points
  12.         {
  13.             public int x;
  14.             public int y;
  15.         }
  16.  
  17.         static void Main(string[] args)
  18.         {
  19.             Points[] point = new Points[3];
  20.             Program pr = new Program();
  21.  
  22.             for (int i = 0; i < point.Length; i++)
  23.             {
  24.                 Console.WriteLine("Координаты точки {0}", (i + 1));
  25.                 point[i].x = pr.getX();
  26.                 point[i].y = pr.getY();
  27.             }
  28.  
  29.             Console.WriteLine("Ввод данных завершен\n");
  30.  
  31.             //calculate long side
  32.             double side_a = pr.calculateLongSide(point[0].x, point[0].y, point[1].x, point[1].y);
  33.             double side_b = pr.calculateLongSide(point[0].x, point[0].y, point[2].x, point[2].y);
  34.             double side_c = pr.calculateLongSide(point[2].x, point[2].y, point[1].x, point[1].y);
  35.            
  36.             //test triangle and calculate square
  37.             double square;
  38.             if (pr.testObtuseAngle_Isosceles(side_a, side_b, side_c))
  39.             {
  40.                 square = pr.calculateSquare(side_a, side_b, side_c);
  41.                 if (square != 0)
  42.                 {
  43.                     Console.WriteLine("сторона а = {0:0.###}", side_a);
  44.                     Console.WriteLine("сторона b = {0:0.###}", side_b);
  45.                     Console.WriteLine("сторона c = {0:0.###}", side_c);
  46.                     Console.WriteLine("Треугольник является тупоугольным и равнобедренным. Его площадь {0:0.###}", square);
  47.                 }
  48.                 else Console.WriteLine("С помощью введенных точек построить треугольник нельзя");
  49.             }
  50.             else Console.WriteLine("Треугольник не удовлетворяет заданным условиям");
  51.  
  52.             Console.ReadLine();
  53.         }
  54.  
  55.         private int getX()
  56.         {
  57.             Console.Write("х = ");
  58.             return Convert.ToInt32(Console.ReadLine());
  59.         }
  60.  
  61.         private int getY()
  62.         {
  63.             Console.Write("y = ");
  64.             return Convert.ToInt32(Console.ReadLine());
  65.         }
  66.  
  67.         private double calculateLongSide(int x1, int y1, int x2, int y2)
  68.         {
  69.             double res;
  70.             return res = Math.Sqrt(Math.Pow((x1 - x2), 2) + Math.Pow((y1 - y2), 2));
  71.         }
  72.  
  73.         //the Heron's formula
  74.         private double calculateSquare(double a, double b, double c)
  75.         {
  76.             double res;
  77.             double p = (a + b + c)/2;
  78.  
  79.             return res = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
  80.         }
  81.  
  82.         //search obtuse angle and isosceles
  83.         private bool testObtuseAngle_Isosceles(double a, double b, double c)
  84.         {
  85.             bool res = false;
  86.  
  87.             if ((((a * a + b * b) < c * c) || ((a * a + c * c) < b * b)
  88.                 || ((c * c + b * b) < a * a)) && (a == b) || (a == c) || (b == c))
  89.             {
  90.                 res = true;
  91.             }
  92.            
  93.             return res;
  94.         }
  95.     }
  96. }

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


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

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

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы