Вычислите площадь тупоугольного равнобедренного треугольника - C#
Формулировка задачи:
Даны координаты трех точек на плоскости. Если они могут быть вершинами равнобедренного тупоугольного треугольника, вычислите его площадь. Выведите длины сторон и площадь в порядке возрастания значений.
Решение задачи: «Вычислите площадь тупоугольного равнобедренного треугольника»
textual
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace CAppl1
- {
- class Program
- {
- private struct Points
- {
- public int x;
- public int y;
- }
- static void Main(string[] args)
- {
- Points[] point = new Points[3];
- Program pr = new Program();
- for (int i = 0; i < point.Length; i++)
- {
- Console.WriteLine("Координаты точки {0}", (i + 1));
- point[i].x = pr.getX();
- point[i].y = pr.getY();
- }
- Console.WriteLine("Ввод данных завершен\n");
- //calculate long side
- double side_a = pr.calculateLongSide(point[0].x, point[0].y, point[1].x, point[1].y);
- double side_b = pr.calculateLongSide(point[0].x, point[0].y, point[2].x, point[2].y);
- double side_c = pr.calculateLongSide(point[2].x, point[2].y, point[1].x, point[1].y);
- //test triangle and calculate square
- double square;
- if (pr.testObtuseAngle_Isosceles(side_a, side_b, side_c))
- {
- square = pr.calculateSquare(side_a, side_b, side_c);
- if (square != 0)
- {
- Console.WriteLine("сторона а = {0:0.###}", side_a);
- Console.WriteLine("сторона b = {0:0.###}", side_b);
- Console.WriteLine("сторона c = {0:0.###}", side_c);
- Console.WriteLine("Треугольник является тупоугольным и равнобедренным. Его площадь {0:0.###}", square);
- }
- else Console.WriteLine("С помощью введенных точек построить треугольник нельзя");
- }
- else Console.WriteLine("Треугольник не удовлетворяет заданным условиям");
- Console.ReadLine();
- }
- private int getX()
- {
- Console.Write("х = ");
- return Convert.ToInt32(Console.ReadLine());
- }
- private int getY()
- {
- Console.Write("y = ");
- return Convert.ToInt32(Console.ReadLine());
- }
- private double calculateLongSide(int x1, int y1, int x2, int y2)
- {
- double res;
- return res = Math.Sqrt(Math.Pow((x1 - x2), 2) + Math.Pow((y1 - y2), 2));
- }
- //the Heron's formula
- private double calculateSquare(double a, double b, double c)
- {
- double res;
- double p = (a + b + c)/2;
- return res = Math.Sqrt(p * (p - a) * (p - b) * (p - c));
- }
- //search obtuse angle and isosceles
- private bool testObtuseAngle_Isosceles(double a, double b, double c)
- {
- bool res = false;
- if ((((a * a + b * b) < c * c) || ((a * a + c * c) < b * b)
- || ((c * c + b * b) < a * a)) && (a == b) || (a == c) || (b == c))
- {
- res = true;
- }
- return res;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д