コード例 #1
0
        public static void Calculation(string action, ref byte[] dataSend, ref BitArray sessionBitArray)
        {
            int      checkSession   = 0;
            double   pow            = 10;
            BitArray bitArrayToCode = new BitArray(bitSendLenght, false);                             //MAIN BIT -144 elementowa tablica bitów


poczatek:
            Console.Write("Podaj liczbe 1 i 2: ");
            val_1 = Console.ReadLine();
            val_2 = Console.ReadLine();
            char nowy;
            int  checkValue1 = 0;
            int  checkValue2 = 0;

            for (int i = 0; i < val_1.Length; i++)
            {
                nowy = val_1[i];
                if (Char.IsDigit(nowy) == false && nowy != '-')
                {
                    checkValue1++;
                }
            }

            for (int i = 0; i < val_2.Length; i++)
            {
                nowy = val_2[i];
                if (Char.IsDigit(nowy) == false && nowy != '-')
                {
                    checkValue2++;
                }
            }


            if (checkSession == 0)
            {
                for (int i = 0; i < sessionBitArray.Count; i++)                                           //Sprawdzanie czy sesja została już nadana
                {
                    if (sessionBitArray[i] == true)
                    {
                        checkSession += (int)Math.Pow(2, pow);
                    }
                    pow--;
                }
            }

            if (checkSession == 0)                                                                    //Nadanie sesji
            {
                for (int i = 0, j = 133; i < sessionBitArray.Count && j < bitArrayToCode.Count; i++, j++)
                {
                    bitArrayToCode[j] = sessionBitArray[i];
                }
            }

            if (checkValue1 > 0 || checkValue2 > 0)
            {
                Console.WriteLine("Proszę wprowadzić same cyfry!");
                goto poczatek;
            }
            else if (val_1 == "" || val_2 == "" || long.Parse(val_1) < 0 || long.Parse(val_1) > int.MaxValue || long.Parse(val_2) < 0 || long.Parse(val_2) > int.MaxValue)
            {
                Console.WriteLine("Liczba z poza przedziału! Dostępny przedział to <0,{0}>", int.MaxValue);
                goto poczatek;
            }
            //else if (action == "dz" && int.Parse(val_2) == 0)
            //{
            //    Console.WriteLine("Błąd dzielenia przez 0!");
            //    goto poczatek;
            //}
            else if (action == "dz" && int.Parse(val_1) < int.Parse(val_2))
            {
                Console.WriteLine("System operuje na liczbach całkowitych, zatem proszę podac dzielnik mniejszy od licznika!");
                goto poczatek;
            }
            else if (action == "o" && int.Parse(val_1) < int.Parse(val_2))
            {
                Console.WriteLine("System operuje na liczbach dodatnich, zatem wartość druga nie może być większa od wartości pierwszej!");
                goto poczatek;
            }
            else if (checkValue1 > 0 || checkValue2 > 0)
            {
                Console.WriteLine("Proszę wprowadzić same cyfry!");
                goto poczatek;
            }
            else    //operacje obliczania
            {
                //Kodowanie i odwracanie  val_1
                byte_1[0] = int.Parse(val_1);
                BitArray bit_1 = new BitArray(byte_1);
                bit_1 = ReverseClass.reverseOrder(bit_1);

                //Kodowanie i odwracanie val_2
                byte_2[0] = int.Parse(val_2);
                BitArray bit_2 = new BitArray(byte_2);
                bit_2 = ReverseClass.reverseOrder(bit_2);

                //Kodujemy ciąg 144 bitów
                CoddingClass.CoddingBitArray(action, bit_1, bit_2, ref bitArrayToCode, sessionBitArray);
                //WriteClass.WriteBitTab(bitArrayToCode);

                dataSend = CoddingClass.CoddingBitToByteArray(bitArrayToCode);
            }
        }
コード例 #2
0
        public static void factorial(string action, ref byte[] dataSend, ref BitArray sessionBitArray)
        {
            BitArray bitArrayToCode = new BitArray(bitSendLenght, false);
            int      checkSession   = 0;
            double   pow            = 10;
            char     nowy;

poczatek:
            int checkValue1 = 0;

            Console.Write("Podaj liczbe: ");
            val_1 = Console.ReadLine();

            for (int i = 0; i < val_1.Length; i++)
            {
                nowy = val_1[i];
                if (Char.IsDigit(nowy) == false && nowy != '-')
                {
                    checkValue1++;
                }
            }

            if (checkSession == 0)
            {
                for (int i = 0; i < sessionBitArray.Count; i++)                                           //Sprawdzanie czy sesja została już nadana
                {
                    if (sessionBitArray[i] == true)
                    {
                        checkSession += (int)Math.Pow(2, pow);
                    }
                    pow--;
                }
            }

            if (checkSession == 0)                                                                    //Nadanie sesji
            {
                for (int i = 0, j = 133; i < sessionBitArray.Count && j < bitArrayToCode.Count; i++, j++)
                {
                    bitArrayToCode[j] = sessionBitArray[i];
                }
            }
            if (checkValue1 > 0)
            {
                Console.WriteLine("Proszę wprowadzić same cyfry!");
                goto poczatek;
            }
            else if (val_1 == "" || long.Parse(val_1) < 0 || long.Parse(val_1) > int.MaxValue)
            {
                Console.WriteLine("Liczba z poza przedziału! Dostępny przedział to <0,{0}>", int.MaxValue);
                goto poczatek;
            }
            else if (int.Parse(val_1) > 12)
            {
                Console.WriteLine("Wynik moze znadjdowac się poza zakresem zmiennej, podaj liczbe mniejsza niż 12!");
                goto poczatek;
            }
            else
            {
                //Kodowanie i odwracanie  val_1
                byte_1[0] = int.Parse(val_1);
                BitArray bit_1 = new BitArray(byte_1);
                bit_1 = ReverseClass.reverseOrder(bit_1);

                //Kodowanie i odwracanie val_2
                byte_2[0] = 0;
                BitArray bit_2 = new BitArray(byte_2);
                CoddingClass.CoddingBitArray(action, bit_1, bit_2, ref bitArrayToCode, sessionBitArray);
                dataSend = CoddingClass.CoddingBitToByteArray(bitArrayToCode);
            }
        }