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

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

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

Перевести действительное число X заданное в системе счисления с основанием q в систему счисления с основанием p (2≤q,p≤16) С помощью генератора случайных чисел (RND) создать и вывести на экран массив А 5x5 случайных действительных чисел в диапазоне от 2 до 4. Определить по А и вывести диагональную матрицу B 10х10 так, чтобы элементы главной диагонали определялись как произведение по соответствующим столбцам. Пожалуйста помогите и объясните как это сделать. Заранее благодарен.

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

textual
Листинг программы
CLS
INPUT "vvedite chislo"; a$
INPUT "vvedite q"; q
INPUT "vvedite p"; p
DIM c(LEN(a$))
u$ = "0123456789ABCDEF"
FOR i = 1 TO LEN(a$): FOR j = 1 TO LEN(u$)
        IF UCASE$(MID$(a$, i, 1)) = MID$(u$, j, 1) THEN c(i) = j - 1
NEXT: NEXT
FOR i = LEN(a$) TO 1 STEP -1
    b = b + c(i) * q ^ r
    r = r + 1
NEXT
DO
    c$ = MID$(u$, (b MOD p) + 1, 1) + c$
    b = b \ p
LOOP UNTIL b = 0
PRINT STRING$(80, 196)
PRINT c$

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

  1. В первой строке объявляются три переменные типа строка: a$, q$ и p$.
  2. Вторая строка запрашивает у пользователя ввод числа, которое нужно перевести.
  3. Третья строка запрашивает у пользователя ввод основания системы счисления, в которую нужно перевести число.
  4. Четвертая строка запрашивает у пользователя ввод коэффициента, на который нужно умножить число при переводе в следующую систему счисления.
  5. Пятая строка инициирует массив c(i) для хранения индексов соответствия цифр числа от 0 до 9 и букв A-F в системе счисления от 10 до 15.
  6. Шестая строка инициализирует строку u$ для хранения всех возможных символов в системе счисления от 0 до 9 и букв A-F.
  7. Седьмая строка начинает цикл перебора всех символов в числе a$.
  8. Восьмая строка проверяет, совпадает ли текущий символ числа a$ с текущим символом строки u$. Если да, то к текущему индексу символа в массиве c(i) добавляется разница между индексами символов в строках a$ и u$.
  9. Девятая строка начинает цикл перебора всех систем счисления от большего значения к меньшему.
  10. В каждой итерации цикла текущий индекс символа в массиве c(i) увеличивается на единицу, а значение переменной b увеличивается на произведение текущего индекса символа в массиве c(i) и значения переменной q, возведенного в степень r.
  11. После каждой итерации цикла значение переменной r увеличивается на единицу.
  12. Если значение переменной b превышает p, то остаток от деления значения переменной b на p добавляется к текущему значению переменной c$, а значение переменной b уменьшается на p.
  13. Цикл продолжается до тех пор, пока значение переменной b не станет равным нулю.
  14. В последней строке выводится значение переменной c$.

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

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