===== Diario del Laboratorio di Algoritmi e Strutture dei Dati ===== ==== Laboratorio dell'1.3.2013 ==== Seminario su Python tenuto dal dott. Giuseppe Ottaviano {{:matematica:asd:asd_12:indice.zip|Codice Python}} visto a lezione per costruire un indice sulle parole di un testo: il file ''indice.py'' è il codice discusso mentre il file ''indice2.py'' è una sua versione più compatta. Libri on-line per imparare Python: * Zed A. Shaw, Learn Python The Hard Way, [[http://learnpythonthehardway.org/book/]] * Allen Downey, Think Python - How to Think Like a Computer Scientist, [[http://www.greenteapress.com/thinkpython/thinkpython.pdf]] ==== Laboratorio dell'8.3.2013 ==== {{:matematica:asd:asd_12:lab20130308.zip|Codice C}} visto a lezione per creare numeri pseudo-random. Per saperne di più: * Sito con sequenze random da scaricare (in alternativa alla funzione rand): [[http://www.random.org]] * Tabellina riassuntiva dei comandi per la ''bash'' shell: [[http://cli.learncodethehardway.org/bash_cheat_sheet.pdf]] * Tabellina riassuntiva del comando ''gcc'' per compilare: [[http://www.cs.berkeley.edu/~jrs/61bs02/lab/lab15/gcc-refcard.ps]] ==== Laboratorio del 19.3.2013 ==== {{:matematica:asd:asd_12:lab20130319.zip|Codice C}} per la gestione della coda mediante liste: da studiare per seguire la stessa impostazione (header ''coda.h'', implementazione ''coda.c'', driver ''main.c''). Per saperne di più: * Gestione della coda mediante array circolare [CGGR, par. 2.3.1] * Uso di ''#ifndef'' per includere solo una volta lo header C: [[http://en.wikipedia.org/wiki/Include_guard]] * Uso di ''assert'' per verificare le invarianti durante l'esecuzione del codice C: [[http://en.wikipedia.org/wiki/Assert.h]] ==== Laboratorio del 19.3.2013 ==== Ricerca binaria e sue varianti per trovare l'occorrenza più a sinistra e a destra in tempo logaritmico. Per saperne di più: * [CGGR, par. 3.3 ed esercizi 3.1 e 3.2]