Массив: Найти наименьший элемент в секторе над главной диагональю матрицы... - Lisp
Формулировка задачи:
Срочно нужно сдать лабу,думал сделаю сам,ничего не выходит,помимо этой лабы висит много чего,ничего не успеваю...
Пожалуйста,помогите...
Реализовать на common lisp
Дана матрица размера 7*7.Найти в ней наименьший элемент в секторе над главной диагональю и наименьший элемент в секторе под главной диагональю. Наибольшим из них заменить элементы главной диагонали.
Решение задачи: «Массив: Найти наименьший элемент в секторе над главной диагональю матрицы...»
textual
Листинг программы
(defun matrix-main (w &optional (n 0) (m (max (uni-min w t) (uni-min (cdr w)))) &aux (a (car w))) (when w (cons (progn (setf (nth n a) m) a) (matrix-main (cdr w) (1+ n) m)))) (defun uni-min (w &optional f) (loop for a in w for b from 1 to (1- (length (car w))) minimize (reduce #'min (if f (subseq a b) (subseq a 0 b))))) > (matrix-main '((1 2 3 4) (5 6 -7 8) (9 10 11 12) (13 -14 15 16))) ((-7 2 3 4) (5 -7 -7 8) (9 10 -7 12) (13 -14 15 -7)) > (matrix-main '((1 2 3 4) (5 6 7 8) (9 10 11 12) (13 -14 15 16))) ((2 2 3 4) (5 2 7 8) (9 10 2 12) (13 -14 15 2))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д