Introduzione alla programmazione dei sistemi di elaborazione. Il concetto di algoritmo. Il modello di von Neumann. Organizzazione della memoria centrale e della CPU. Tecniche di codifica e rappresentazione dei dati nei registri di memoria. Linguaggi formali. Caratteristiche dei linguaggi ad alto liv…
Rappresentazione dei numeri: i numeri reali. Rappresentazione in virgola fissa ed in virgola mobile. Lo standard IEEE 754.
Rappresentazione dei numeri: i numeri interi con segno e senza segno. Rappresentazione per segno e modulo, per complementi alla base, per complementi diminuiti e per eccessi.
La gestione file: gli stream nel linguaggio C++. Esempi.
La gestione file: gli stream nel linguaggio C++. Esempi.
Rappresentazione dei numeri: i numeri reali. Rappresentazione in virgola fissa ed in virgola mobile. Lo standard IEEE 754.
Algoritmi definiti sugli array: fusione di due vettori ordinati (MERGE); valutazione della complessità computazionale dell'algoritmo di Merge. L'algoritmo di MERGE-SORT. Valutazione della complessità computazionale dell'algoritmo di MERGE-SORT.
Il tipo puntatore a funzione. Array di puntatori a funzione. Funzioni con argomento puntatore a funzione. Esempi. La ricorsione: il principio generale dell'induzione. Definizione di algoritmi ricorsivi. Esempi.
Algoritmi definiti sugli array: fusione di due vettori ordinati (MERGE); valutazione della complessità computazionale dell'algoritmo di Merge. L'algoritmo di MERGE-SORT. Valutazione della complessità computazionale dell'algoritmo di MERGE-SORT.
Il tipo puntatore a funzione. Array di puntatori a funzione. Funzioni con argomento puntatore a funzione. Esempi. La ricorsione: il principio generale dell'induzione. Definizione di algoritmi ricorsivi. Esempi.
Algoritmi di base definiti sugli array bidimensionali: inizializzazione, lettura, ricerca, inserimento e cancellazione di righe e colonne. Accesso alle singole righe di una matrice. Esempi. Il tipo puntatore a funzione: definizione e proprietà.
Il tipo stringa di caratteri. Definizione ed operazioni consentite sul tipo stringa. Array di caratteri e stringhe: lettura e stampa di stringhe. Esempi di algoritmi definiti sulle stringhe: calcolo delle lunghezza di una stringa. Puntatori e stringhe. Array di stringhe. Esempi Gli array bidimensionali: definizione del tipo di dato astratto array bidimensionale; allocazione in memoria e metodi di accesso agli elementi. Array bidimensionali come argomento di funzioni.
Array monodimensionali come argomento di funzioni. Puntatori come argomento di funzioni. Puntatori a caratteri, puntatori a strutture, puntatori a puntatori, array di puntatori. Allocazione dinamica della memoria. Tipi di memoria in C++. Funzioni che restituiscono puntatori.
Il tipo stringa di caratteri. Definizione ed operazioni consentite sul tipo stringa. Array di caratteri e stringhe: lettura e stampa di stringhe. Esempi di algoritmi definiti sulle stringhe: calcolo delle lunghezza di una stringa. Puntatori e stringhe. Array di stringhe. Esempi Gli array bidimensionali: definizione del tipo di dato astratto array bidimensionale; allocazione in memoria e metodi di accesso agli elementi. Array bidimensionali come argomento di funzioni.
Array monodimensionali come argomento di funzioni. Puntatori come argomento di funzioni. Puntatori a caratteri, puntatori a strutture, puntatori a puntatori, array di puntatori. Allocazione dinamica della memoria. Tipi di memoria in C++. Funzioni che restituiscono puntatori.
Algoritmi definiti sugli array: ricerca di un elemento in un array nel caso di array ordinato. Ricerca lineare e Ricerca binaria. Valutazione della complessità computazionale dell'algoritmo di ricerca. Il tipo puntatore: definizione ed operazioni consentite. L'aritmetica dei puntatori. Il legame tra puntatori ed array. Esempi
Algoritmi definiti sugli array: ricerca di un elemento in un array nel caso di array ordinato. Ricerca lineare e Ricerca binaria. Valutazione della complessità computazionale dell'algoritmo di ricerca. Il tipo puntatore: definizione ed operazioni consentite. L'aritmetica dei puntatori. Il legame tra puntatori ed array. Esempi
Algoritmi definiti sugli array: ordinamento di un array. L'ordinamento per selezione (SELECT SORT). L'ordinamento per inserzione diretta (INSERT SORT). L'ordinamento con il metodo del gorgogliamento. Gli algoritmi BUBBLE SORT e SHAKE SORT. Valutazioni comparative sull'efficienza degli algoritmi di ordinamento presentati e della loro complessità computazionale.
Algoritmi definiti sugli array: ordinamento di un array. L'ordinamento per selezione (SELECT SORT). L'ordinamento per inserzione diretta (INSERT SORT). L'ordinamento con il metodo del gorgogliamento. Gli algoritmi BUBBLE SORT e SHAKE SORT. Valutazioni comparative sull'efficienza degli algoritmi di ordinamento presentati e della loro complessità computazionale.
Regole di compilazione di programmi con più file sorgenti. Esempi di utilizzo di variabili statiche. Array monodimensionali. Definizione di array ordinato. Algoritmi di base definiti sugli array: caricamento valori iniziali, lettura e stampa; Passaggio di array alle funzioni. Esempi.
Il tipo struct: definizione e meccanismi di accesso. Array di STRUCT. Strutture nidificate. Passaggio di STRUCT alle funzioni. Esempi. Il tipo union: definizione ed esempi. Il tipo enum: definizione ed esempi. Algoritmi di base definiti sugli array: ricerca di un elemento in un array. Inserimento e cancellazione di un elemento e di un blocco di elementi in un array.
Regole di compilazione di programmi con più file sorgenti. Esempi di utilizzo di variabili statiche. Array monodimensionali. Definizione di array ordinato. Algoritmi di base definiti sugli array: caricamento valori iniziali, lettura e stampa; Passaggio di array alle funzioni. Esempi.
Il tipo struct: definizione e meccanismi di accesso. Array di STRUCT. Strutture nidificate. Passaggio di STRUCT alle funzioni. Esempi. Il tipo union: definizione ed esempi. Il tipo enum: definizione ed esempi. Algoritmi di base definiti sugli array: ricerca di un elemento in un array. Inserimento e cancellazione di un elemento e di un blocco di elementi in un array.
Regole di visibilità delle variabili: Variabili esterne e variabili statiche. Funzioni esterne e funzioni statiche. Le funzioni di libreria. Il tipo array. Array monodimensionale: definizione, allocazione in memoria e operazioni consentite. Esempi.
Regole di visibilità delle variabili: Variabili esterne e variabili statiche. Funzioni esterne e funzioni statiche. Le funzioni di libreria. Il tipo array. Array monodimensionale: definizione, allocazione in memoria e operazioni consentite. Esempi.
I prototipi delle funzioni. L'uso degli HEADER FILE. Le funzioni inline; l'overloading delle funzioni. Regole di visibilità delle variabili: Variabili globali, variabili automatiche. Sviluppo di programmi su più files. Esempi.
Funzioni in C++: definizione e lista dei parametri; il tipo reference. Funzioni "void" e funzioni che restituiscono un valore. L'uso delle funzioni come strumento di progettazione. Esempi.
Funzioni in C++: definizione e lista dei parametri; il tipo reference. Funzioni "void" e funzioni che restituiscono un valore. L'uso delle funzioni come strumento di progettazione. Esempi.
Funzioni: definizione; meccanismo di salto a funzione e ritorno al programma chiamante; scambio di parametri: scambio per valore e scambio per riferimento; l'uso dello stack; valore restituito da una funzione. Esempi.
Le classi di istruzioni del C++. Il costrutto SWITCH. I costrutti cicli: FOR, WHILE, DO WHILE; Istruzioni “break” e “continue. Esempi. Fasi di sviluppo di un programma. Definizione di compilatore e interprete. Il linker. L'ambiente di sviluppo Netbeans. Esempio: sviluppo di un programma per il calcolo del numero di giorni compresi tra due date.
Le classi di istruzioni del C++. Il costrutto SWITCH. I costrutti cicli: FOR, WHILE, DO WHILE; Istruzioni “break” e “continue. Esempi. Fasi di sviluppo di un programma. Definizione di compilatore e interprete. Il linker. L'ambiente di sviluppo Netbeans. Esempio: sviluppo di un programma per il calcolo del numero di giorni compresi tra due date.
Le classi di istruzioni del C++. Dichiarazione e definizione di variabili e costanti; le istruzioni di ingresso/uscita; le istruzioni di calcolo e assegnazione. Le classi di istruzioni del C++. I costrutti selettivi: IF, IF ELSE. IF ELSE IF; Operatore ternario. Esempi
Le classi di istruzioni del C++. Dichiarazione e definizione di variabili e costanti; le istruzioni di ingresso/uscita; le istruzioni di calcolo e assegnazione. Le classi di istruzioni del C++. I costrutti selettivi: IF, IF ELSE. IF ELSE IF; Operatore ternario. Esempi
Introduzione ai tipi di dati in C++: variabili, costanti, espressioni. Dichiarazione di costanti simboliche. I tipi di dati in C++ il tipo intero, il tipo reale, il tipo carattere ed il tipo logico. Operatori definiti sui diversi tipi di dati. Definizione di espressione numerica e di espressione logica. I connettivi logici ed il loro uso nelle espressioni logiche. Esempi.
Confronto fra le caratteristiche dei linguaggi naturali e quelle dei linguaggi macchina. Introduzione ai linguaggi di programmazione. Caratteristiche generali dei linguaggi di programmazione. Tecniche di progettazione dei programmi per raffinamenti successivi. Fasi di sviluppo di un programma. Definizione di compilatore e interprete. Il linker.
Confronto fra le caratteristiche dei linguaggi naturali e quelle dei linguaggi macchina. Introduzione ai linguaggi di programmazione. Caratteristiche generali dei linguaggi di programmazione. Tecniche di progettazione dei programmi per raffinamenti successivi. Fasi di sviluppo di un programma. Definizione di compilatore e interprete. Il linker.
L'architettura del processore centrale: i registri interni al processore, i flag, l'unità aritmetico logica, le floating points units. Il linguaggio macchina: esempi di traduzione di semplici istruzioni contenenti costrutti selettivi e costrutti ciclici.
L'architettura del processore centrale: i registri interni al processore, i flag, l'unità aritmetico logica, le floating points units. Il linguaggio macchina: esempi di traduzione di semplici istruzioni contenenti costrutti selettivi e costrutti ciclici.
Il linguaggio macchina. Il formato delle istruzioni ed i modi di indirizzamento. Esempi di traduzione di semplici istruzioni di calcolo e assegnazione in linguaggio macchina.
Il linguaggio macchina. Il formato delle istruzioni ed i modi di indirizzamento. Esempi di traduzione di semplici istruzioni di calcolo e assegnazione in linguaggio macchina.
Il modello generale di processore (Modello di Von Neumann) . Cenni sulla rappresentazione dei dati nei registri: rappresentazione di numeri; rappresentazione di caratteri; il codice ASCII. L'organizzazione della memoria centrale. L'architettura della CPU. Il bus. Il ciclo del processore.
Introduzione al corso. Argomenti trattati, libri di testo e sussidi. Cenni sull'evoluzione dei Sistemi di Calcolo. Il concetto di algoritmo. Proprietà e caratteristiche fondamentali degli algoritmi. Rappresentazione del problema da risolvere e definizione delle strutture dati. Esempi di algoritmi in linguaggio naturale. Un modello generale di esecutore.
Il modello generale di processore (Modello di Von Neumann) . Cenni sulla rappresentazione dei dati nei registri: rappresentazione di numeri; rappresentazione di caratteri; il codice ASCII. L'organizzazione della memoria centrale. L'architettura della CPU. Il bus. Il ciclo del processore.