Corso di Programmazione - A.A. 2001/2002
Obiettivi
-
Fornire le basi per progettare algoritmi (programmi) corretti ed efficienti.
-
Avviare all'uso di un linguaggio di programmazione di tipo imperativo.
Programma
Nota: l'ordine in cui sono elencati, qui sotto, i singoli argomenti
(ed il modo in cui sono raggruppati) non corrisponde necessariamente a
quello in cui verranno affrontati nel corso.
-
Le caratteristiche essenziali di un linguaggio imperativo:
-
Tipi, costanti variabili
-
Espressioni
-
Istruzioni: assegnazione, I/O, blocchi, condizionali, iterazioni
-
Tipi strutturati: array, record
-
Puntatori ed indirizzi: array ad allocazione dinamica
-
Gestione di I/O da file
-
Procedure e funzioni non ricorsive: parametri formali e parametri attuali,
parametri IN, OUT e IN-OUT
-
Visibilita' delle dichiarazioni (regole di scope)
-
Il linguaggio C: tutti i costrutti al punto precedente nel caso specifico
di questo linguaggio
-
Algoritmi iterativi; correttezza.
-
Esempi notevoli di algoritmi: ordinamenti ed algoritmi di ricerca su array.
-
Complessita' degli algoritmi iterativi: complessita' come funzione della
"dimensione", ordini di grandezza, stime della complessita' (tempo) di
algoritmi in linguaggio evoluto.
-
Laboratorio: programmazione in C degli algoritmi visti nel corso.
Testi di Riferimento
-
Dispense: G. Costa - E. Puppo: Appunti per i corsi di "Programmazione"
e "Algoritmi e Strutture Dati": si possono acquistare in segreteria
didattica o trovare all'indirizzo
http://www.disi.unige.it/person/PuppoE/Programmazione/Dispense/
-
Uno dei seguenti in alternativa:
-
Kernighan, Ritchie : Il linguaggio C (versione ANSI) - editore Jackson
-
Darnell - Margolis: C Manuale di programmazione - Editore McGraw-Hill
Commenti a:puppo e catania.
Ultima modifica: 15 ottobre 2001