LEZIONE ------- 9/3/01: Introduzione al linguaggio C: Tipi di base, costanti, variabili, dichiarazioni. 12/3/01: Le espressioni: operatori aritmetici, relazionali, assegnazione, incremento/decremento, espressioni condizionali, operatori bit a bit, precedenze e associativita`. 20/3/01: Coversioni di tipo: implicite, esplicite. Istruzioni: if-else, swith. 30/3/01: I cicli nel C: while, for, do_while, break, continue. Alcuni esempi. 2/4/01: Esempi. Compilazione ed esecuzione di programmi C in ambiente Linux. Le funzioni: definizione, passaggio per valore e per riferimento. 11/4/01: Le funzioni: i prototipi, variabili esterne ed automatiche, regole di scoping, inizializzazione. 20/4/01: Programmi C contenuti in piu' file: variabili e funzioni static, extern. Gli header files ed il preprocessore C. La compilazione separata. 24/4/01: Compilazione separata di programmi C in ambiente Linux. Un esempio: calcolo delle occorrenze di interi in una sequenza. 10/5/01: Input/output in C: printf, scanf. Input/output su file: apertura, elaborazione, chiusura. 11/5/01: Un esempio di gestione file: implementazione del comando cat. Un parser per le espressioni aritmetiche: idee generali, algoritmo e implementazione in C. 17/5/01: Implementazione delle successioni in C 28/5/01: Implementazione degli insiemi in C 29/5/01: Implementazione degli alberi binari di ricerca in C 30/5/01: Le tabelle hash aperte e chiuse in C LABORATORIO ----------- 5/4/01: Primi semplici programmi C. 19/04/01: Esercizi sulle funzioni 3/5/01: Compilazione separata ed esercizi su allocazione dinamica della memoria 10/5/01: Esercizi su input/output 17/5/01: Implementazione del tipo di dato successione con array 24/5/01: Implementazione del tipo di dato insieme con liste dinamiche 31/5/01: Esercitazione su un testo di esame