Orario Lezioni
Inizio lezioni Mercoledi` 25 settembre 2024 (Orario Lezioni Dipartimento,)
- Lezione, Mercoledi` 8-10, Aula Cabibbo, Edificio Fermi (CU033)
- Lezione, Venerdi` 10-11, Aula Cabibbo, Edificio Fermi (CU033)
- Esercitazione Sessione 1, Giovedi` 9-12, Laboratorio Calcolo, Piano 2, Edificio Fermi (CU033)
- Esercitazione Sessione 2, Venerdi` 12-15, Laboratorio Calcolo, Piano 2, Edificio Fermi (CU033)
Avvisi
Prove di Esame
raccolta di testi e soluzioni di esami passati
raccolta di esercizi e spiegazione delle soluzioni a cura di studenti
esami passati di Prof. Rovigatti
Le date di tutte le prove di esame nel 2025 sono riportate sul catalogo dei corsi ed e` necessario prenotarsi su INFOSTUD prima della scadenza per poter sostenere la prova
L'orario e l'aula verranno comunicati dopo la chiusura delle prenotazioni in base al numero di prenotazioni.
Durante la prova potete consultare libri e appunti ma NON listati di programmi ed esercitazioni in forma cartacea o elettronica. Saper usare l'editor di testo, compilarore e girare il programma e` parte importante e richiesta dell'esame.
E` possibile sostenere l'esame in tutti gli appelli (tranne quelli straordinari riservati ai soli fuoricorso oppure aventi 155 CFU).
Gli studenti possono ritirarsi prima o al termine della prova. In questo caso la prova non sara` valutata e verra` verbalizzata come ritiro senza voto.
Risorse Utili
- Unix: introduzione elementare: guida semplice che spiega gli elementi di base di Unix/Linux. Il capitolo 2 riassume i comandi piu` utilizzati in questo corso.
- Prontuario del laboratorio di calcolo (pdf): una guida semplice per configurare un ambiente di lavoro linux per lo svolgimento di questo corso. Si ringraziano gli studenti Simone Di Micco e Numa Zorzi per il loro eccellente lavoro.
Materiale del Corso
- Lezione 01, 2024-09-25: Introduzione. Organizzazione del corso e delle esercitazioni. Informazioni pratiche. (pdf)
- Lezione 02, 2024-09-27: Sistemi di numerazione. Base binaria, decimale, ed esadecimale. (lavagna)
- Lezione 03, 2024-10-02: Rappresentazione di numeri interi negativi. Numeri razionali. (lavagna)
- Lezione 04, 2024-10-04: Singola e doppia precisione. Il problema di approssimazione in virgola mobile. Rappresentazione di caratteri e codice ASCII. Immagini digitali. (lavagna)
- Lezione 05, 2024-10-09: Calcolatori e linguaggio macchina. Indirizzi di memoria e istruzioni. Esempio di calcolatore semplice con 8 bit. Linguaggi di programmazione. Compilatori. (lavagna)
- Esercitazione 01, 2024-10-10/11: Nozioni base di linux per le esercitazioni. (pdf)
- Lezione 06, 2024-10-11: Elementi base del C. Compilazione e linking dei programmi. La funzione main. Variabili e tipi. (lavagna)
- Lezione 07, 2024-10-16: Operatori matematici. Operatori unari e binari. operatori &&, ||, ≥, ≤ . Priorita` degli operatori matematici. printf e scanf per input/output.Importanza dei descrittori in printf. uso della libreria matematica. header file e librerie. Istruzioni #include del precompilatore. (lavagna)
- Esercitazione 02, 2024-10-17/18: Esercitazione con operatori matematici e input/output. (pdf)
- Lezione 08, 2024-10-18: Uso di #define. Descrittori. Diagramma di flusso. (lavagna)
- Lezione 09, 2024-10-23: Diagramma di flusso del programma. Decisioni: costrutto if/else e if/else if/else. Iterazioni: cicli do/while, while. ciclo for. Variabili ausiliari di appoggio e contatori. (pdf)
- Esercitazione 03, 2024-10-24/25: Esercitazione con input/output e funzioni matematiche. (pdf)
- Lezione 10, 2024-10-25: ciclo for. calcolo del fattoriale. Cicli ricorsivi: la serie di Fibonacci. Metodo di bisezione per trovare gli zeri di una funzione (bisezione.c). (lavagna)
- Lezione 11, 2024-10-30: Metodo di bisezione per gli zeri di una funzione. cicli iterativi. Revisione degli errori comuni nelle scorse esercitazioni. Introduzione a python: output formattato di variabili e libreria matematica. Python3 dalla riga di comando e uso di colab nel browser. (lavagna)
- Lezione 12, 2024-11-06: Array statici in C: lunghezza e dimensione. Indice di un array. Operatore []. Array uni- e multi-dimensionali. Cicli annidati per operazioni su matrici e vettori. Inzializzazione delle variabili di appoggio nei cicli annidati. Calcolo matriciale e operazioni vettoriali usando array statici. Input e output formattato di elementi di array bidmensionali. (lavagna)
- Esercitazione 04, 2024-11-07/08: Moto del proiettile e grafica con python. (pdf)
- Lezione 13, 2024-11-08: Generaziune numeri pseudo-casuali interi e razionali in un intervallo [a,b]. Funzioni srand48() e lrand48(). Esempio di simulazione di un dado a N facce. Uso di array di contatori. (lavagna)
- Lezione 14, 2024-11-13: Applicazioni di array: conversione di numeri in binario (binary.c). Algoritmo bubble sort per ordinamento di array di dati (bubble.c). Ricerca binaria di elementi in un array ordinato (binsearch.c). (lavagna)
- Lezione 15, 2024-11-15: Il gioco delle freccette e la stima del π greco con i numeri casuali (pigreco.c). I/O di stringhe e manipolazione con la funzione sprintf(). (lavagna)
- Esercitazione 05, 2024-11-14/15: esercitazione su metodi ricorsivi e cicli e grafica con python. (pdf)
- Lezione 16, 2024-11-20: stringhe in C come array di char. I/O di stringhe. manipolazione con la funzione sprintf(). (strings.c). Il gioco di tris. puntatori. legame tra puntatori e array. accesso agli array 1D tramite puntatore (pointer.c). Input/output su file (fileIO.c). (lavagna)
- Lezione 17, 2024-11-22: Uso di puntatori con array 2D (array2D.c). Introduzione alle funzioni in C. (lavagna)
- Esercitazione 06, 2024-11-21/22: Stima di π con i numeri casuali. Grafici ed istogramma con python. (pdf)
- Lezione 18, 2024-11-27: Funzioni: dichiarazione e definizione. Argomenti e variabili locali. Passaggio delle variabili come argomenti. passaggio per valore. tipo e valore di ritorno. Esempio: funzione funzione dado() e casuale(a,b). (lavagna)
- Lezione 19, 2024-11-9: Funzioni: differenza tra passaggio per valore e passaggio per puntatore. (passbyvalue.c e passbyptr.c). Esempi di funzioni per operare su array 1D e 2D. (matrici.c) (lavagna)
- Esercitazione 07, 2024-11-28/29: cammino aleatorio unidimensionale. (pdf)
- Lezione 20, 2024-12-04: Formulario OPIS. Uso di puntatori come argomento di funzioni: passaggio di array e ritorno di piu` valori. Esempio della funzione analisi() per calcolare media e deviazione standard di dati in un array. Generazione di numeri casuali secondo una distribuzione di probabilita` P(x). Esempio di sin(x) e exp(-x) e confronto con la generazione uniforme. (generator.c, generator_ptr.c, ) Grafico di 3 istogrammi sovrappositi con python. (generator.py) (lavagna)
- Lezione 21, 2024-12-06: Interazione con il metodo Monte Carlo e il metodo hit & miss (mcint.c). Codice del metodo MonteCarlo in python con esempi grafici (colab notebook). (lavagna)
- Esercitazione 08, 2024-12-05/06: esercitazione con funzioni ed array. (pdf)
- Lezione 22, 2024-12-11: Puntatore a funzioni. Metodi numerici di integrazione a confronto: metodo del rettangolo, del punto di mezzo, e del trapezio. (integrals.c) Confronto tra i risultati dei vari metodo con il grafico in python (colab notebook). (lavagna)
- Esercitazione 09, 2024-12-12/13: esercitazione su tutti gli argomenti del corso. (pdf)
- Lezione ripasso, 2024-12-18: Ripasso ed esempi di puntatori. Array come puntatori. Puntatori con puntatori come array. Passaggio di array come puntatori. (lavagna)
- Esercitazione 10, 2024-12-19/20: esercitazione su tutti gli argomenti del corso. (pdf)
- Esercitazione 11 valutata, 2025-01-09/10: (testo a) (testo b)