Курсовая работа: ЛИСП-реализация операций над матрицами

;ПОЛУЧАЕМ РАЗМЕРНОСТЬ ВТОРОЙ МАТРИЦЫ

(SETQ ROW_COL2 (READ INPUT_STREAM))

;ПОЛУЧАЕМ МАТРИЦУ

(SETF MATRIX2 (READ INPUT_STREAM))

;ПОЛУЧАЕМ СПИСОК ЧИСЕЛ, НА КОТОРЫЕ БУДЕМ УМНОЖАТЬ МАТРИЦУ

(SETQ LIST_NUM2 (READ INPUT_STREAM))

(CLOSE INPUT_STREAM)

;ЗАПИСЫВАЕМ ЧИСЛО СТРОК И СТОЛБЦОВ МАТРИЦЫ 1

(SETQ ROW1 (CAR ROW_COL1))

(SETQ COL1 (CADR ROW_COL1))

;ЗАПИСЫВАЕМ ЧИСЛО СТРОК И СТОЛБЦОВ МАТРИЦЫ 2

(SETQ ROW2 (CAR ROW_COL2))

(SETQ COL2 (CADR ROW_COL2))

;СЛОЖЕНИЕ МАТРИЦ

(DEFUN SUM_MATRIX (MATR1 MATR2 R1 R2 C1 C2)

;МАССИВ СУММЫ ДВУХ МАТРИЦ

(DECLARE (SPECIAL RES_MATRIX))

;ЕСЛИ ЧИСЛО СТРОК МАТРИЦЫ 1 НЕ РАВНО ЧИСЛУ СТРОК И СТОЛБЦОВ МАТРИЦЕ 2, ТО СЛОЖЕНИЕ МАТРИЦ НЕВОЗМОЖНО

(IF (OR (/= R1 R2) (/= C1 C2)) '"It is not possible to calculate the sum of matrices"

(PROGN

(SETQ RES_MATRIX (MAKE-ARRAY (LIST R1 C1) :ELEMENT-TYPE 'INTEGER :INITIAL-ELEMENT 0))

(DO

((I 0))

((>= I R1))

(DO

((J 0))

((>= J C1))

(SETF (AREF RES_MATRIX I J) (+ (AREF MATR1 I J) (AREF MATR2 I J)))

(SETQ J (+ J 1))

К-во Просмотров: 545
Бесплатно скачать Курсовая работа: ЛИСП-реализация операций над матрицами