Vai al contenuto principale

Università degli Studi di Parma, il mondo che ti aspetta

FONDAMENTI DI PROGRAMMAZIONE B ( cod. 1000749)

Insegnamento di INFORMATICA (Corsi di Laurea)

Facoltà di Corsi di Laurea triennale (D.M. 270/04)

 

TIPOLOGIA DELL'INSEGNAMENTO: ATTIVITÀ FORMATIVE DI BASE

 
Lingua Insegnamento: 
Italiano

FREQUENZA FACOLTATIVA

Obiettivi

Il corso si propone di fornire le basi sia teoriche che pratiche della programmazione "orientata agli oggetti", utilizzando come linguaggio di riferimento il linguaggio di programmazione C++.

Prerequisiti

I concetti e le tecniche di base della programmazione imperativa forniti nel corso di Fondamenti di Programmazione A

Contenuti dell'insegnamento

Fondamenti di programmazione. Programmazione object-oriented. Linguaggio di programmazione C++

Programma esteso

FONDAMENTI. Paradigmi di programmazione (cenni). Introduzione alla programmazione orientata agli oggetti. Classi, oggetti ed "incapsulamento". "Information hiding". Ereditarieta'. Tipi di dato astratti (ADT). Definizione e caratteristiche. ADT in C e C++. Tipi di dato - Utilita' dei tipi. Equivalenza di tipi. Compatibilita' e conversione di tipo. Gestione della memoria - Allocazione statica. Allocazione "automatica": record d'attivazione, pila di sistema. Tempo di vita di una variabile. Ciclo di sviluppo dei programmi (cenni) . Modularizzazione - "Programming-in-the-large" vs. "Programming-in-the-small". La nozione di modulo. La modularizzazione nella fase di progettazione e di realizzazione. Classi e modularizzazione in C++. Programmi divisi in piu' file. LINGUAGGIO C++. Dichiarazione di classe. Creazione di oggetti. Accesso ai campi di un oggetto. Funzioni proprie ed invocazione di funzioni. Inizializzazione di oggetti: costruttori. Esempio: classe Razionale. Overloading di funzioni ed operatori. Ridefinizione operatori di input/output. La classe string. Puntatori ed allocazione dinamica della memoria (new). Operazioni su puntatori. Puntatori ed array. Esempio: classe int_vett. Ridefinizione operator[]. Ridefinizione assegnamento e costruttore di copia. Distruttori. Parametri "const reference" e "reference return". Gestione delle eccezioni. Motivazioni, meccanismi. Classi parametriche (template): dichiarazione, istanziazione. Esempio: classe pila. Funzioni parametriche. Ereditarietà: dichiarazione, ridefinizione funzioni e dati. Campi protected. Ereditarieta' multipla (cenni). Sviluppo di semplici programmi in C++. Librerie standard del C++ (cenni). Progettazione ed implementazione di un'applicazione in C++.

Bibliografia Consigliata

L.J. Aguilar. Fondamenti di programmazione in C++ , McGraw-Hill, 2008.
Anno accademico: 
2012
Anno di corso: 
1
Semestre: 
1
Numero CFU: 
6
SSD: 
INFORMATICA (INF/01)
Ambito: 
Formazione informatica di base
Ore di attivita frontale: 
48