ش | ی | د | س | چ | پ | ج |
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
برنامه ی تبدیل مبنای دو به ده و ده به دو - سی شارپ - علیرضا شهامت :
برنامه ای بنویسید که یک عدد در مبنای دو را از کاربر دریافت کند و آن را به مبنای ده ببرد و برعکس.
کدهای برنامه در کنسول اپلیکیشن:
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 ");
}
}
}
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////