123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace TryDoMyself_inception
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- ulong one_to_two = 0;
- ulong one_to_three = 0;
- ulong one_to_five = 0;
- ulong two_to_three = 0;
- ulong two_to_four = 0;
- ulong three_to_four = 0;
- ulong four_to_five = 0;
- //ребра
- restart:
- Console.WriteLine(" Дана таблица работ для сетевого графика. Построить сетевой график и найти критический путь.");
- Console.Write(" Введите расстояние от пункта 1 до пункта 2: ");
- try
- {
- one_to_two = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 1 до пункта 3: ");
- try
- {
- one_to_three = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 1 до пункта 5: ");
- try
- {
- one_to_five = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine(" Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 2 до пункта 3: ");
- try
- {
- two_to_three = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 2 до пункта 4: ");
- try
- {
- two_to_four = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 3 до пункта 4: ");
- try
- {
- three_to_four = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- Console.Write(" Введите расстояние от пункта 4 до пункта 5: ");
- try
- {
- four_to_five = ulong.Parse(Console.ReadLine());
- }
- catch
- {
- Console.WriteLine("Введен неверный тип данных, по умолчанию будет взято значение 0");
- }
- //пути
- double route_1 = one_to_five;
- double route_2 = one_to_two + two_to_three + three_to_four + four_to_five;
- double route_3 = one_to_two + two_to_four + four_to_five;
- double route_4 = one_to_three + three_to_four + four_to_five;
- //какой путь вывести
- if (route_1 > route_2 && route_1 > route_3 && route_1 > route_4)
- Console.WriteLine($" Крититический путь составляет {route_1} дней \n Критический путь: 1 ---> 5 ");
- if (route_2 > route_1 && route_2 > route_3 && route_2 > route_4)
- Console.WriteLine($" Крититический путь составляет {route_2} дней \n Критический путь: 1 ---> 2 ---> 3 ---> 4 ---> 5 ");
- if (route_3 > route_1 && route_3 > route_2 && route_3 > route_4)
- Console.WriteLine($" Крититический путь составляет {route_3} дней \n Критический путь: 1 ---> 2 ---> 4 ---> 5 ");
- if (route_4 > route_1 && route_4 > route_2 && route_4 > route_3)
- Console.WriteLine($" Крититический путь составляет {route_3} дней \n Критический путь: 1 ---> 3 ---> 4 ---> 5 \n");
- //равны два из путей
- if (route_1 == route_2)
- Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью " +
- $"\n Первый: 1 ---> 5 \n Второй: 1 ---> 2 ---> 3 ---> 4 ---> 5 ");
- if (route_1 == route_3)
- Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью " +
- $"\n Первый: 1 ---> 5 \n Второй: 1 ---> 2 ---> 4 ---> 5 ");
- if (route_1 == route_4)
- Console.WriteLine($"Критический путь составляет {route_1} дней \n В задаче два критических пути с одинаковой продолжительностью" +
- $" \n Первый: 1 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
- if (route_2 == route_3)
- Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
- $" \n Первый: 1 ---> 2 ---> 3 ---> 4 ---> 5 \n Второй: 1 ---> 2 ---> 4 ---> 5 ");
- if (route_2 == route_4)
- Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
- $" \n Первый: 1 ---> 2 ---> 3 ---> 4 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
- if (route_3 == route_4)
- Console.WriteLine($"Критический путь составляет {route_2} дней \n В задаче два критических пути с одинаковой продолжительностью" +
- $" \n Первый: 1 ---> 2 ---> 4 ---> 5 \n Второй: 1 ---> 3 ---> 4 ---> 5 ");
- if (route_1 == route_2 && route_1 == route_3 && route_1 == route_4)
- Console.WriteLine($"Все пути равны. Критический путь составляет {route_1} дней");
- Console.WriteLine("Хотите вернуться в начало? - напишите да если хотите. Для выхода из программы нажмите 'Enter' ");
- string restart;
- restart = (Console.ReadLine());
- if (restart == "да" || restart == "lf" || restart == "Да" || restart == "Lf" || restart == "ДА" || restart == "LF")
- goto restart;
- else
- {
- Console.ReadLine();
- }
- }
- }
- }
|