Beispiel #1
0
 static void Main(string[] args)
 {
     for (;;)
     {
         //  try
         {
             IterativeCode i = new IterativeCode();
             Console.WriteLine("Enter Xk:");
             i.EnterWord(true);
             i.CalcRKN();
             Console.WriteLine("\nr = {0}; k = {1}; n = {2};", i.r, i.k, i.n);
             i.CalcXn();
             Console.WriteLine("\nXn = {0}", i.Xn.ToStr());
             Console.WriteLine("\nXk in matrix:");
             i.printM(i.GenerateMatrixView(i.Xk));
             Console.WriteLine("\nXn in matrix:");
             i.printM(i.GenerateMatrixViewWithCheckSymbols(i.Xk, i.R));
             i.GenerateHelpMatrix();
             Console.WriteLine("\nHelp matrix: ");
             i.printM(i.H);
             Console.WriteLine("Enter Yn");
             i.EnterWord(false);
             i.GetYkYr();
             Console.WriteLine("\nYn = {0}\nYk = {1}\nYr = {2}", i.Yn.ToStr(), i.Yk.ToStr(), i.Yr.ToStr());
             i.CalcS();
             Console.WriteLine("\nYr = {0}\n_Yr = {1}\nS = {2}", i.Yr.ToStr(), i._Yr.ToStr(), i.S.ToStr());
             i.CorrectError();
             Console.WriteLine("E = {0}\nCorrected Yn = {1}", i.E.ToStr(), i.Yn.ToStr());
             // IterativeCode ic = new IterativeCode();
             // Console.WriteLine("Enter Xk");
             // ic.EnterWord(true);
             // ic.CalcRKN();
             // Console.WriteLine("k = {0}, x = {1}, y = {2}", ic.k, ic.rr, ic.rc);
             // ic.GenerateMatrixView(true);
             // ic.printM(ic.Hin);
             // ic.GetHelpMatrix();
             // ic.printM(ic.H);
             // Console.WriteLine("rr = {0}, rc={1}", ic.H.Length, ic.H[0].Length);
             // Console.WriteLine("Enter Yn");
             // ic.EnterWord(false);
             // ic.GenerateMatrixView(false);
             // ic.printM(ic.Hout);
             // ic.CalcS();
             // Console.WriteLine("Yr = {0}; _Yr = {1}; Sindrom = {2}",ic.Yr.ToStr(), ic._Yr.ToStr(), ic.S.ToStr());
             //// ic.CorrectError();
             //Console.WriteLine("Corrected Matrix");
             //ic.printM(ic.Hout);
         }
         //catch (Exception e)
         //{
         //    Console.WriteLine(e.Message);
         //}
     }
 }
Beispiel #2
0
        static void Main(string[] args)
        {
            for (;;)
            {
                //  try
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.WriteLine("Enter your word, davai");
                    string word = Console.ReadLine();
                    Console.WriteLine("Enter block size:");
                    int                  blockSize = Int32.Parse(Console.ReadLine());
                    List <string>        subWords  = word.SplitS(blockSize).ToList <string>();
                    List <bool[]>        EncWords  = new List <bool[]>();
                    List <IterativeCode> Codes     = new List <IterativeCode>();
                    IterativeCode        tmp;
                    foreach (var e in subWords)
                    {
                        tmp = new IterativeCode(true, e);
                        Codes.Add(tmp);
                        Codes.Last().Encode();
                        Console.WriteLine(Codes.Last().Xn.ToStr());
                        EncWords.Add(Codes.Last().Xn);
                    }
                    int n = EncWords[0].Length;
                    Permutator.Permutator p = new Permutator.Permutator(EncWords, n);
                    bool[] permutatedWord   = p.Permutate();
                    Console.WriteLine("Permutated word: \n{0}", permutatedWord.ToStr());
                    Console.WriteLine("Input indexes to reverce bits");
                    int[] ind = Console.ReadLine().Split(' ').Select(i => Int32.Parse(i)).ToArray();
                    for (int i = 0; i < ind.Count(); i++)
                    {
                        permutatedWord[ind[i]] = !permutatedWord[ind[i]];
                    }
                    Console.WriteLine("Permutated word with errors:\n{0}", permutatedWord.ToStr());
                    Console.WriteLine("Depermutated word:");
                    List <bool[]> depWords = p.Depermutate(permutatedWord);
                    foreach (var e in depWords)
                    {
                        Console.WriteLine(e.ToStr());
                    }
                    Console.WriteLine("Corrected vsya eta hueta");
                    for (int i = 0; i < depWords.Count; i++)
                    {
                        Codes[i].EnterWord(depWords[i]);
                        Codes[i].Decode();
                        Console.WriteLine(Codes[i].Yn.ToStr());
                    }



                    //    List<bool[]> l = new List<bool[]>();
                    //    //IterativeCode ic = new IterativeCode();
                    //    Console.WriteLine("Enter Xk:");
                    //    // i.EnterWord(true);
                    //    ic.CalcRKN();
                    //    Console.WriteLine("\nr = {0}; k = {1}; n = {2};", ic.r, ic.k, ic.n);
                    //    ic.CalcXn();

                    //    Permutator.Permutator p = new Permutator.Permutator(l, ic.k, ic.r);
                    //    bool[] r = p.Permutate();
                    //    Console.WriteLine("Permutated res:\n{0}", r.ToStr());
                    //    Console.WriteLine("\nXn = {0}", ic.Xn.ToStr());
                    //    Console.WriteLine("\nXk in matrix:");
                    //    ic.printM(ic.GenerateMatrixView(ic.Xk));
                    //    Console.WriteLine("\nXn in matrix:");
                    //    ic.printM(ic.GenerateMatrixViewWithCheckSymbols(ic.Xk, ic.R));
                    //    ic.GenerateHelpMatrix();
                    //    Console.WriteLine("\nHelp matrix: ");
                    //    ic.printM(ic.H);
                    //    Console.WriteLine("Enter Yn");
                    //    ic.EnterWord(false);
                    //    ic.GetYkYr();
                    //    Console.WriteLine("\nYn = {0}\nYk = {1}\nYr = {2}", ic.Yn.ToStr(), ic.Yk.ToStr(), ic.Yr.ToStr());
                    //    ic.CalcS();
                    //    Console.WriteLine("\nYr = {0}\n_Yr = {1}\nS = {2}", ic.Yr.ToStr(), ic._Yr.ToStr(), ic.S.ToStr());
                    //    ic.CorrectError();
                    //    Console.WriteLine("E = {0}\nCorrected Yn = {1}", ic.E.ToStr(), ic.Yn.ToStr());
                    //}
                    //catch (Exception e)
                    //{
                    //    Console.WriteLine(e.Message);
                    //}
                }
            }
        }