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

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

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

Заданы координаты четырех точек A B C D на плоскости. Определить наибольший из периметров треугольников АВС, ABD, ACD. Помогите пожалуйста уменьшить программу, я понимаю что написал глуповато, но как "урезать" код, в голову не приходит...
Листинг программы
  1. int x1, x2, x3, x4, y1, y2, y3, y4;
  2. double AB = 0, BC = 0, AC = 0, BD = 0, AD = 0, CD = 0, ABC = 0, ABD = 0, ACD = 0, max = 0;
  3. string strValue;
  4. Console.Write("Введите координаты точек А, В, C, D " + "\n");
  5. Console.Write("Введите x: "); strValue = Console.ReadLine(); x1 = Convert.ToInt32(strValue);
  6. Console.Write("Введите y: "); strValue = Console.ReadLine(); y1 = Convert.ToInt32(strValue);
  7. Console.Write("Введите x: "); strValue = Console.ReadLine(); x2 = Convert.ToInt32(strValue);
  8. Console.Write("Введите y: "); strValue = Console.ReadLine(); y2 = Convert.ToInt32(strValue);
  9. Console.Write("Введите x: "); strValue = Console.ReadLine(); x3 = Convert.ToInt32(strValue);
  10. Console.Write("Введите y: "); strValue = Console.ReadLine(); y3 = Convert.ToInt32(strValue);
  11. Console.Write("Введите x: "); strValue = Console.ReadLine(); x4 = Convert.ToInt32(strValue);
  12. Console.Write("Введите y: "); strValue = Console.ReadLine(); y4 = Convert.ToInt32(strValue);
  13. //ABC
  14. AB = Math.Sqrt(Math.Pow((y2 - y1), 2) + Math.Pow((x2 - x1), 2));
  15. BC = Math.Sqrt(Math.Pow((y3 - y2), 2) + Math.Pow((x3 - x2), 2));
  16. AC = Math.Sqrt(Math.Pow((y3 - y1), 2) + Math.Pow((x3 - x1), 2));
  17. ABC = AB + BC + AC;
  18. System.Console.WriteLine("AB = {0,2:f3}, BC = {1,1:f3}, AC = {2,2:f3}, Периметр треугольника ABC= {3,3:f3}", AB, BC, AC, ABC);
  19. //ABD
  20. AD = Math.Sqrt(Math.Pow((y4 - y1), 2) + Math.Pow((x4 - x1), 2));
  21. BD = Math.Sqrt(Math.Pow((y4 - y2), 2) + Math.Pow((x4 - x2), 2));
  22. ABD = AD + BD + AB;
  23. System.Console.WriteLine("AD = {0,2:f3}, BD = {1,1:f3}, AB = {2,2:f3}, Периметр треугольника ABD= {3,3:f3} ", AD, BD, AB, ABD);
  24. //ACD
  25. CD = Math.Sqrt(Math.Pow((y4 - y3), 2) + Math.Pow((x4 - x3), 2));
  26. ACD = AC + AD + CD;
  27. System.Console.WriteLine("AD = {0,2:f3}, AC = {1,1:f3}, CD = {2,2:f3}, Периметр треугольника ACD= {3,3:f3} ", AD, AC, CD, ACD);
  28. if (ABC > ABD)
  29. max = ABC;
  30. else max = ABD;
  31. if (ACD > max)
  32. max = ACD;
  33. System.Console.WriteLine("Максимальный периметр = {0,2:f3} ", max);

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

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace ConsoleApplication3
  7. {
  8.     class Program
  9.     {
  10.        
  11.             public int vv()
  12.             {
  13.  
  14.  
  15.                 Console.Write("Введите координаты точек А, В, C, D " + "\n");
  16.                 Console.Write("Введите координату x точки A: "); x1 = int.Parse(Console.ReadLine());
  17.                 Console.Write("Введите координату y точки A: "); y1 = int.Parse(Console.ReadLine());
  18.                 Console.Write("Введите координату x точки B: "); x2 = int.Parse(Console.ReadLine());
  19.                 Console.Write("Введите координату y точки B: "); y2 = int.Parse(Console.ReadLine());
  20.                 Console.Write("Введите координату x точки C: "); x3 = int.Parse(Console.ReadLine());
  21.                 Console.Write("Введите координату y точки C: "); y3 = int.Parse(Console.ReadLine());
  22.                 Console.Write("Введите координату x точки D: "); x4 = int.Parse(Console.ReadLine());
  23.                 Console.Write("Введите координату y точки D: "); y4 = int.Parse(Console.ReadLine());
  24.  
  25.  
  26.                 return (0);
  27.             }
  28.        
  29.      
  30.  
  31.  
  32.         static void Main(string[] args)
  33.         {
  34.             int x1, x2, x3, x4, y1, y2, y3, y4;
  35.             public vv();
  36.             double AB, BC, AC, BD, AD, CD, ABC, ABD, ACD, max = 0;
  37.             string strValue;
  38.  
  39.            
  40.  
  41.             //ABC
  42.             AB = Math.Sqrt(Math.Pow((y2 - y1), 2) + Math.Pow((x2 - x1), 2));
  43.             BC = Math.Sqrt(Math.Pow((y3 - y2), 2) + Math.Pow((x3 - x2), 2));
  44.             AC = Math.Sqrt(Math.Pow((y3 - y1), 2) + Math.Pow((x3 - x1), 2));
  45.             ABC = AB + BC + AC;
  46.             System.Console.WriteLine("Периметр треугольника ABC= {0,2:f3}", ABC);
  47.             Console.Write("\n");
  48.             //ABD
  49.             AD = Math.Sqrt(Math.Pow((y4 - y1), 2) + Math.Pow((x4 - x1), 2));
  50.             BD = Math.Sqrt(Math.Pow((y4 - y2), 2) + Math.Pow((x4 - x2), 2));
  51.             ABD = AD + BD + AB;
  52.             System.Console.WriteLine("Периметр треугольника ABD= {0,2:f3} ", ABD);
  53.             Console.Write("\n");
  54.             //ACD
  55.             CD = Math.Sqrt(Math.Pow((y4 - y3), 2) + Math.Pow((x4 - x3), 2));
  56.             ACD = AC + AD + CD;
  57.             System.Console.WriteLine("Периметр треугольника ACD= {0,2:f3} ", ACD);
  58.             Console.Write("\n");
  59.             if (ABC > ABD)
  60.             { max = ABC; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ABC", max); }
  61.             else { max = ABD; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ABD", max);}
  62.                  if (ACD > max)
  63.                  { max = ACD; System.Console.WriteLine("Максимальный периметр = {0,2:f3} треугольника ACD", max); }
  64.            
  65.         }
  66.     }
  67.     }

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


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

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

11   голосов , оценка 3.455 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы