Перевод чисел в различные системы счисления - QBasic (28392)

Узнай цену своей работы

Формулировка задачи:

Нужно составить программу: Перевести действительное число X заданное в системе счисления с основанием q в систему счисления с основанием p (2≤q,p≤16) {Использовать правило замещения и правило деления-умножения} P.S Правильно ли я понял что здесь нужно перевести число X из двоичной системы в шестнадцатиричную?

Решение задачи: «Перевод чисел в различные системы счисления»

textual
Листинг программы
' Программа для перевода целых чисел
' в разные системы счисления
 
  LITERAS$ = "0123456789ABCDEF"
  Ishodn$ = "10"   'Число для перевода
 
  n& = 5    'Исходная СС
  p& = 10   'Результирующая СС
    A& = 0
    PZ& = 0
    Result$ = ""
   CLS
  PRINT Ishodn$; " (основание"; n&; ")"
   ' Перевод в десятичную
   DO: kb$ = INKEY$
       IF Ishodn$ = "" THEN EXIT DO
     MN& = INSTR(1, LITERAS$, RIGHT$(Ishodn$, 1)) - 1
     Ishodn$ = LEFT$(Ishodn$, LEN(Ishodn$) - 1)
     A& = A& + MN& * (n& ^ PZ&)
     PZ& = PZ& + 1
   LOOP UNTIL Ishodn$ = ""
 
   ' Перевод из десятичной системы в любую с основанием до 16
   DO: kb$ = INKEY$
     O& = A& MOD p&
     A& = A& / p&
     Result$ = MID$(LITERAS$, O& + 1, 1) + Result$
   LOOP UNTIL A& = 0
 
   PRINT Result$; " (основание"; p&; ")"

Объяснение кода листинга программы

  1. Объявлены переменные:
    • LITERAS$ - строка, содержащая все возможные символы для перевода числа в различные системы счисления;
    • Ishodn$ - строка, содержащая число для перевода;
    • n& - переменная для хранения основания исходной системы счисления;
    • p& - переменная для хранения основания результирующей системы счисления;
    • A& - переменная для хранения значения числа в десятичной системе счисления;
    • PZ& - переменная для хранения количества цифр в числе в десятичной системе счисления;
    • Result$ - строка, в которую будет записан результат перевода числа в результирующую систему счисления.
  2. Выводится сообщение с числом для перевода и его основанием.
  3. Запускается цикл для перевода числа из исходной системы счисления в десятичную. Цикл выполняется до тех пор, пока не будет введен символ в поле ввода. Для каждой цифры числа в исходной системе счисления выполняется:
    • Определяется позиция цифры в строке LITERAS$;
    • Рассчитывается значение A& для данной позиции;
    • Увеличивается значение PZ& на единицу;
    • Результат добавляется к строке Result$.
  4. Запускается цикл для перевода числа из десятичной системы счисления в результирующую систему счисления. Цикл выполняется до тех пор, пока значение A& не станет равным нулю. Для каждой итерации цикла выполняется:
    • Рассчитывается остаток от деления A& на p&;
    • Значение A& уменьшается на полученный остаток;
    • Результат остатка добавляется к строке Result$;
    • Увеличивается значение p& на единицу.
  5. Выводится результат перевода числа в результирующую систему счисления.

Оцени полезность:

10   голосов , оценка 4.5 из 5
Похожие ответы