Не стандартная матрица и ее сумма - QBasic

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

Дана матрица размером 4×6. Она заполнена случайными числами. Всего 48 чисел. То есть вдвое больше, чем элементов матрицы. Как это сделано? Первое число идет в качестве целой части элемента матрицы, а второе число в качестве дробной части элемента матрицы. пример, два числа 22 и 33 записать в виде одного элемента матрицы. Это можно сделать так 22,33 или так 33,22 Требуется найти "сумму матрицы" Сумма вычисляется так. Каждый элемент матрицы представляется в виде дроби. В числитель идет меньшее число, а в знаменатель большее. Пример 22,33 = 22/33. И все надо сложить. (Программа проверена) Вопрос Как еще можно представить два числа в виде одного элемента матрицы и решить эту же самую задачу?
CLS
RANDOMIZE TIMER
n = 4
m = 6
DIM x(n, m)
 
FOR i = 1 TO n
FOR j = 1 TO m
   a = FIX(40 * RND) + 1
   b = FIX(40 * RND) + 1
   x(i, j) = a + b / 100
   PRINT USING "  ##.##"; x(i, j);
NEXT j: PRINT
NEXT i: PRINT
 
FOR i = 1 TO n
FOR j = 1 TO m
   a = INT(x(i, j))
   b = 100 * (x(i, j) - a)
   IF a > b THEN SWAP a, b
   s = s + a / b
NEXT j, i
 
PRINT "S ="; s
END

Код к задаче: «Не стандартная матрица и ее сумма - QBasic»

textual
TYPE T
    n AS INTEGER ' numerator = числитель
    d AS INTEGER ' denominator = знаменатель
END TYPE
 
CLS
 
RANDOMIZE TIMER
n = 4
m = 6
DIM x(n, m) AS T
 
FOR i = 1 TO n
FOR j = 1 TO m
   x(i, j).n = FIX(40 * RND) + 1
   x(i, j).d = FIX(40 * RND) + 1
   PRINT USING "  ##/##"; x(i, j).n; x(i, j).d;
NEXT j: PRINT
NEXT i: PRINT
 
FOR i = 1 TO n
FOR j = 1 TO m
   a = x(i, j).n
   b = x(i, j).d
   IF a > b THEN SWAP a, b
   s = s + a / b
NEXT j, i
 
PRINT "S ="; s
END

12   голосов, оценка 3.917 из 5


СОХРАНИТЬ ССЫЛКУ