Il corso mira a raggiungere una capacità di programmazione avanzata attraverso la comprensione delle regole che formano la struttura del linguaggio C. Viene anche descritta l'architettura di un processore elementare e il modo in cui un programma C viene tradotto in assembler, codificato in forma numerica ed eseguito.
Nella seconda parte vengono introdotti i concetti di struttura dati e di algoritmo in riferimento alla rappresentazione di liste e alberi binari e ai problemi di ricerca e ordinamento. La trattazione fornisce anche l'opportunità per introdurre concetti fondamentali della programmazione: la ricorsione e iterazione e la valutazione della complessità di un algoritmo.
Enrico Vicario. Fondamenti di Programmazione: linguaggio c, strutture dati e algoritmi elementari, C++
Altre Informazioni
Sito web del corso:
https://sites.google.com/site/fondinfo2014ingmec/
Programma del corso
Un frammento del linguaggio c
Tipi, variabili e costanti
Operatori ed espressioni
Istruzioni
Rappresentazione dei dati
Numeri
Interi senza segno
Caratteri
Interi con segno
Valori in virgola mobile
Rappresentazione delle istruzioni
Assembler
Linguaggio macchina
Esecuzione su un processore
Compilazione e assemblaggio
Il linguaggio c
Tipi, variabili e costanti
Operatori ed espressioni
Puntatori
Array
Istruzioni
Funzioni
Dati strutturati
Sintesi
Compilazione separata, collegamento e librerie
Strutture dati e algoritmi elementari
Liste
Rappresentazione in forma sequenziale
Rappresentazione collegata con arrays e indici
Rappresentazione collegata con puntatori
Iterazione e ricorsione
Alberi
Alberi binari di ricerca
Forma collegata con puntatori
Forma sequenziale
Forma collegata con indici
Costo di esecuzione e complessità
Il modello di costo
La complessit`a di un algoritmo
Algoritmi di ricerca
Ricerca sequenziale
Ricerca binaria
Ricerca a salti
Algoritmi di ordinamento
Sequential-sort