وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای - تأسیس شده در سال 1396
وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای

وبلاگ رسمی علیرضا شهامت در بلاگ اسکای - تأسیس شده در سال 1396

برنامه ی تبدیل مبنای دو به ده و ده به دو - سی شارپ - علیرضا شهامت

برنامه ی تبدیل مبنای دو به ده و ده به دو - سی شارپ - علیرضا شهامت  :

برنامه ای بنویسید که یک عدد در مبنای دو را از کاربر دریافت کند و آن را به مبنای ده ببرد و برعکس.



کدهای برنامه در کنسول اپلیکیشن:




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;



namespace TbMb
{
    class Program
    {

        /////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////
        /////////////////////////////////////////////////////////



        static void Main(string[] args)
        {





            ulong number1;
            ulong a;
            ulong b;
            ulong q;
            ulong r;
            ulong p;
            ulong number2;
            char DYWTR;


            Console.Write("\n  " +
                "starting the method \"Main\"" +
                "\n  ");

            Tabdile_Mabnaa_az_2_be_10(
                out number1, out a, out b, out q, out r,
                out p, out number2, out DYWTR
                );



            Tabdile_Mabnaa_az_10_be_2(
                ref number1, ref a, ref b, ref q, ref r,
                ref p, ref number2, ref DYWTR
                );





            Console.Write("\n  " +
                "ending the method \"Main\"" +
                "\n  ");


            Console.Write("\n  " +
                "Please enter something to exit : " +
                "\n\n  ");


            Console.ReadLine();


        }


        // **********************************************************
        // **********************************************************
        // **********************************************************


        private static void Tabdile_Mabnaa_az_10_be_2(
            ref ulong number1_, ref ulong a_, ref ulong b_, ref ulong q_, ref ulong r_,
            ref ulong p_, ref ulong number2_, ref char DYWTR_
            )
        {



            Console.Write("\n  " +
                "starting the method \"Tabdile_Mabnaa_az_10_be_2\"" +
                "\n\n  ");


            int number1, a, b, q, r, p, number2;

            char DYWTR = 'y';

            while (true)
            {

                b = 2; p = 1; number2 = 0;

                number1 = int.Parse(Console.ReadLine());

                a = number1;

                q = a / b;

                while (q != 0)
                {
                    r = a % b;

                    number2 += r * p;

                    q = a / b;

                    a = q;

                    p *= 10;
                }

                Console.WriteLine(number1 + " in base 10 is equal to " + number2 + " in base 2");

                Console.WriteLine("\n\n  Do you want to repeat ? (y/n) ...\n\n  ");

                DYWTR = char.Parse(Console.ReadLine());

                if (DYWTR == 'N' || DYWTR == 'n')
                {
                    break;
                }
            }



            Console.Write("\n  " +
                "ending the method \"Tabdile_Mabnaa_az_10_be_2\"" +
                "\n  ");



        }

        private static void Tabdile_Mabnaa_az_2_be_10(
            out ulong number1, out ulong a, out ulong b, out ulong q, out ulong _r,
            out ulong p, out ulong number2, out char DYWTR
            )
        {



            Console.Write("\n  " +
                "starting the method \"Tabdile_Mabnaa_az_2_be_10\"" +
                "\n\n  ");




            _r = 0;

            DYWTR = 'y';

            Boolean wrong;

            while (true)
            {
                wrong = false;

                number1 = ulong.Parse(Console.ReadLine());

                p = 1; b = 10; a = number1; number2 = 0;

                q = a / b;

                while (q != 0)
                {
                    _r = a % b;

                    if (_r > 1)
                    {
                        Console.WriteLine("  Wrong digit for number in base 2 !!!");

                        wrong = true;
                    }

                    number2 += _r * p;

                    q = a / b;

                    a = q;

                    p *= 2;

                }


                if (wrong == false)
                {
                    Console.WriteLine("  ( " + number1 + " in base 2 ) is equal to ( " + number2 + " in base 10 ) ");
                }


                Console.WriteLine("\n\n  Do you want to repeat ? (y/n) ...\n\n  ");

                DYWTR = char.Parse(Console.ReadLine());

                if (DYWTR == 'N' || DYWTR == 'n')
                {
                    break;
                }

            }



            Console.Write("\n  " +
                "ending the method \"Tabdile_Mabnaa_az_2_be_10\"" +
                "\n  ");



        }
    }
}



/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////