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 - '' | ||
+ | |||
+ | <code lisp> | ||
+ | ;; | ||
+ | (setf pole (make-array '(2 4 6) : | ||
+ | |||
+ | ;;pristup k prvku | ||
+ | (aref pole 0 2 5) ;vypise nil - nic jsme tam nezaradili | ||
+ | |||
+ | ;;prirazeni | ||
+ | (setf (aref pole 0 2 5) '(1 3) ) | ||
+ | |||
+ | </ | ||
+ | ===== struktury ===== | ||
+ | <code lisp> | ||
+ | (defstruct Zaznam | ||
+ | | ||
+ | (levy nil) | ||
+ | pravy | ||
+ | ) | ||
+ | |||
+ | ;;vytvoreni instance | ||
+ | (setf z (make-zaznam)) ; otaze se na jmeno | ||
+ | |||
+ | ;;prirazeni hodnoty | ||
+ | (setf (zaznam-levy z)) | ||
+ | </ | ||
+ | |||
+ | ===== hashovaci tabulka ===== | ||
+ | * dvojice <klic, hodnota> | ||
+ | * vyhoda: rychle hledani v tabulce) | ||
+ | |||
+ | <code lisp> | ||
+ | ;; | ||
+ | (setf ht (make-hash-table)) | ||
+ | |||
+ | ;;pristup k prvkum: gethash | ||
+ | |||
+ | (gethash klic ht) - hashuje podle cehokoliv | ||
+ | ;; | ||
+ | |||
+ | (setf (gethash 'klic ht) 10) | ||
+ | |||
+ | ;; | ||
+ | (remhash 'klic ht) | ||
+ | |||
+ | |||
+ | ;; | ||
+ | maphash funke tabulka - ma 2 parametry: klic, hodnota | ||
+ | |||
+ | ;;pr. vypsani prvku tabulky | ||
+ | (maphash #' | ||
+ | | ||
+ | ) | ||
+ | ht | ||
+ | ) | ||
+ | </ | ||
+ | |||
+ | <code lisp> | ||
+ | ;; pomoci hashovaci tabulky spocete cetnost | ||
+ | (defun spocti-cetnosti (seznam) | ||
+ | (let (ht) | ||
+ | (setf ht (make-hash-table)) | ||
+ | | ||
+ | (setf (gethash a ht) (if (gethash a ht) (+ 1 (gethash a ht)) 1)) | ||
+ | | ||
+ | | ||
+ | ) | ||
+ | | ||
+ | (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 | ||
+ | |||
+ | |||
+ | </ | ||