Corso di Laurea in Informatica - Corso
di Laurea in Matematica
Fondamenti di Programmazione
A
Docente: G. Rossi
Programma del corso
Anno accademico 2009-10
Fondamenti di programmazione
Problemi e algoritmi - La nozione di algoritmo. I diagrammi di
flusso. Risoluzione di semplici problemi.
Linguaggi di programmazione - Linguaggi esistenti (cenni) [3a].
Struttura generale di un programma [3b]. Convenzioni di programmazione.
Ambienti integrati di sviluppo programmi (IDE) [3c].
Variabili: caratteristiche, dichiarazione.
Identificatori. Dichiarazione di costante [3d].
Assegnamento.
Espressioni: sintassi, valutazione (associativita' e precedenza), tipo.
Programmazione strutturata [3e] -
Strutture di controllo. Teorema di Bohm-Jacopini. Statement goto.
Progetto "top-down" e sviluppo programmi "per raffinamenti
successivi".
Nomi, ambienti e regole di "scope": struttura a blocchi,
ambiente locale e non-locale, variabili globali [4a].
Ricorsione - Definizioni e funzioni ricorsive. Esempi. Implementazione
ricorsione (cenni).
Il linguaggio C++
Dichiarazione di variabile. Tipi
semplici primitivi: valori, costanti, operazioni.
Dichiarazione di costante [3d].
Input/output di base. Operatori >> e <<.
Input/output a caratteri (funzioni get e put) [3h].
Assegnamento e statement composto. Espressioni.
Statement per il controllo di sequenza: if, switch, while,
do_while, for, break. Esempio. Verifica dell'input [3f].
Tipi composti. Array: dichiarazione, selezione elementi, memorizzazione,
operazioni. Array bi-dimensionali. Matrici. Esempi operazioni su matrici e vettori
(in partic., ordinamento per selezione [3g].
Stringhe: realizzazione tramite
array, operazioni, funzioni di libreria. struct: dichiarazione,
selezione elementi, operazioni. Tabelle: definizione, realizzazione tramite array di
struct.
Dichiarazione e chiamata di funzione. Passaggio parametri: per valore,
per riferimento. Passaggio parametri di tipo array. Funzioni void.
Strutturazione di un programma e regole di "scope".
Puntatori ed allocazione dinamica della memoria (new). Operazioni
su puntatori. Puntatori ed array. Liste concatenate.
Input/output su file. Creazione ed apertura di uno stream. Lettura/scrittura
tramite >> e << e a caratteri.
Sviluppo di semplici programmi nel frammento imperativo del C++. Utilizzo
di funzioni di libreria.
Materiale didattico
-
[1] Uno dei seguenti testi:
-
[2] Dispense del corso (.ps) (.pdf)
-
[3] Materiale vario disponibile on-line:
-
[4] Alcune parti di:
M.Gabbrielli,
S.Martini. Linguaggi di programmazione. Principi e paradigmi. McGraw-Hill,
2006 (testo adottato nel corso di "Linguaggi di programmazione")
- a. I nomi e l'ambiente [par. 4.1, 4.2, 4.3 fino a p.81]
-
[5] Programmi C++ mostrati a lezione e in laboratorio (disponibili
[qui])