Programma del corso di Programmazione
A.A.2006-2007
Dott.ssa Sabrina Mantaci





















Introduzione al corso di Programmazione. Cenni sull’Architettura del calcolatore.
Risoluzione dei problemi tramite un calcolatore.
La nozione di Algoritmo. Esempi di algoritmi. Complessità di un algoritmo.
I linguaggi di Programmazione. Il paradigma dichiarativo e il Paradigma Imperativo.
I principi della Programmazione strutturata. Il teorema di Boem-Jacopini. I costrutti di
sequenza, selezione e iterazione. Equivalenza di cicli.
Struttura di un programma in Pascal. Intestazione, sezione dichiarativa e corpo del
programma. Identificatori. Programmi di output.
Le costanti (const).
Le variabili. (var) Dichiarazione e assegnazione. Tipi di variabili standard non strutturate.
Il tipo Integer. La rappresentazione degli interi e degli interi relativi in binario.
Il tipo char. Rappresentazione dei caratteri. Il codice ASCII e altri codici di caratteri.
Il tipo boolean. Connettivi logici. Espressioni logiche.
Il tipo real.
I costrutti di selezione. Il costrutto di selezione If… then… else.il costrutto di selezione
case…of.
I costrutti di iterazione: Il costrutto di iterazione for. Il costrutto di iterazione while-do.
Il costrutto di iterazione repeat-until. Equivalenza dei costrutti di iterazione.
Il tipo strutturato array. Array a una dimensione. Applicazioni. Codici per l’inserimento e la
visualizzazione degli array. Somma e Prodotto scalare degli array. Array a piu dimensioni.
Matrici. Inserimento e visualizzazione di una matrice. Prodotto di Matrici. Tipi definiti dal
programmatore (type)
Il tipo string. Procedure e funzioni del tipo string.
Sottoprogrammi. Procedure. Regole per il passaggio dei parametri. Funzioni. Esempi di
procedure e funzioni. Regole di visibilità delle variabili. L’esecuzione dei programmi con
chiamate di procedure e funzioni. Il funzionamento della memoria stack.
La ricorsione. Funzioni ricorsive. Il fattoriale. Procedure ricorsive. Il problema delle torri di
Hanoi.
Il problema della ricerca (searching): Ricerca lineare e ricerca binaria iterativa Ricerca
lineare e ricerca binaria ricorsiva.
Il problema dell’ordinamento(sorting): Definizione del problema. Teorema del lower bound
per il sorting. Algoritmi di sorting iterativi: Selectionsort e Bubblesort. Algoritmi di sorting
ricorsivi: il Quicksort e il Mergesort. Algoritmi di sorting non basati su confronti. Il
Countingsort.
I record.
Puntatori e liste. Definizione del tipo puntatore. Definizione formale di lista. Liste
concatenate. Costruzione di una lista concatenata. Inserimento, cancellazione e ricerca di un
elemento in una lista.