//Priimami parametrai - vektorius
        //Grąžinamas rezultatas - vektorius ir vėliava (flag), ar vektorius buvo pakeistas
        //
        //Funkcija paklausia vartotojo, ar jis norės pakeisti vektoriuje klaidas. Jei vartotojas nori,
        //tuomet klaidos pakeičiamos ir grąžinamas pakeistas vektorius su vėliava, kad vektorius buvo keistas.
        //Jei vartotojas nenori, grąžinamas paduotas vektorius ir vėliava, kad vektorius nekeistas.
        public static Queue <int> ChangeErrors(Queue <int> vector, out bool changed)
        {
            Console.WriteLine("Do you want to change made errors?" + Environment.NewLine +
                              "1 - Yes" + Environment.NewLine +
                              "2 - No");
            var input  = Console.ReadLine();
            var choice = int.Parse(input);

            if (choice == 2)
            {
                changed = false;
                return(vector);
            }
            else
            {
                changed = true;
                Console.Write("Enter at what positions bits should be changed (separate by semicolon)" + Environment.NewLine +
                              "Example to change bits at 1, 5 and 6th positions: 1;5;6" + Environment.NewLine);
                input = Console.ReadLine();
                var errorPositionStringList = input.Split(';');
                var errorPositionList       = errorPositionStringList.Select(positionString => int.Parse(positionString)).ToList();
                var vectorAsList            = ErrorController.ChangeErrors(vector.ToList(), errorPositionList);
                var changedVector           = ConvertingHelper.ConvertListToQueue(vectorAsList);
                return(changedVector);
            }
        }
        //Nieko nepriima
        //Grąžinamas rezultatas - vektorius
        //
        //Funkcija paprašo vartotojo įvesti vektorių ir grąžina jį kaip bitų eilę
        public static Queue <int> InputVector()
        {
            Console.WriteLine("Input the vector (made of 0s and 1s) to encode and press enter:" + Environment.NewLine +
                              "Example: 1010");
            var input        = Console.ReadLine();
            var charBitArray = input.ToCharArray();
            var vector       = ConvertingHelper.ConvertListToQueue(charBitArray);

            return(vector);
        }
        //Nieko nepriima
        //Grąžinamas rezultatas - vektorius
        //
        //Funkcija paprašo vartotojo įvesti tekstą, jį paverčia į bitų eilę ir grąžina
        public static Queue <int> InputText()
        {
            Console.WriteLine("Input the text to encode and press enter.");
            var input = Console.ReadLine();
            var sb    = new StringBuilder();

            foreach (var c in input)
            {
                sb.Append(Convert.ToString(c, 2).PadLeft(8, '0'));
            }
            var bitCharArray   = sb.ToString().ToCharArray();
            var preparedVector = ConvertingHelper.ConvertListToQueue(bitCharArray);

            return(preparedVector);
        }