Programma di Calcolatori Elettronici
Corso di Laurea in Ingegneria Elettronica
A.A. 2008 - 2009
Docente Ing. Filippo Vella
Reti Logiche
Rappresentazione dell'informazione
Sistemi Numerici, Numerazione Binaria, Numerazione ottale e esadecimale;
Operazioni Aritmetiche, conversione dalla base 10 alle altre basi, Codici binario
decimali, Addizione BCD, Codici alfanumerici, il codice ASCII, Parità, Codici di
Gray, Codice di Hamming 7,4
Algebra di Boole
Logica binaria, Algebra booleana: identità e teoremi dell’algebra booleana;
Manipolazione algebriche; Funzioni in forma complementata; Rappresentazione
delle funzioni sulle mappe di Karnaugh, Mintermini e Maxtermini, Forme
canoniche : somma di prodotti, prodotto di somme; Semplificazione con Mappe di
Karnaugh: Mappa a due variabili, mappa a tre variabili, mappa a quattro
variabili; Porte NAND, NOR, XOR, XNOR, buffer a 3 stati
Circuiti combinatori
Analisi dei circuiti combinatori; Sintesi dei circuiti combinatori; Rilevazione di
alee; Decoder, Multiplexer, Sommatori/Sottrattori binari, Moltiplicatore binario,
Sintesi con Multiplexer, Sintesi con decoder, Sintesi con il metodo di Quine e
McCluskey
Circuiti sequenziali
Definizioni, Macchina a stati finiti, concetto di stato, equivalenza degli stati,
latch S’R’, latch SR, latch D, flip-flop JK, flip-flop T, flip-flop sensibili alle
transizioni, tabella caratteristica, equazione caratteristica, tabelle di pilotaggio,
Analisi dei circuiti sequenziali sincroni, Sintesi di circuiti sequenziali sincroni,
cenni sui circuiti sequenziali asincroni, Esempi di circuiti sequenziali: registri,
contatori
Dispositivi logici programmabili
Linguaggio C
Struttura di un programma in C. Sequenze di escape. Variabili. Dati, tipi di dato,
domini ed operatori. Tipi di dato intero (short int, int, long int), reale (float,
double), carattere (char), booleano (bool).
Istruzioni condizionali if e if-else. Operatori relazionali e di uguaglianza.
Operatore ternario ?. Operatore di assegnamento. Istruzioni iterative: while, dowhile e for. Istruzione di selezione switch. clausole case e default. Istruzioni break,
continue e goto. Operazioni di cast. Tipi di dato enumerati (enum). costanti
(const).
Array mondimensionali e multidimensionali. Uso degli array.
Funzioni. Prototipi di funzione. Funzione main. Tipo restituito e istruzione return.
Argomenti delle funzioni. Passaggi di parametri per valore e riferimento. Funzioni
e array. Argomenti della riga di comando (argc e argv). Ricorsione. Visibilità delle
variabili.
File di intestazione della libreria standard e funzioni di libreria d’uso comune.
Informazioni di memorizzazione: auto, register, extern e static. Operatore
typedef.
Direttiva al preprocessore #include. Direttiva al preprocessore #define
Caratteri e stringhe. Principali funzioni di manipolazione delle stringhe.
Puntatori. Operatore d’indirizzo(&) e di deferenza(*). Costante NULL. Array e
puntatori. Aritmetica dei puntatori. Tecniche d’uso dei Puntatori. Passaggio di
parametri con puntatori.
Struct. Accesso agli elementi. Operatori punto e freccia.
Algoritmi di Ordinamento:
Bubble-sort, Ordinamento per Inserzione,
Ordinamento per Selezione, Quick-sort. Analisi della complessità asintotica degli
algoritmi.
Funzioni di input ed output. printf, scanf , getchar, putchar.
Operatori su bit, &, |, ^, ~, << e >>.
File. Modalità di accesso ai files. Lettura e scrittura file in modalità sequenziale e
non. (fopen, fclose, fprintf, fscanf, fputs, fgets, fseek, ftell)
Allocazione e deallocazione di memoria. Istruzioni malloc, calloc, free, sizeof.
Implementazione della struttura dati Lista e della struttura dati Albero binario
tramite puntatori.