Массив: Найти наименьший элемент в секторе над главной диагональю матрицы... - 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))

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


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

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

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