Как сделать оператор 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
Объяснение кода листинга программы
Список действий в коде:
- Объявление оператора LETT и его параметров.
- Объявление подпрограммы PRI и ее параметров.
- Объявление переменных A, B, n1, n2, m1, m2, SHARED.
- Задание значений переменным n1, n2, m1, m2.
- Выделение памяти под матрицы A и B.
- Заполнение матрицы B случайными числами.
- Вызов подпрограммы PRI для печати матрицы B.
- Универсализация оператора LETT для работы с любыми матрицами A и B.
- Вызов подпрограммы PRI для печати матрицы A.
- Конец программы. Код позволяет использовать оператор LETT для любых матриц A и B, так как он универсализирован и может работать с матрицами разных размеров.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д