критич.txt 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace TryDoMyself_inception
  7. {
  8. internal class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. ulong one_to_two = 0;
  13. ulong one_to_three = 0;
  14. ulong one_to_five = 0;
  15. ulong two_to_three = 0;
  16. ulong two_to_four = 0;
  17. ulong three_to_four = 0;
  18. ulong four_to_five = 0;
  19. //ребра
  20. restart:
  21. Console.WriteLine(" Дана таблица работ для сетевого графика. Построить сетевой график и найти критический путь.");
  22. Console.Write(" Введите расстояние от пункта 1 до пункта 2: ");
  23. try
  24. {
  25. one_to_two = ulong.Parse(Console.ReadLine());
  26. }
  27. catch
  28. {
  29. Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
  30. }
  31. Console.Write(" Введите расстояние от пункта 1 до пункта 3: ");
  32. try
  33. {
  34. one_to_three = ulong.Parse(Console.ReadLine());
  35. }
  36. catch
  37. {
  38. Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
  39. }
  40. Console.Write(" Введите расстояние от пункта 1 до пункта 5: ");
  41. try
  42. {
  43. one_to_five = ulong.Parse(Console.ReadLine());
  44. }
  45. catch
  46. {
  47. Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
  48. }
  49. Console.Write(" Введите расстояние от пункта 2 до пункта 3: ");
  50. try
  51. {
  52. two_to_three = ulong.Parse(Console.ReadLine());
  53. }
  54. catch
  55. {
  56. Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
  57. }
  58. Console.Write(" Введите расстояние от пункта 2 до пункта 4: ");
  59. try
  60. {
  61. two_to_four = ulong.Parse(Console.ReadLine());
  62. }
  63. catch
  64. {
  65. Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
  66. }
  67. Console.Write(" Введите расстояние от пункта 3 до пункта 4: ");
  68. try
  69. {
  70. three_to_four = ulong.Parse(Console.ReadLine());
  71. }
  72. catch
  73. {
  74. Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
  75. }
  76. Console.Write(" Введите расстояние от пункта 4 до пункта 5: ");
  77. try
  78. {
  79. four_to_five = ulong.Parse(Console.ReadLine());
  80. }
  81. catch
  82. {
  83. Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
  84. }
  85. //пути
  86. double route_1 = one_to_five;
  87. double route_2 = one_to_two + two_to_three + three_to_four + four_to_five;
  88. double route_3 = one_to_two + two_to_four + four_to_five;
  89. double route_4 = one_to_three + three_to_four + four_to_five;
  90. //какой путь вывести
  91. if (route_1 > route_2 && route_1 > route_3 && route_1 > route_4)
  92. Console.WriteLine($" Крититический путь составляет {route_1} дней \n Критический путь: 1 ---> 5 ");
  93. if (route_2 > route_1 && route_2 > route_3 && route_2 > route_4)
  94. Console.WriteLine($" Крититический путь составляет {route_2} дней \n Критический путь: 1 ---> 2 ---> 3 ---> 4 ---> 5 ");
  95. if (route_3 > route_1 && route_3 > route_2 && route_3 > route_4)
  96. Console.WriteLine($" Крититический путь составляет {route_3} дней \n Критический путь: 1 ---> 2 ---> 4 ---> 5 ");
  97. if (route_4 > route_1 && route_4 > route_2 && route_4 > route_3)
  98. Console.WriteLine($" Крититический путь составляет {route_3} дней \n Критический путь: 1 ---> 3 ---> 4 ---> 5 \n");
  99. //равны два из путей
  100. if (route_1 == route_2)
  101. Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью " +
  102. $"\n Первый: 1 ---> 5 \n Второй: 1 ---> 2 ---> 3 ---> 4 ---> 5 ");
  103. if (route_1 == route_3)
  104. Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью " +
  105. $"\n Первый: 1 ---> 5 \n Второй: 1 ---> 2 ---> 4 ---> 5 ");
  106. if (route_1 == route_4)
  107. Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью" +
  108. $" \n Первый: 1 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
  109. if (route_2 == route_3)
  110. Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
  111. $" \n Первый: 1 ---> 2 ---> 3 ---> 4 ---> 5 \n Второй: 1 ---> 2 ---> 4 ---> 5 ");
  112. if (route_2 == route_4)
  113. Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
  114. $" \n Первый: 1 ---> 2 ---> 3 ---> 4 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
  115. if (route_3 == route_4)
  116. Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
  117. $" \n Первый: 1 ---> 2 ---> 4 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
  118. if (route_1 == route_2 && route_1 == route_3 && route_1 == route_4)
  119. Console.WriteLine($"Все пути равны. Критический путь составляет {route_1} дней");
  120. Console.WriteLine("Хотите вернуться в начало? - напишите да если хотите. Для выхода из программы нажмите 'Enter' ");
  121. string restart;
  122. restart = (Console.ReadLine());
  123. if (restart == "да" || restart == "lf" || restart == "Да" || restart == "Lf" || restart == "ДА" || restart == "LF")
  124. goto restart;
  125. else
  126. {
  127. Console.ReadLine();
  128. }
  129. }
  130. }
  131. }