static void Main(string[] args)
        {
            Console.WriteLine("[1] Евклидово расстояние");
            Console.WriteLine("[2] Корреляции Пирсона");
            Console.WriteLine("[3] Ранжирование критиков 'Евклидово расстояние'");
            Console.WriteLine("[4] Ранжирование критиков 'Корреляции Пирсона'");
            Console.WriteLine("[другое] Выход");

            var ch = Console.ReadKey();

            Console.Clear();

            IDistance distance = null;

            switch (ch.KeyChar)
            {
            case '1':
                distance = FactoryDistance.CreateDistance <EuclideanDistance>(Program.GetCritics());
                break;

            case '2':
                distance = FactoryDistance.CreateDistance <CorrelationPearson>(Program.GetCritics());
                break;

            case '3':
                Program.RankingCritics(typeof(EuclideanDistance), Console.In, Console.Out);
                break;

            case '4':
                Program.RankingCritics(typeof(CorrelationPearson), Console.In, Console.Out);
                break;
            }

            if (distance != null)
            {
                var result = distance.SimDistance("Lisa Rose", "Gene Seymour");
                Console.WriteLine("Результат = {0}", result);
            }

            Console.ReadKey();
        }