Как сделать оператор LETT универсальным, пригодным для любых матриц? - QBasic

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

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

В QBasic есть оператор LET. Правда особой необходимости в нем нет. А вот ввести оператор, который бы присваивал матрице А() значения матрицы B() было бы неплохо. Я дал этому оператору имя LETT. Легко запомнить по аналогии с LET. Эта программа реализует выше сказанное. Следует отметить, что обе матрицы имеют равную размерность и размеры. Вопрос. Как сделать оператор LETT универсальным, пригодным для любых матриц?
Дарю вам этот код и радость программирования на QBasic!

Решение задачи: «Как сделать оператор LETT универсальным, пригодным для любых матриц?»

textual
Листинг программы
REM   Оператор присвоения LETT
REM   LETT A(), B()     { A() = B() }
 
DECLARE SUB LETT (A%(), B%())
DECLARE SUB PRI (c%(), n%, m%)
DEFINT A-Z
OPTION BASE 1
RANDOMIZE TIMER
CLS
 
DIM SHARED n1
DIM SHARED n2
DIM SHARED m1
DIM SHARED m2
 
n1 = 2 + 5 * RND
n2 = 2 + 5 * RND
m1 = 2 + 5 * RND
m2 = 2 + 5 * RND
 
DIM A(n1, m1) AS INTEGER
DIM B(n2, m2) AS INTEGER
 
FOR i = 1 TO n2
FOR j = 1 TO m2
   B(i, j) = 9 * RND
NEXT j
NEXT i
 
CALL PRI(B(), n2, m2)
LETT A(), B()
PRINT
CALL PRI(A(), n1, m1)
 
END
 
SUB LETT (A() AS INTEGER, B() AS INTEGER)
  
DIM n AS INTEGER
DIM m AS INTEGER
 
   IF n1 >= n2 AND m1 >= m2 THEN
      n = n2
      m = m2
   ELSEIF n1 >= n2 AND m1 < m2 THEN
      n = n2
      m = m1
   ELSEIF n1 < n2 AND m1 >= m2 THEN
      n = n1
      m = m2
   ELSE
      n = n1
      m = m1
   END IF
 
   FOR i = 1 TO n
   FOR j = 1 TO m
      A(i, j) = B(i, j)
   NEXT j
   NEXT i
 
END SUB
 
SUB PRI (c() AS INTEGER, n AS INTEGER, m AS INTEGER)
   FOR i = 1 TO n
   FOR j = 1 TO m
      PRINT c(i, j);
   NEXT j: PRINT : NEXT i
END SUB

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

Список действий в коде:

  1. Объявление оператора LETT и его параметров.
  2. Объявление подпрограммы PRI и ее параметров.
  3. Объявление переменных A, B, n1, n2, m1, m2, SHARED.
  4. Задание значений переменным n1, n2, m1, m2.
  5. Выделение памяти под матрицы A и B.
  6. Заполнение матрицы B случайными числами.
  7. Вызов подпрограммы PRI для печати матрицы B.
  8. Универсализация оператора LETT для работы с любыми матрицами A и B.
  9. Вызов подпрограммы PRI для печати матрицы A.
  10. Конец программы. Код позволяет использовать оператор LETT для любых матриц A и B, так как он универсализирован и может работать с матрицами разных размеров.

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


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

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

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