Массив: Найти наименьший элемент в секторе над главной диагональю матрицы... - 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))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д