Orario Lezioni
Inizio lezioni Mercoledi` 1 ottobre 2025 (Orario Lezioni Dipartimento,)
- Lezione, Mercoledi` 8-10, Aula Cabibbo, Edificio Fermi (CU033)
- Lezione, Venerdi` 10-11, Aula Cabibbo, Edificio Fermi (CU033)
- Esercitazione Sessione 1, Lunedì 16-19, Laboratorio Calcolo, Piano 2, Edificio Fermi (CU033)
- Esercitazione Sessione 2, Giovedì 9-12, Laboratorio Calcolo, Piano 2, Edificio Fermi (CU033)
- Esercitazione Sessione 3, Venerdì 12-15, Laboratorio Calcolo, Piano 2, Edificio Fermi (CU033)
Appello di Febbraio
Solo le persone prenotate su infostud entro la scadenza della scorsa settimana che non hanno un voto valido all’appello di Gennaio e che abbiano esplicitamente scritto fino a ieri per rinunciare al voto possono sostenere l’esame.
Chi ha già un voto valido non deve fare nulla, e troverà il propriovoto verbalizzato non appena sarà ripristinato l'accesso a INFOSTUD. La prova pratica si svolgerà il giorno venerdì 6 febbraio in Sala Calcolo, piano 2, Edificio Fermi (CU033) in due fasce orarie: 10 e 14. Alla pagina seguente trovate l’orario assegnato a ciascuna partecipante: elenco partecipanti
Non sara` possibile cambiare orario o partecipare se non siete in questo elenco.
Chi non intende partecipare piu` alla prova e` pregata di farmelo sapere entro giovedi` 5 febbraio.
Avvisi
Censimento per formazione gruppi di esercitazione: coloro che intendono frequentare il corso sono pregati di riempire questo modulo di censimento entro le ore 12 di Venerdi 3 ottobre
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.
È possibile sostenere l'esame in tutti gli appelli. Gli appelli straordinari di maggio e novembre sono riservati alle categoria indicate nell'art. 21 del regolamento d'ateneo.
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.
Esercitazioni
- Esercitazione 01, 2025-10-13/16/17: Nozioni base di linux. (pdf) Uso di editor di testo e il primo programma in C. (pdf)
- Esercitazione 02, 2025-10-20/23/24: uso di libreria matematica, costrutto if/else e do/while. (pdf) esempio soluzione (gwave.c) esempio soluzione con controllo variabile input (gwavebis.c)
- Esercitazione 03, 2025-10-27/30/31: uso del costrutto if/else e cicli do/while e for. Moto del proiettile ed esempio di grafica con python. (pdf) esempio soluzione (gittata.c, bersaglio.c, grafica.py)
- Esercitazione 04, 2025-11-03/06/07: esercitazione su metodi ricorsivi e cicli e grafica con python. Metodo babilonese per il calcolo della radice quadrata. (pdf) esempio soluzione (babilon-radice.c, convergenza.py)
- Esercitazione 05, 2025-11-10/13/14: Stima di π con i numeri casuali. Grafici ed istogramma con python. (pdf) esempio soluzione (buffon.c, pigreco.py)
- Esercitazione 06, 2025-11-17/20/21: Cammino aleatorio in 1D. Grafico a barra con python. (pdf) esempio soluzione (walk.c, walk-part2.c, frequenza.py)
- Esercitazione 07, 2025-11-25/27/28: Generazione numeri casuali, uso di array, e calcolo della media. Grafica con python. (pdf) esempio soluzione (masterchef.c, grani.py) esempio soluzione con uso di funzioni (masterchef_with_func.c)
- Esercitazione 08, 2025-12-01/04/05: Array 1D e 2D e funzioni con puntatori. Grafica con python. (pdf) esempio soluzione (collision.c, collision.py)
- Esercitazione 09, 2025-12-15/18/19: Album di figurine. esercitazione su tutti gli argomenti del corso. (pdf) esempio soluzione (figurine.c)
Materiale del Corso
- Lezione 01, 2025-10-01: Introduzione. Organizzazione del corso e delle esercitazioni. Informazioni pratiche. (pdf) Sistemi di numerazione. Base binaria, decimale, ed esadecimale. (lavagna)
- Lezione 02, 2025-10-03: Rappresentazione di numeri interi negativi. Numeri razionali. (lavagna)
- Lezione 03, 2025-10-08: Singola e doppia precisione. Il problema di approssimazione in virgola mobile. Rappresentazione di caratteri e codice ASCII. Immagini digitali. Calcolatori e linguaggio macchina. Indirizzi di memoria e istruzioni. Esempio di calcolatore semplice con 8 bit. (lavagna)
- Lezione 04, 2025-10-10: Calcolatori e linguaggio macchina. Linguaggi di programmazione di alto livello. Compilatori. Elementi base del C. Compilazione e linking dei programmi. (lavagna)
- Lezione 05, 2025-10-15: Elementi base del C. Variabili e tipi. La funzione main. Operatori matematici. Operatori unari e binari. printf e scanf per input/output. Importanza dei descrittori in printf. uso della libreria matematica. header file e librerie. Istruzioni #include del precompilatore. Descrittoi in input ed output. Esempio di conversione da gradi in radianti. (lavagna)
- Lezione 06, 2025-10-16: Esempio con descrittori. (descrittore.c) Priorita` e priorita` degli operatori matematici. (priorita.c) Funzioni della libreria matematica. Diagramma di flusso del programma. Decisioni: costrutto if/else e if/else if/else. Iterazioni: cicli do/while. contatore nel ciclo. (lavagna)
- Lezione 07, 2025-10-17: Iterazioni: cicli do/while, while. ciclo for. Esempio del ciclo while per caduta del grave. Costanti con il precompilatore. Calcolo del fattoriale con il ciclo for. (fattoriale.c) Cicli ricorsivi: la serie di Fibonacci. (fiboLlu.c) Variabili ausiliari di appoggio e contatori. (lavagna)
- Lezione 08, 2025-10-29: Metodo di bisezione per trovare gli zeri di una funzione (bisezione.c). Operatore % per calcolo resto divisione tra interi. Determinare se un numero è primo (primi1.c). Ricerca dei numeri primi (primi100.c). Conversione da base 10 in base 2 (binaryErr.c). Array statici in C: tipo e lunghezza. Accesso agli elementi di array con operatore []. Limiti per indici di array. (lavagna)
- Lezione 09, 2025-10-31: Array statici in C: lunghezza e dimensione. Array uni- e multi-dimensionali. Conversion in binario usando array (binary.c). Esempio di stampa di vettori e matrici con ciclo for; prodotto scalare tra vdettori e prodotto tra matrici e vettori (array2.c). (lavagna)
- Lezione 10, 2025-11-05: Input ed output di elementi di array (array1.c). Generaziune numeri pseudo-casuali interi e razionali in un intervallo [a,b]. Funzioni srand48(), lrand48(), e drand48(). Generazione non-uniforme di numeri in un intervallo [a,b]. Pseudo-esperimenti con il lancio della moneta (monete.c). Uso di array di contatori. Esempio di cicli annidati. (lavagna)
- Lezione 11, 2025-11-07: Stringhe in C come array di char. I/O di stringhe. manipolazione con la funzione sprintf(). Il gioco di tris. (strings1.c, strings2.c). (lavagna)
- Lezione 12, 2025-11-12: Esempio di codice in python per la grafica in esercitazione 4 (colab nb, pdf). Introduzione a python: variabili, condizioni, cicli, array, e libreria matematica (colab nb, pdf). Breve introduzione a python e jupyter notebook (md) Scrittura su file in C. (fileOutput.c). (lavagna) NB:l'accesso a colab per visionare i notebook di python richiede l'uso delle credenziali uniroma1
- Lezione 13, 2025-11-14: Puntatori in C (pointer.c). Relazione tra puntatori e array. accesso agli array 1D con il puntatore (pointerArray.c). (lavagna)
- Lezione 14, 2025-11-19: Spiegazione della soluzione dell'esercitazione 5 (buffon.c) Algoritmo bubble sort per ordinamento di array di dati (bubble.c, bubblePtr.c). Ricerca binaria di elementi in un array ordinato (binsearch.c, binsearchPtr.c). Uso di puntatori con array 2D (array2D.c). (lavagna)
- Lezione 15, 2025-11-21: Introduzione alle funzioni in C. Esempi di dado(N), generaInt(a,b), uniforme(a,b). (lavagna)
- Lezione 16, 2025-11-26: Differenza tra dichiarazione, implemnentazione, e chiamata di funzioni. Funzioni con argomenti di tipo array 1D e 2D e puntatori. Differenza tra il passaggio per valore e per puntatore. Esempi di funzioni: media(), printMat(), inizializzaMat(), prodotto(matrice, vettore), modulo di vettori, prodotto scalare tra vettori. (lavagna)
- Lezione 17, 2025-11-28: Differenza tra il passaggio per valore e per puntatore (passbyptr.c). Funzione generaCerchio() e gioco delle freccette. (lavagna)
- Lezione 18, 2025-12-03: Esempio di uso di array 1D, 2D, puntatori e funzioni (cerchio.c). Esempio di funzioni con array 2D (matrici.c). Generazione numeri casuali in intervallo [a,b] secondo una funzione f(x) e grafica con python (generator.c, generator.py) (lavagna)
- Lezione 19, 2025-12-05: 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) Formulario OPIS: codice opis 4SQ3CIBN (vademecum studenti)
- Lezione 20, 2025-12-05, 10-11: svolgimento di una prova valutata del passato in classe (lavagna)
- Lezione 21, 2025-12-17: 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)
- Lezione 22, 2025-12-19: lezione di ripasso: funzioni con puntatori ed array. (lavagna)