no way to compare when less than two revisions

Differences

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


jui:cviko5 [2011/08/16 20:33] (current) – created - external edit 127.0.0.1
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 20:33 by 127.0.0.1
Back to top
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0