Obiettivi formativi
Il corso si propone di fornire un'introduzione alla programmazione imperativa utilizzando come linguaggio di riferimento il linguaggio di programmazione C++.
Contenuti dell'insegnamento
Il concetto di algoritmo. Rappresentazione di algoritmi: i diagrammi di flusso. Risoluzione di problemi: esempi. <br />
Struttura di un programma. Un esempio di programma C++. <br />
Variabili e costanti. Dichiarazione di variabile. <br />
Tipi di dato. I tipi elementari del C++. <br />
Assegnamento e statement composto. <br />
Input/output di base: nozione di stream, operatori >> e <<, input/output a caratteri (funzioni get e put).. <br />
Espressioni e operatori. Espressioni booleane. <br />
Le strutture di controllo: selezione, cicli, salto. Gli statement del C++: if, switch, while, do_while, for, break. <br />
Array in C++. Dichiarazione, selezione elementi, operazioni su array. Ordinamento array con selezione del minimo. Array bi-dimensionali. <br />
Matrici. Realizzazione in C++ tramite array. Operazioni di base su matrici. <br />
Stringhe. Stringhe come array di caratteri. Operazioni su stringhe. Funzioni di libreria. <br />
Il costruttore struct: dichiarazione, selezione elementi, operazioni. Tabelle (realizzazione tramite array di struct).. <br />
Sottoprogrammi: significato, motivazioni.Dichiarazione e chiamata di funzione in C++. <br />
Modalità di passaggio parametri: per valore, per riferimento. Passaggio parametri di tipo array. Funzioni void. <br />
Funzioni ricorsive. <br />
Visibilità identificatori: regole di "scope" in C++. Dichiarazioni globali e locali. <br />
Input/output su file. Creazione ed apertura di uno stream. Lettura/scrittura tramite >> e << e a caratteri. <br />
Puntatori ed allocazione dinamica della memoria (new). Operazioni su puntatori. Puntatori ed array. Liste concatenate. <br />
Ambiente di sviluppo: editor, compilatore, linker (cenni). <br />
Sviluppo di semplici programmi nel frammento imperativo del C++. <br />
Utilizzo di funzioni di libreria.
Bibliografia
<p align="left">H.M. Deitel, P.J. Deitel. C++ Fondamenti di programmazione, Apogeo, 2003, 696 pp. </p>
Metodi didattici
Metodo d'insegnamento: lezioni frontali in aula (ca. 4 CFU) e esercitazioni assistite in aula attrezzata (ca. 2 CFU) <br />
Metodo di valutazione: esame scritto (esercizi C++) con prova pratica ed eventuale colloquio orale.