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