Вычислите произведение двух чисел: x и y, в десятичной системе счисления - QBasic
Формулировка задачи:
Возможны ли решения на Вейсике для следующих задач. Если да, помогите.
Задача №1 2 балла
Вычислите произведение двух чисел: x и y, если x=10100,00112, y=2016. В ответе укажите результат в десятичной системе счисления.
Ответить »
Решение задачи: «Вычислите произведение двух чисел: x и y, в десятичной системе счисления»
textual
Листинг программы
CLS PRINT f("10100.0011", 2) * f("20", 16) FUNCTION f (a$, q) u$ = "0123456789ABCDEF" k = INSTR(a$, ".") r = (LEN(a$) - k) * (k <> 0) a$ = MID$(a$, 1, k - 1) + MID$(a$, k + 1, LEN(a$) - k) FOR i = LEN(a$) TO 1 STEP -1 j = INSTR(u$, UCASE$(MID$(a$, i, 1))) - 1 res = res + j * q ^ r r = r + 1 NEXT f = res END FUNCTION
Объяснение кода листинга программы
CLS
— очистка экранаPRINT f(
10100.0011, 2) * f(
20, 16)
— вывод произведения двух чисел, переданных в функциюf
FUNCTION f (a$, q)
— определение функцииf
, принимающей два аргумента типа строка (a$
) и целое число (q
)u$ =
0123456789ABCDEF` — инициализация строки
u$` для представления шестнадцатеричной системы счисленияk = INSTR(a$,
.)
— поиск позиции десятичной точки в строкеa$
r = (LEN(a$) — k) * (k <> 0)
— вычисление значения переменнойr
, представляющей мощность десятичной точки в числеa$
a$ = MID$(a$, 1, k — 1) + MID$(a$, k + 1, LEN(a$) — k)
— разделение строкиa$
на числитель и знаменательFOR i = LEN(a$) TO 1 STEP -1
— итерация от последнего символа строкиa$
к первомуj = INSTR(u$, UCASE$(MID$(a$, i, 1))) — 1
— поиск позиции символа в строкеu$
, представляющего шестнадцатеричный эквивалент символа из строкиa$
res = res + j * q ^ r
— обновление значения переменнойres
, представляющей результат вычисления функцииf
r = r + 1
— обновление значения переменнойr
NEXT
— завершение циклаf = res
— присвоение переменнойf
значения, вычисленного в циклеEND FUNCTION
— завершение определения функцииf
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д