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

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

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

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

Решение задачи: «Не стандартная матрица и ее сумма»

textual
Листинг программы
  1. TYPE T
  2.     n AS INTEGER ' numerator = числитель
  3.     d AS INTEGER ' denominator = знаменатель
  4. END TYPE
  5.  
  6. CLS
  7.  
  8. RANDOMIZE TIMER
  9. n = 4
  10. m = 6
  11. DIM x(n, m) AS T
  12.  
  13. FOR i = 1 TO n
  14. FOR j = 1 TO m
  15.    x(i, j).n = FIX(40 * RND) + 1
  16.    x(i, j).d = FIX(40 * RND) + 1
  17.    PRINT USING "  ##/##"; x(i, j).n; x(i, j).d;
  18. NEXT j: PRINT
  19. NEXT i: PRINT
  20.  
  21. FOR i = 1 TO n
  22. FOR j = 1 TO m
  23.    a = x(i, j).n
  24.    b = x(i, j).d
  25.    IF a > b THEN SWAP a, b
  26.    s = s + a / b
  27. NEXT j, i
  28.  
  29. PRINT "S ="; s
  30. END

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

В этом коде используется тип данных T, который определен как структура с двумя полями: n типа INTEGER (целое число) и d типа INTEGER. Затем создается матрица x размером n на m (в данном случае 4 на 6) типа T. Далее, в каждой ячейке матрицы x значения числителя и знаменателя устанавливаются равными случайным целым числам от 1 до 80 с помощью функции RND. После этого, для каждой пары чисел в матрице x проверяется, если числитель больше знаменателя, то они меняются местами с помощью команды SWAP. Затем, для каждой пары чисел в матрице x вычисляется сумма числителя и знаменателя и добавляется к общей сумме s. В конце, выводится значение переменной s.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы