• Non ci sono risultati.

Programmazione 1

N/A
N/A
Protected

Academic year: 2021

Condividi "Programmazione 1"

Copied!
1
0
0

Testo completo

(1)

Programmazione 1

a.a. 2011/12 Prof. E. Fischetti

I linguaggi di programmazione.

I sistemi di numerazione. L’architettura di von Neumann. Il linguaggio macchina. Il linguaggio assembler. I linguaggi ad alto livello. Evoluzione del linguaggio C. Le fasi di sviluppo di un programma C.

Elementi di base del linguaggio C.

Tipi di dati int, float, double, char. Precisione numeri floating-point. Operatori aritmetici. Operatori unari. Operatori relazionali e logici. Espressioni aritmetiche e logiche. Operatori di assegnazione. Operatore condizionale. Funzioni di libreria.

Programmi esempio.

Input / output dei dati e istruzioni di controllo.

Le funzioni getchar e putchar. Le funzioni scanf e printf. Gestione stringhe con scanf e printf. Gestione stringhe con gets e puts. Le istruzioni if-else, goto, for, while, do- while, break, continue, switch. La programmazione strutturata. Programmi esempio.

Le funzioni e gli array.

Strategia top-down. Programmazione modulare. Astrazione. Information hiding. Le funzioni C. Prototipi di funzione. Passaggio dei parametri. Passaggio per valore.

Gestione delle call mediante stack. Array monodimensionali e bidimensionali.

Generazione numeri casuali e loro utilizzo. Programmi esempio.

La ricorsione.

Funzioni iterative e ricorsive. Il fattoriale. Divide and conquer. Fibonacci iterativo e ricorsivo. Efficienza degli algoritmi e tempi di esecuzione. Complessità lineare ed esponenziale. Le torri di Hanoi. Programmi esempio.

Algoritmi di ricerca e ordinamento.

Ricerca sequenziale e binaria. Selection sort. Bubble sort.

Le strutture, i puntatori e le liste a puntatori.

Definizione e gestione delle strutture. Array di strutture. I puntatori. Passaggio di parametri per riferimento. Variabili globali. Gli array e i puntatori. Allocazione dinamica della memoria e gestione dell’heap. Gestione stringhe con i puntatori.

Definizione e gestione delle liste a puntatori. Le funzioni malloc e free. Algoritmo di merge. Programmi esempio.

(2)

Gestione dei file.

File di testo e file binari. Il file pointer. Funzioni per la gestione dei file. Scrittura, lettura e modifica di file testuali e binari.

Tipi di dati astratti e loro realizzazione

Astrazione dati, astrazione funzionale, information hiding. ADT array, lista, stack, coda. Realizzazione ADT stack e coda mediante array e mediante lista a puntatori.

Valutazione delle espressioni algebriche. Trasformazione di una espressione infissa in postfissa e sua successiva valutazione.

Il ciclo di vita del software

La programmazione strutturata. La programmazione modulare. Precondizione e postcondizione. La correttezza di un programma. Software life cycle: requisiti, analisi, progettazione, codifica, verifica e debugging, manutenzione.

Bibliografia

Appunti delle lezioni

Gottfried B.: “Programming with C” - Second edition, Schaum’s outline series.

“Programmare in C” – McGraw Hill (edizione italiana) Kelley A., Pohl I.: “A book on C” – Fourth edition, Addison Wesley.

“C: didattica e programmazione”, Addison-Wesley (edizione italiana) Deitel H.M., Deitel P.J.: “C: corso completo di programmazione” –

Seconda edizione, Apogeo.

Perry G.: “Absolute beginner’s guide to C” – Second edition, Sams Publishing.

Sito Internet bloodshed.net

Tutte le informazioni riguardanti il corso vengono gestite tramite la piattaforma e- learning (annunci, prove di esame e loro risultati, esercizi svolti in laboratorio, cambiamenti di orario, etc.) per cui è importante iscriversi (http://www.scienzemfn.unisa.it/el-platform/). Inoltre, per sostenere gli esami è indispensabile prenotarsi su ESSE3.

Riferimenti

Documenti correlati

Effect of air motion on fuel spray charateristics in a gasoline direct injection engine. Rainer

 Riconoscere alcune caratteristiche tecniche proprie dei testi

La scelta dei tempi di svolgimento delle varie unità d’apprendimento verrà attuata tenuto conto della tipologia delle risposte che la classe presenterà

10 alunno con livello di conoscenze e abilità complete e corrette, autonomo e sicuro, con apporti personali nelle applicazioni, anche in situazioni nuove o complesse. 9

 Riconosce e risolve problemi in contesti diversi valutando le informazioni e la loro coerenza.  Spiega il procedimento seguito, anche in forma scritta, mantenendo il controllo

PETERSON J., SILBERSCHTZ A., Operating System Concepts, Casa Editrice Addison-Wesley, 1990 (anche versione italiana: SILBERSCHATZ A., GALVIN P., Sistemi Operativi (quarta

predisposizione alle attività dinamiche e al movimento, mentre un altro gruppetto di alunni, con modeste potenzialità, necessita di continui inviti o ad una maggiore

Attraverso l’analisi delle questioni di natura genetica e immunologica che caratterizzano l’Addison e cercando di comprendere quale potrebbe essere il ruolo delle cellule