;gestione matrici
;----------------------
;prodotto di una matrice per una costante
;matrix9

(prog1
(print "")

(setq matrice(make-array'(3 2):initial-contents'((2 3)(4 5)(6 7))))
(print matrice)

(defun legge(riga colonna costante)
 (dotimes(conta 2 0)
   (setq x(aref matrice riga colonna))
   (print(* costante x))
   (setq colonna(+ colonna 1)))
 (print"------------"))

(setq riga 0)
(setq colonna 0)
(dotimes(conta 3 0)
 (legge riga colonna 10)
 (setq riga(+ riga 1)))

(terpri)
)

;gestione matrici
;estrazione elementi da matrice
;matrix8
;-------------------------
(prog1
(print "")

(setq matrice(make-array'(3 3):initial-contents'
((rosso verde nero)(alto basso corto)(rossi verdi bianchi))))
(print matrice)

(defun legge(riga col)
(dotimes(conta 3 0)
    (print(aref matrice riga col ))
    (setq col(+ col 1)))
(print "-----------"))

(setq riga 0)
(setq col 0)
(dotimes(conta 3 0)
 (legge riga col)
 (setq riga(+ riga 1)))

(terpri)
)

(prog1
(setq matrice(make-array'(3 2):initial-contents'((1 1)(2 2)(3 3))))
(setq r0(array-dimension matrice 0))
(setq r1(array-dimension matrice 1))
(print r0)
(print r1)
(setq riga -1)
(dotimes(conta r0 0)
 (setq colonna 0)
 (setq riga(+ riga 1))
   (dotimes(conta1 r1 0)
    (print(aref matrice riga colonna))
 (setq colonna(+ colonna 1))))
)

;mate6
;cerca dimensione matrice e assegna a cicli DOTIMES

ritorna