Programma del Corso A.A. 2008/09
Attenzione: Il programma definitivo sara' disponibile alla fine del corso.
N.B. Il riferimento ai capitoli dei libri consigliati č puramente indicativo. Di fatto, il manuale di C va studiato PER INTERO.
Unitā Didattica 1. Introduzione
Concetto di algoritmo; linguaggi di programmazione; sistemi informatici; architettura di un sistema informatico; software; ambiente di programmazione; storia del C; librerie; il linguaggio C; note sul C.
Deitel & Deitel: Cap. 1
Ceri, Mandrioli, Ghezzi: Cap. 1, 2
Kelley, Pohl: Cap. 0
Unitā Didattica 2. Introduzione allo sviluppo di programmi
Analizzare il problema, progettare una soluzione tramite pseudocodice e tramite diagramma di flusso, accertarsi della correttezza, perseguire l'efficienza.
Flusso di controllo; programmazione strutturata.
Selezione (if, if else, if nidificati, operzione condizionale).
Ciclo (while).
Istruzioni composte
Deitel & Deitel: Cap. 3
Kelley, Pohl: Cap. 4
Unitā Didattica 3. Introduzione alla Programmazione in C
Commenti, terminatori
printf;
Preprocessore e sue direttive: include e define
Variabili
Aritmentica del C; operatori di uguaglianza e relazionali
Operatori di assegnamento
Deitel & Deitel: Cap. 2, 3, 4, 13
Kelley, Pohl: Cap. 1, 2, 8
Unitā Didattica 4. Il controllo del programma C
cicli while, for e do while
printf e scanf
break e continue; switch
Deitel & Deitel Cap. 3
Kelley, Pohl: Cap. 4
Unitā Didattica 5. Le variabili in C
tipi di dato: char, int, long, short, unsigned, float, double, long double
visibilitā delle variabili: variabili locali e globali
Kelley & Pohl Cap. 3, 5
Unitā Didattica 6. Le funzioni in C
modularitā dei programmi;
definizione, prototipo e chiamata di funzione;
return; tipo void;
chiamata per valore e per riferimento;
Deitel & Deitel: Cap. 5
Kelley & Pohl: Cap. 5
Unitā Didattica 7: I vettori
Definizione, nome e tipo di un vettore; indici;
inizializzazione di un vettore;
memoria allocata da un vettore;
sizeof
vettori come parametri per le funzioni;
ordinamento di un vettore: selection sort e bubble sort;
uso di un flag per uscire da un ciclo;
ricerca di un elememto in un vettore: ricerca lineare e binaria;
vettori multidimensionali
Deitel & Deitel: Cap. 6
Kelley & Pohl: Cap. 6
Unitā Didattica 8: La ricorsione
Cos?č la ricorsione, funzioni ricorsive, chiamate ricorsive;
ricorsione vs iterazione;
considerazioni sull?efficienza;
esempi;
mutua ricorsione
Deitel & Deitel: Cap. 5
Kelley & Pohl: Cap. 5
Unitā Didattica 9: I puntatori
Cos?č un puntatore, dichiarare un puntatore, operatori sui puntatori;
assegnare un puntatore, stampare un puntatore;
l?aritmetica dei puntaori;
le relazioni tra puntatori;
relazione tra puntatori e vettori;
allocazione dinamica della memoria
Deitel & Deitel: Cap. 7
Kelley & Pohl: Cap. 6
Unitā Didattica 10: Funzioni di Libreria
funzioni matematiche, funzioni per i caratteri, funzioni data e ora, numeri pseudocasuali
Deitel & Deitel: App. G
Kelley & Pohl: App. A
Unitā Didattica 11: Strutture e Unioni
Strutture, definizione di strutture, inizializzazione di strutture, accesso ai membri delle strutture, uso delle strutture come parametri di funzione;
typedef;
unioni;
costanti di enumerazione
Deitel & Deitel: Cap. 10
Kelley & Pohl: Cap. 7, 9
Unitā Didattica 12: Le liste
Definizione di struttura ricorsiva e di lista concatenata;
operazioni su liste: verifica lista vuota, stampa, inserimento in testa, cancellazione, somma degli elementi di una lista;
funzioni ricorsive per liste;
confronto tra liste e vettori;
pile e code, definizione e loro implementazione su liste e su vettori;
liste doppiamente puntate
Deitel & Deitel: Cap. 12
Kelley & Pohl: Cap. 10
Unitā Didattica 13: Debugging
Definizione di debugging, strumenti di debugging;
ricerca degli indizi;
soluzione nel caso in cui non ci siano indizi;
errori non riproducibili;
costrutto condizionale del preprocessore;
un caso di studio: manipolazione dei reali
Kernighan & Pike: Cap. 5
Unitā Didattica 14: Le stringhe
Definizione di stringa;
funzioni di libreria per l?input e l?output delle stringhe;
funzioni di libreria per la conversione delle stringhe in numeri;
funzioni di libreria per la gestione delle stringhe;
funzioni di libreria per la ricerca nelle stringhe;
funzioni iterative e funzioni ricorsive su stringhe
Deitel & Deitel: Cap. 8
Kelley & Pohl: Cap. 6
Unitā Didattica 15: I files
Elaborazione dei files: puntatore a file, fopen, fclose;
lettura e scrittura su files: fprintf, fscanf, feof, getc, putc;
posizionamento del puntatore a file: fseek, rewind, ftell;
fflush
Deitel & Deitel: Cap. 11
Kelley & Pohl: Cap.