Corso di Laurea in Informatica
Fondamenti di Programmazione
Laboratorio di Programmazione
Anno accademico 2002/2003
Docente: G. Rossi
Collaboratore didattico: A. Dal Palù
Programma del corso
PARTE I - Programmazione imperativa con il C++
-
Concetti e costrutti di base
Il concetto di algoritmo. Rappresentazione di algoritmi: i diagrammi
di flusso.
I linguaggi di programmazione.
Struttura di un programma. Un esempio di programma C++.
Variabili e costanti.
Assegnamento.
Tipi di dati. I tipi elementari del C++.
Sintassi. I diagrammi sintattici.
Espressioni e operatori.
Istruzioni semplici e composte.
Le strutture di controllo del C++. Cicli e selezione.
Input/output di base. Gli stream del C++.
Strutture dati: astratte, concrete.
Vettori e matrici. Realizzazioni in C++ tramite array.
Stringhe. Stringhe come array di caratteri.
Record. Il costruttore struct in C++.
-
Funzioni ed astrazione procedurale
Dichiarazione e chiamata di funzioni.
Modalità di passaggio dei parametri. Passaggio parametri di
tipo array in C++.
Funzioni e procedure.
Funzioni ricorsive.
Visibilità e regole di "scope" in C++.
Dichiarazioni globali e locali.
-
Sviluppo programmi
Ambiente di programmazione: editor, compilatore, linker (cenni).
Sviluppo di semplici programmi nel frammento imperativo del C++.
PARTE II - Programmazione orientata agli oggetti con il C++
-
Concetti e costrutti di base
Dalla programmazione imperativa alla programmazione orientata agli
oggetti. Classi e oggetti in C++.
"Incapsulamento" e "information hiding".
Funzioni proprie ed invocazione di funzioni. Costruttori.
Overloading di funzioni ed operatori.
Tipi di dato astratti.
Nomi ed equivalenza dei tipi in C++. Conversione di tipi (cenni).
Input/output tramite stream. Gestione file. Le classi
iostream
e fstream in C++.
Puntatori ed allocazione dinamica della memoria. Dichiarazione ed operazioni
su puntatori in C++.
Ridefinizione dell'assegnamento. Distruttori di classe.
-
Concetti e costrutti avanzati
Classi parametriche. Esempio: realizzazione liste concatenate in C++.
Ereditarietà. Tipi di derivazione. Costruttori e distruttori.
Gestione delle eccezioni. Motivazioni. Costrutti e meccanismi del C++.
-
Sviluppo programmi
Librerie standard del C++ (cenni).
Sviluppo di semplici programmi in C++.
Progettazione ed implementazione di un'applicazione in C++.
Testi consigliati
- Per la Parte I:
R. Miller, D. Clark, B. White, e W. Knottenbel: An Introduction to the
Imperative Part of C++, 1999, disponibile su WEB all'indirizzo
http://www.doc.ic.ac.uk/~wjk/C++Intro/CourseStructure.html#S
- Per l'intero corso:
S. Lippman, J. Lajoie, C++: Corso di programmazione, 3a Ed.,
Addison-Wesley, 2000.
Vai alla pagina
principale del corso