Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 76 стр.

UptoLike

75
образуют требуемое представление числа. Поэтому остатки от деления
заносятся в стек, а затем извлекаются из него для формирования строкового
представления записи числа. Если основание системы счисления больше 10
этом случае для записи числа используются буквенные обозначения), в
строку заносится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).
Решение данной задачи оформлено в виде функции, в которой
используется объект класса Stack и его методы.
// определение функции перевода положительного целого числа
// из десятичной системы счисления в любую заданную
// с основанием от 2 до 16.
// number - положительное целое число
// в десятичной системе счисления
// baseSS основание системы счисления
// функция возвращает строковое представление записи числа
static string PreobrChislo(int number, int baseSS)
{
// создается стек для хранения целых чисел
Stack<int> s = new Stack<int>();
// вычисленные остатки от деления числа
// на основание системы счисления помещаются в стек
while(number != 0)
{
s.Push(number % baseSS);
number = number / baseSS;
}
// формирование строкового представления записи числа
// путем извлечения значений из стека
string res="";
try
{
while(true)
{
int n = s.Pop();
if(n < 10)
res = res + n;
else
res = res + (char)((int)'A' + n - 10);
}
}
catch(Exception e)
{
// когда стек становится пустым,
// представление числа сформировано
}
return res;
}
образуют требуемое представление числа. Поэтому остатки от деления
заносятся в стек, а затем извлекаются из него для формирования строкового
представления записи числа. Если основание системы счисления больше 10
(в этом случае для записи числа используются буквенные обозначения), в
строку заносится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).
      Решение данной задачи оформлено в виде функции, в которой
используется объект класса Stack и его методы.

     // определение функции перевода положительного целого числа
     // из десятичной системы счисления в любую заданную
     // с основанием от 2 до 16.
     // number - положительное целое число
     // в десятичной системе счисления
     // baseSS – основание системы счисления
     // функция возвращает строковое представление записи числа
     static string PreobrChislo(int number, int baseSS)
     {
        // создается стек для хранения целых чисел
        Stack s = new Stack();
        // вычисленные остатки от деления числа
        // на основание системы счисления помещаются в стек
        while(number != 0)
        {
            s.Push(number % baseSS);
            number = number / baseSS;
        }
        // формирование строкового представления записи числа
        // путем извлечения значений из стека
        string res="";
        try
        {
            while(true)
            {
               int n = s.Pop();
               if(n < 10)
                  res = res + n;
               else
                  res = res + (char)((int)'A' + n - 10);
            }
        }
        catch(Exception e)
        {

            // когда стек становится пустым,
            // представление числа сформировано
         }
         return res;
     }


75