|
Lisp »Tips 'n Tricks
»Lisp & Array
»1
»2
»3
»4
»5
»6
»7
»8
»9
»10
SEM
;|
SEM.LSP
Copyright (C) 2005 Claudio Piccini.
All rights reserved
www.cg-cad.com
Somma gli Elementi di una Matrice bidimensionale
|;
(defun lstArray (NR NC / i j L e str)
(setq i 0)
(while (< i NR)
(setq j 0)
(while (< j NC)
(setq str (strcat "\n Inserire elemento A[" (itoa i) "],[" (itoa j) "]: "))
(setq e (getreal str))
(setq L (append L (list e)))
(setq j (1+ j))
)
(setq A (append A (list L)))
(setq L nil)
(setq i (1+ i))
)
(princ "\n")
(setq A A)
)
(defun sommaArray (NR NC / i j e s)
(setq s 0)
(setq i 0)
(while (< i NR)
(setq j 0)
(while (< j NC)
(setq e (nth j (nth i A)))
(setq s (+ s e))
(setq j (1+ j))
)
(setq i (1+ i))
)
(setq s s)
)
(defun c:sem ( / NR NC A
str i j e
somma
)
; eco OFF
(setvar "cmdecho" 0)
;|
input numero righe=NR
numero colonne=NC
|;
(setq NR (getint "\n Numero righe [3]: "))
(if (= NR nil)(setq NR 3))
(setq NC (getint "\n Numero colonne [4]: "))
(if (= NC nil)(setq NC 4))
;|
inizializza la lista 'array' A
|;
(setq A (lstArray NR NC))
;|
mostra il contenuto dell'array A
|;
(setq i 0)
(while (< i NR)
(setq j 0)
(while (< j NC)
(setq e (nth j (nth i A)))
(setq str (strcat " A[" (itoa i) "],[" (itoa j) "]=" (rtos e 2 2)))
(princ str)
(setq j (1+ j))
)
(princ "\n")
(setq i (1+ i))
)
;|
somma gli elementi dell'array A
|;
(setq somma (sommaArray NR NC))
(setq str (strcat "\n somma=" (rtos somma 2 6)))
(princ str)
;|
ripristina l'ambiente
|;
(setvar "cmdecho" 1)
(princ)
)
;;;eof
|
Test del Lisp
Command: sem
Numero righe [3]: Invio
Numero colonne [4]: Invio
Inserire elemento A[0],[0]: 0.25
Inserire elemento A[0],[1]: 10
Inserire elemento A[0],[2]: 7
Inserire elemento A[0],[3]: 1
Inserire elemento A[1],[0]: -0.3
Inserire elemento A[1],[1]: 18
Inserire elemento A[1],[2]: 13
Inserire elemento A[1],[3]: 444
Inserire elemento A[2],[0]: 1.2
Inserire elemento A[2],[1]: 1.3
Inserire elemento A[2],[2]: 1.4
Inserire elemento A[2],[3]: 3
A[0],[0]=0.25 A[0],[1]=10 A[0],[2]=7 A[0],[3]=1
A[1],[0]=-0.3 A[1],[1]=18 A[1],[2]=13 A[1],[3]=444
A[2],[0]=1.2 A[2],[1]=1.3 A[2],[2]=1.4 A[2],[3]=3
somma=499.85
Lisp »Tips 'n Tricks
Ultimo Aggiornamento_Last Update: 18 Giugno 2005
|
|