Differences

This shows you the differences between two versions of the page.

Link to this comparison view

jui:cviko5 [2011/08/16 22:33] (current)
Line 1: Line 1:
 +====== JUI - 5. cviceni ======
 +===== POle =====
 +
 +  * klasicky - vytvoreni - ''​make-array'',​
 +
 +<code lisp>
 +;;​3-rozmerne pole s dim = 2x4x6
 +(setf pole (make-array '(2 4 6) :​initial-element nil ))
 +
 +;;pristup k prvku
 +(aref pole 0 2 5) ;vypise nil - nic jsme tam nezaradili
 +
 +;;prirazeni
 +(setf (aref pole 0 2 5) '(1 3) )
 +
 +</​code>​
 +===== struktury =====
 +<code lisp>
 +(defstruct Zaznam
 +   ​(hodnota (progn (princ "Zadej cislo ")))
 +   (levy nil)
 +   pravy
 +)
 +
 +;;vytvoreni instance
 +(setf z (make-zaznam)) ; otaze se na jmeno
 +
 +;;prirazeni hodnoty
 +(setf (zaznam-levy z))
 +</​code>​
 +
 +===== hashovaci tabulka =====
 +  * dvojice <klic, hodnota>
 +  * vyhoda: rychle hledani v tabulce)
 +
 +<code lisp>
 +;;​vytvoreni;​ make-hash-table
 +(setf ht (make-hash-table))
 +
 +;;pristup k prvkum: gethash
 +
 +(gethash klic ht) - hashuje podle cehokoliv
 +;;​neexistuje - vraci nil
 +
 +(setf (gethash 'klic ht) 10)
 +
 +;;​odstraneni
 +(remhash 'klic ht)
 +
 +
 +;;​prochazeni hash tabulkou
 +maphash funke tabulka - ma 2 parametry: klic, hodnota
 +
 +;;pr. vypsani prvku tabulky
 +(maphash #'​(lambda (k h) 
 +               ​(format t "Klic: ~A hodnota: ~A ~%" k h)
 +            )
 +          ht
 +)
 +</​code>​
 +
 +<code lisp>
 +;; pomoci hashovaci tabulky spocete cetnost ​ prvku v seznamu
 +(defun spocti-cetnosti (seznam)
 +  (let (ht)
 +     (setf ht (make-hash-table))
 +     ​(mapcar #'​(lambda (a)
 +                   (setf (gethash a ht) (if (gethash a ht) (+ 1 (gethash a ht)) 1))
 +               ​) ​
 +             ​seznam
 +     )
 +     ​(maphash #'​(lambda (k h) 
 +                  (format t "Prvek ~A ma cetnost ~A ~%" k h)
 +                )
 +              ht 
 +     ​) ​
 +  )
 +)
 +
 +
 +;;mame orientovany acyklicky graf reprezentovany seznamem
 +( (a b c) (b c d) (c d) (d))
 +;;zjistit, do jakych uzlu vede cesta
 +
 +
 +</​code>​
  
jui/cviko5.txt · Last modified: 2011/08/16 22:33 (external edit)
Back to top
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0