Найти периметр треугольника по координатам его вершин - 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); }
}
}
}