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

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

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

Заданы координаты четырех точек A B C D на плоскости. Определить наибольший из периметров треугольников АВС, ABD, ACD. Помогите пожалуйста уменьшить программу, я понимаю что написал глуповато, но как "урезать" код, в голову не приходит...
int x1, x2, x3, x4, y1, y2, y3, y4;
            double AB = 0, BC = 0, AC = 0, BD = 0, AD = 0, CD = 0, ABC = 0, ABD = 0, ACD = 0, max = 0;
            string strValue;
 
            Console.Write("Введите координаты точек А, В, C, D " + "\n");
            Console.Write("Введите x: "); strValue = Console.ReadLine(); x1 = Convert.ToInt32(strValue);
            Console.Write("Введите y: "); strValue = Console.ReadLine(); y1 = Convert.ToInt32(strValue);
            Console.Write("Введите x: "); strValue = Console.ReadLine(); x2 = Convert.ToInt32(strValue);
            Console.Write("Введите y: "); strValue = Console.ReadLine(); y2 = Convert.ToInt32(strValue);
            Console.Write("Введите x: "); strValue = Console.ReadLine(); x3 = Convert.ToInt32(strValue);
            Console.Write("Введите y: "); strValue = Console.ReadLine(); y3 = Convert.ToInt32(strValue);
            Console.Write("Введите x: "); strValue = Console.ReadLine(); x4 = Convert.ToInt32(strValue);
            Console.Write("Введите y: "); strValue = Console.ReadLine(); y4 = Convert.ToInt32(strValue);
 
            //ABC
            AB = Math.Sqrt(Math.Pow((y2 - y1), 2) + Math.Pow((x2 - x1), 2));
            BC = Math.Sqrt(Math.Pow((y3 - y2), 2) + Math.Pow((x3 - x2), 2));
            AC = Math.Sqrt(Math.Pow((y3 - y1), 2) + Math.Pow((x3 - x1), 2));
            ABC = AB + BC + AC;
            System.Console.WriteLine("AB = {0,2:f3}, BC = {1,1:f3}, AC = {2,2:f3}, Периметр треугольника ABC= {3,3:f3}", AB, BC, AC, ABC);
 
            //ABD
            AD = Math.Sqrt(Math.Pow((y4 - y1), 2) + Math.Pow((x4 - x1), 2));
            BD = Math.Sqrt(Math.Pow((y4 - y2), 2) + Math.Pow((x4 - x2), 2));
            ABD = AD + BD + AB;
            System.Console.WriteLine("AD = {0,2:f3}, BD = {1,1:f3}, AB = {2,2:f3}, Периметр треугольника ABD= {3,3:f3} ", AD, BD, AB, ABD);
 
            //ACD
            CD = Math.Sqrt(Math.Pow((y4 - y3), 2) + Math.Pow((x4 - x3), 2));
            ACD = AC + AD + CD;
            System.Console.WriteLine("AD = {0,2:f3}, AC = {1,1:f3}, CD = {2,2:f3}, Периметр треугольника ACD= {3,3:f3} ", AD, AC, CD, ACD);
 
            if (ABC > ABD)
             max = ABC; 
            else max = ABD;
            if (ACD > max)
             max = ACD; 
             System.Console.WriteLine("Максимальный периметр = {0,2:f3} ", max);

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

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication3
{
    class Program
    {
       
            public int vv()
            {
 
 
                Console.Write("Введите координаты точек А, В, C, D " + "\n");
                Console.Write("Введите координату x точки A: "); x1 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату y точки A: "); y1 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату x точки B: "); x2 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату y точки B: "); y2 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату x точки C: "); x3 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату y точки C: "); y3 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату x точки D: "); x4 = int.Parse(Console.ReadLine());
                Console.Write("Введите координату y точки D: "); y4 = int.Parse(Console.ReadLine());
 
 
                return (0);
            }
       
      
 
 
        static void Main(string[] args)
        {
            int x1, x2, x3, x4, y1, y2, y3, y4;
            public vv();
            double AB, BC, AC, BD, AD, CD, ABC, ABD, ACD, max = 0;
            string strValue;
 
            
 
            //ABC
            AB = Math.Sqrt(Math.Pow((y2 - y1), 2) + Math.Pow((x2 - x1), 2));
            BC = Math.Sqrt(Math.Pow((y3 - y2), 2) + Math.Pow((x3 - x2), 2));
            AC = Math.Sqrt(Math.Pow((y3 - y1), 2) + Math.Pow((x3 - x1), 2));
            ABC = AB + BC + AC;
            System.Console.WriteLine("Периметр треугольника ABC= {0,2:f3}", ABC);
            Console.Write("\n");
            //ABD
            AD = Math.Sqrt(Math.Pow((y4 - y1), 2) + Math.Pow((x4 - x1), 2));
            BD = Math.Sqrt(Math.Pow((y4 - y2), 2) + Math.Pow((x4 - x2), 2));
            ABD = AD + BD + AB;
            System.Console.WriteLine("Периметр треугольника ABD= {0,2:f3} ", ABD);
            Console.Write("\n");
            //ACD
            CD = Math.Sqrt(Math.Pow((y4 - y3), 2) + Math.Pow((x4 - x3), 2));
            ACD = AC + AD + CD;
            System.Console.WriteLine("Периметр треугольника ACD= {0,2:f3} ", ACD);
            Console.Write("\n");
            if (ABC > ABD)
            { max = ABC; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ABC", max); }
            else { max = ABD; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ABD", max);} 
                 if (ACD > max)
                 { max = ACD; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ACD", max); }
            
        }
    }
    }

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


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

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

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