Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 74 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
Задача 4. Дано положительное целое число в десятичной системе счисле-
ния. Перевести его в заданную систему счисления.
При переводе числа в заданную систему счисления производится после-
довательное получение остатков от деления числа на основание системы
счисления, которые при записи в обратном порядке образуют требуемое чис-
ло. Поэтому вычисленные остатки от деления заносятся в стек, а затем извле-
каются из него для печати. Если основание системы счисления больше 10 (то-
гда для записи числа используются буквенные обозначения), на печать выво-
дится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).
// определение функции перевода положительного целого числа
// из десятичной системы счисления в любую заданную
// с основанием от 2 до 16
void PrintChislo(int number, int base)
{
Stack s;
s.head=NULL;
int copy=number, n;
// вычисленные остатки от деления числа
// на основание системы счисления помещаются в стек
while(number!=0)
{
PushStack(s,number%base);
number=number/base;
}
// печать разрядов полученного числа
// путем извлечения их значений из стека
printf("Число %d в %d-ой системе счисления - ",
copy,base);
while(PopStack(s,n)==1)
{
if(n<10)
printf("%d",n);
else
printf("%c",'A'+n-10);
}
printf("\n");
}
74
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова                     .
    Задача 4. Дано положительное целое число в десятичной системе счисле-
ния. Перевести его в заданную систему счисления.
    При переводе числа в заданную систему счисления производится после-
довательное получение остатков от деления числа на основание системы
счисления, которые при записи в обратном порядке образуют требуемое чис-
ло. Поэтому вычисленные остатки от деления заносятся в стек, а затем извле-
каются из него для печати. Если основание системы счисления больше 10 (то-
гда для записи числа используются буквенные обозначения), на печать выво-
дится соответствующий символ (10 – ‘A’, 11 – ‘B’ и т.д.).

    // определение функции перевода положительного целого числа
    // из десятичной системы счисления в любую заданную
    // с основанием от 2 до 16
    void PrintChislo(int number, int base)
    {
          Stack s;
          s.head=NULL;
          int copy=number, n;

           // вычисленные остатки от деления числа
           // на основание системы счисления помещаются в стек
            while(number!=0)
            {
                 PushStack(s,number%base);
                 number=number/base;
            }

            // печать разрядов полученного числа
            // путем извлечения их значений из стека
            printf("Число %d в %d-ой системе счисления - ",
                                    copy,base);
            while(PopStack(s,n)==1)
            {
                 if(n<10)
                      printf("%d",n);
                 else
                      printf("%c",'A'+n-10);
            }
            printf("\n");
    }




                                            74