Ak je pole korektne reprezentované, stačí spočítať jeho riadky a na zistenie počtu stĺpcov stačí spočítať prvky prvého riadku (počet stĺpcov).


; Vychádzame z toho, že pole je korektne definované a prvý
; riadok má toľko prvkov ako všetky. A predpokladáme, že ak má 
; 0 riadkov a 0 stĺpcov reprezentuje sa prázdnym zoznamom.
; Takéto pole (()) nepovažujeme za korektné, ale možno funkciu rozmerpola
; upraviť tak, aby aj pre takéto pole vrátila (0 0).

; Počet prvkov zoznamu
(defun pocet (zoz)
 (cond ((null zoz) 0)
       (T (+ 1 (pocet (rest zoz))))
 )
) 

; Hlavná funkcia.
; Vráti (riadky stĺpce).
(defun rozmerpola (pole)
 (cond ((null pole) (list 0 0))
       (T (list (pocet pole) (pocet (first pole))))
 )
)

Príklady: 
(rozmerpola '() ) -> (0 0)
(rozmerpola '((1 2 3)(4 5 6))) -> (2 3)

Autori[ ZADANIE | AKO ZAČAŤ | RIEŠENIE ]
Posledná aktualizácia 4. 9. 2001
back  home  next