Найти периметр треугольника по координатам его вершин - 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); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д