Informatica

Contenuto delle esercitazioni di laboratorio



Data Argomento Risorse
14/10/2019
15/10/2019
Architettura dei sistemi di calcolo, macchina di Von Neumann. CPU, RAM, BUS, periferiche di memorizzazione di massa, principali funzionalità, caratteristiche e unità di misura delle loro prestazioni. Esecuzione dei programmi sulla macchina di Von Neumann, ciclo macchina fasi fetch-decode-execute. Linguaggio macchina e assembly, forma delle istruzioni e architettura interna della CPU: ALU, CU. Programmazione a basso livello, svantaggi. Programmazione ad alto livello, linguaggi ad alto livello, compilatori. Ciclo di vita del software: progettazione, compilazione, linking, loading, esecuzione. Possibili errori. Sistemi operativi, principali funzionalità. Boot loader, kernel e interfaccia Architettura di Von Neumann.
Esecuzione dei programmi, strumenti per la programmazione.
Sistemi operativi, kernel e interfaccia
21/10/2019
22/10/2019
Il file system, file e directory. Il sistema LINUX e l'interfaccia a caratteri. Principali comandi per navigare ed esplorare il file system Creare directory, copiare, cancellare muovere file e diractory. Il primo programma C++: "Salve mondo!". Principali costrutti di un programma C++. Utilizzo di editor e compilatore per la creazione e l'esecuzione del primo programma C++. Organizzazione del lavoro in directory. Ulteriori programmi per la stampa di messaggi, lo stream cout File system e sua navigazione
Creare e manipolare file e directory a linea di comando in Linux.
Il programma "Salve mondo!" - Progetto

Programmi per la stampa di messaggi

28/10/2019
29/10/2019
Dichiarazione e definizione di variabili in C++, assegnamenti. Definizioni di costanti. Operazioni con variabili eterogenee. Promozioni di tipo implicite. Casting. Stream cin e cout per lettura e scrittura di variabili. Le strutture di controllo in C++. Selezione, sintassi, semantica ed esempi. L'operatore ternario condizionale, definizione ed esempi. Il tipo bool e le espressioni booleane. Connettivi booleani, short circuit evaluation. Possibili errori nell'uso dell'operatore di uguaglianza. La struttura di controllo iterazione, diverse forme di cicli, sintassi, semantica ed esempi. Programmi con definizione ed uso di variabili di tipo eterogeneo. Programmi complessi con selezioni e cicli. Gestione di stream di dati Variabili e strutture di controllo in C++

Programmi su tipi eterogenei e
strutture di controllo: selezione e cicli

4/11/2019
5/11/2019
Ancora progetti complessi con cicli e selezioni. Utilizzo elementare degli array monodimensionali: problemi di analisi di dati, manipolazione e ricerca di/su array Programmi su tipi eterogenei e
strutture di controllo: selezione e cicli

Cominciamo ad utilizzare gli array

11/11/2019
12/11/2019
Il concetto di struct in C++, sintassi, semantica. Accesso ai campi ed occupazione in memoria. Definizioni di oggetti mediante struc, array di struct, esempi. Test di palindromia e ricerca di massimi e minimi in stream di dati. Progetti complessi su array mono-multidimensionali e utilizzo delle struct Palindrome, massimi e minimi

Array mono-multidimensionali, struct

Programmi complessi su array mono-multidimensionali e struct

22/11/2019
22/11/2019
Costruzione di funzioni e loro utilizzo in un programma modulare. Progetto Punti nel Piano Progetto Punti nel Piano

Una possibile soluzione: punti.C

25/12/2019
26/12/2019
Gestione dei file, la libreria fstream. Apertura, chiusura e utilizzo di file in lettura/scrittura. Lettura dei file per dati, caratteri, linee. Uso del predicato eof(). Array dinamici, definizione ed utilizzo per memorizzare stream di dati. Le C-stringhe, lettura e scrittura di C-stringhe, principali funzioni su C-stringhe. Conversione di string in C-stringhe. Uso delle C-stringhe nelle routine di gestione dei file. Progetto Numeri Complessi: utilizzo file, array dinamici di struct, costruzione modulare mediante function Passaggio di parametri, file, array dinamici, C-stringhe

Progetto Numeri Complessi

File di input: complessi.in

Una possibile soluzione: complessi.C

2/12/2019
3/12/2019
Progetto Robot: utilizzo file, array dinamici di struct, costruzione modulare mediante function Progetto Robot

File di input: robot.in

Una possibile soluzione: robot.C

9/12/2019
10/12/2019
Implementazione di operazioni di scrematura su array. Passaggio di array a funzioni. Creazione di librerie di funzioni, loro implementazione, file header. Compilazione separata, creazione file oggetto e loro linking. Utilizzo del comando make e struttura di un makefile. Progetto Cerchi, utilizzo file, array dinamici di struct, scrematura di array, progetto di librerie apposite Scrematura di array, passaggio di array a funzioni

Implementazione di librerie, comando make

Progetto Cerchi

File di input: codici.in e cerchi.in

Una possibile soluzione
(main+libreria+makefile compressi): cerchi.zip

16/12/2019
17/12/2019
Implementazione in C++ di algoritmi di ordinamento. Selection Sort. MergeSort: le routine mergeSort e merge. Utilizzo della libreria RooT per l'elaborazione grafica di dati. Le principali classi di RooT: scatterPlot, istogrammi, funzioni, finestre. Esempi di programmi e compilazione RooT. Funzioni per la generazione pseudocasuale di numeri. Sviluppo del progetto Moto Circolare. Visualizzazione finale dei dati mediante scatterPlot RooT Implementazione di selectioSort e mergeSort



Introduzione a RooT

Manualetto di RooT

Esempio di programma RooT e uso di rand()

Esempio di makefile per programma RooT



Progetto Moto Circolare

File di input: posizioni.in

Una possibile soluzione: moto_circolare.zip

7/1/2020
8/1/2020
Istogrammi monodimensionali, principali definizioni e loro realizzazione mediante la libreria RooT. Utilizzo di RooT per la creazione di grafici sovrapposti. Sviluppo del progetto Punti di Massa e rappresentazione dati mediante istogramma. Reperimento e salvataggio dati da macchine in remoto, comando scp. Connessione in remoto con funzionalità grafiche, comando ssh -YC Istogrammi monodimensionali

Istogrammi in RooT (sorgente + makefile)

Grafici sovrapposti in RooT (sorgente + makefile)

Progetto Punti di Massa

Una possibile soluzione: massa.zip

13/1/2020
14/1/2020
Preparazione del materiale per esame. Sviluppo del progetto Particelle e rappresentazione dati mediante scatterplot e istogramma Progetto Particelle

Una possibile soluzione: particelle.zip

20/1/2020
21/1/2020
Simulazione prova di laboratorio: il progetto Atomi Progetto Atomi

Torna alla pagina del corso

Carlo Mereghetti
Dipartimento di Fisica "Aldo Pontremoli"
Università degli Studi di Milano
via Celoria 16, 20133 Milano, Italy
phone: +39 02 503 17243
mail: carlo.mereghetti@unimi.it