コード例 #1
0
        public void Decrypt()
        {
            Console.WriteLine("Введите строку, куоторую необходимо расшифровать");
            string line = UpgradedConsole.GetStringNotEmpty();

            Console.WriteLine("Расшифрованная строка:");
            Console.WriteLine(Program.Decrypt(line));
            Console.ReadKey();
        }
コード例 #2
0
        private void RandomArray()
        {
            Console.WriteLine("Введите размер массива");
            int size = UpgradedConsole.GetInt(1);

            Program.RandomArray(size);

            Console.WriteLine("Готово!");
            Console.ReadKey();
        }
コード例 #3
0
        static void Main(string[] args)
        {
            //Arange
            List <double> frequencies = new List <double>();
            SortedDictionary <string, double> keyBinaryValue;

            //Ввод данных
            Console.WriteLine("Вводите частоты символов для построения суффиксного кода " +
                              "через Enter, ввод закончится, когда сумма частот будет равна 1");

            do
            {
                double inputFrequnce = UpgradedConsole.GetDouble(0, 1);
                if (Math.Round(inputFrequnce, 15) == 0)
                {
                    Console.WriteLine("Частота не может равняться 0");
                }
                else if (Math.Round(frequencies.Sum() + inputFrequnce, 15) > 1)
                {
                    Console.WriteLine($"Сумма не может быть больше 1. " +
                                      $"Максимальное для ввода число : {Math.Round(1 - frequencies.Sum(), 15)}");
                }
                else
                {
                    frequencies.Add(inputFrequnce);
                }
            } while (Math.Round(frequencies.Sum(), 15) != 1);

            //Строим префисный код Хаффмана
            keyBinaryValue = HuffmansAlgorithm(frequencies);

            Console.WriteLine("Cуффиксный код:\tЗначение:");
            while (keyBinaryValue.Count != 0)
            {
                int minElem = 0;
                for (int i = 0; i < keyBinaryValue.Count; i++)
                {
                    if (keyBinaryValue.Keys.ToArray()[i].Length < keyBinaryValue.Keys.ToArray()[minElem].Length)
                    {
                        minElem = i;
                    }
                }
                string key = keyBinaryValue.Keys.ToArray()[minElem];
                Console.WriteLine(key + "\t\t" + keyBinaryValue[key]);
                keyBinaryValue.Remove(key);
            }
            Console.ReadKey();
        }
コード例 #4
0
        private void KeyboardArray()
        {
            Console.WriteLine("Введите размер массива");
            int size = UpgradedConsole.GetInt(1);

            double[] array = new double[size];

            Console.WriteLine("Вводите элементы массива");
            for (int i = 0; i < size; i++)
            {
                array[i] = UpgradedConsole.GetDouble();
            }

            Program.SetArray(array);

            Console.WriteLine("Готово");
            Console.ReadKey();
        }
コード例 #5
0
        static void Main(string[] args)
        {
            const string info = "Программа вычисляет (X1+X2+2Xn)(X2+X3+2*X(n-1))...(X(n-1)+Xn+2*X2)";

            Console.WriteLine(info);
            int           n;
            List <double> x = new List <double>();

            Console.WriteLine("Введите N, то есть сколько будет элементов в Xn");
            n = UpgradedConsole.GetInt(2);

            Console.WriteLine("Вводите элементы, ввод закоончится, как только вы введете все элементы");
            for (int i = 0; i < n; i++)
            {
                x.Add(UpgradedConsole.GetDouble());
            }

            Console.WriteLine("Результат: " + GetResSequence(x.ToArray()));
            Console.ReadKey();
        }
コード例 #6
0
        static void Main(string[] args)
        {
            List <double> a = new List <double>(); //Последовательность a
            int           n;                       //Количество элементов последовательности, которые необходимо добавить

            Console.WriteLine("Введите a1");
            a.Add(UpgradedConsole.GetDouble());
            Console.WriteLine("Введите a2");
            a.Add(UpgradedConsole.GetDouble());
            Console.WriteLine("Введите a3");
            a.Add(UpgradedConsole.GetDouble());
            Console.WriteLine("Введите N");
            n  = UpgradedConsole.GetInt(1);
            n += a.Count;        //ставим номер элемента, по который необходимо найти последовательсть
            Console.WriteLine(); //Разделяем для красоты:)

            Console.Write($"Последовательность:\n{a[0]}; {a[1]}; {a[2]}");

            for (int i = 3; i < n; i++)
            {
                a.Add((a[i - 1] + a[i - 2]) / 2 - a[i - 3]);
                Console.Write($"; {a[i]}");
            }

            Console.WriteLine(); Console.WriteLine();          //Разделяем для красоты:)

            List <double> res = MaxIncrementingSubsequence(a); //Получаем максимальную подпоследовательность

            Console.WriteLine("Длина максимальной подпоследовательности: " + res.Count + "\n");

            Console.WriteLine("Последний элемент подпоследовательности: " + res[res.Count - 1] + "\n");

            Console.WriteLine("Максимальная подпоследовательность:");
            Console.Write(res[0]);
            for (int i = 1; i < res.Count; i++)
            {
                Console.Write("; " + res[i]);
            }

            Console.ReadKey();
        }
コード例 #7
0
 static void AddItem(MyListInt myList)
 {
     Console.WriteLine("Введите число, которое необходимо добавить");
     myList.Add(UpgradedConsole.GetInt());
 }
コード例 #8
0
 public void ChangeShift()
 {
     Console.WriteLine("Введите новый сдвиг");
     Program.Shift = UpgradedConsole.GetInt();
 }