FONDAMENTI DI PROGRAMMAZIONE A
cod. 1000747

Anno accademico 2012/13
1° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Formazione informatica
Tipologia attività formativa
Base
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in - - -

Obiettivi formativi

Il corso si propone di fornire le basi sia teoriche che pratiche
della programmazione imperativa utilizzando come linguaggio
di riferimento il linguaggio di programmazione C++.

Prerequisiti

Nessuno

Contenuti dell'insegnamento

Fondamenti di programmazione. Programmazione imperativa. Linguaggio di programmazione C++

Programma esteso

FONDAMENTI.
Problemi e algoritmi - La nozione di algoritmo. I diagrammi di flusso.
Risoluzione di semplici problemi.
Linguaggi e ambienti di programmazione - Linguaggi esistenti (cenni). Modalita' d'esecuzione (cenni). Ambienti integrati di sviluppo programmi (IDE).
Variabili: caratteristiche, dichiarazione. Identificatori. Costanti. Espressioni: sintassi, valutazione (associativita' e precedenza), tipo. Assegnamento.
Tipi di dato: definizione, tipi semplici e strutturati, primitivi e definiti da utente. Costruttori di tipo. Strutture dati astratte e concrete. Utilita' dei tipi. Compatibilita' e conversioni di tipo.
Nomi, ambienti e regole di "scope": struttura a blocchi, ambiente locale e non-locale,
variabili globali.
Programmazione strutturata - Strutture di controllo. Teorema di Bohm-Jacopini. Statement
goto. Progetto "top-down" e sviluppo programmi "per raffinamenti successivi".

LINGUAGGIO C++.
Dichiarazione di variabile. Tipi semplici primitivi: valori, costanti, operazioni.
Dichiarazione di costante.
Input/output di base. Operatori di estrazione ed inserimento. Input/output a caratteri
(funzioni get e put).
Assegnamento e statement composto. Espressioni.
Statement per il controllo di sequenza: if, switch, while, do_while, for, break.
Esempio. Verifica dell'input.
Tipi strutturati. Array: dichiarazione, selezione elementi, memorizzazione, operazioni.
Array bi-dimensionali. Matrici. Esempi operazioni su matrici e vettori (in partic.,
ordinamento per selezione). 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".
Input/output su file. Creazione ed apertura di uno stream. Lettura/scrittura "tipata" e a caratteri.
Puntatori ed allocazione dinamica della memoria (operatore new). Operazioni su puntatori. Puntatori ed array. Esempio: liste concatenate.
Sviluppo di semplici programmi nel frammento imperativo del C++. Utilizzo di funzioni
di libreria.

Bibliografia

L.J. Aguilar. Fondamenti di programmazione in C++ , McGraw-Hill, 2008.

Metodi didattici

Lezioni frontali in aula e esercitazioni assistite in
laboratorio informatico

Modalità verifica apprendimento

Esame scritto ed orale

Altre informazioni

Il corso prevede una sua pagina Web per tutte le informazioni generali, gestita direttamente dal docente (http://people.math.unipr.it/gianfranco.rossi/Teaching/FondProgr/index.html) e una pagina sul sistema dii Web Learning dell'Ateneo per la gestione delle esercitazioni (http://lea.unipr.it/course/view.php?id=324).