1Prerequisiti: laboratorio di calcolo¶
Ecco una lista degli argomenti che si studiano nel corso di Laboratorio di Calcolo, e che costituiscono quindi i prerequisiti computazionali di questo corso:
Introduzione al corso, accenno sui sistemi posizionali, sistemi di numerazione decimale, binario ed esadecimale. Conversioni da un sistema a un altro. Somme e sottrazioni di numeri binari.
Rappresentazione di numeri negativi, complemento a due e in eccesso.
Virgola mobile e IEEE754, problemi di arrotondamento, CPU, dispositivi I/O, ASCII e UNICODE, RAM.
Linguaggio macchina, linguaggi di alto livello, compilatore e interprete, introduzione al C.
Introduzione al C: variabili, tipi e cast, operatori aritmetici, incremento e decremento.
Il preprocessore (solo
#include), input/output e printf.scanf, operatori logici e relazionali, priorità degli operatori, librerie matematiche, il linker.
#definee compilazione condizionata.Diagrammi di flusso, teorema di Bohm-Jacopini,
if/else,for/while/do.Array unidimensionali.
Bubblesort, ricerca binaria su array ordinati, numeri pseudocasuali, algoritmo lineare congruenziale.
Istogramma di valori interi e reali.
Array multidimensionali, esempi con matrici, introduzione ai puntatori.
Input/output su file.
Puntatori e array unidimensionali, qualificatore const, puntatori e array multidimensionali.
Introduzione alle funzioni.
Librerie, personali, argomenti passati by reference e by value, introduzione alle stringhe.
getchar,putchar, array multidimensionali di stringhe.Manipolazione di stringhe, lettura di stringhe da file, integrazione numerica: rettangoli e trapezi.
Integrazione Monte Carlo.
Sul mio sito trovate le slide che utilizzavo quando insegnavo il corso (2022-2026).
2Programma del corso¶
2.1Algoritmi¶
Integrazione di equazioni differenziali ordinarie
Metodi di Eulero, Eulero-Cromer, Velocity Verlet e Runge Kutta
Accuratezza e stabilità
Applicazioni: oscillatore armonico, pendolo, pendolo smorzato, pendolo smorzato e forzato, moto di due pianeti intorno al Sole
Cammini aleatori
Generazione di numeri pseudocasuali uniformi e non uniformi
Cammini aleatori (random walk) in una e più dimensioni
Applicazioni: Diffusione, self-avoiding random walk, gas reticolare
Liste
Liste concatenate, alberi, e clustering
Applicazione: la percolazione
2.2Argomenti di C:¶
Definizione di strutture dati tramite
structDefinizione di tipi derivati tramite
typedefAllocazione dinamica della memoria (
malloc,callocefree)Operazioni bit-a-bit (operatori
bitwise)
2.3Come utilizzare queste note¶
Il testo contiene dei box di diverso tipo che sono corredati da simboli e colori che ne contraddistinguono il significato:
Approfondimenti (matematici o di concetto) sono racchiusi in box di questo tipo:
Concetti o questioni a cui bisogna prestare particolarmente attenzione sono evidenziati con box di questo tipo:
I nuovi argomenti di C vengono introdotti in sezioni apposite, il cui titolo comincia con C:, seguito dall’argomento discusso, oppure in box di questo tipo:
3Libri e dispense¶
Il corso è basato sulla seconda parte del libro “Programmazione scientifica” di L. M. Barone, E. Marinari, G. Organtini e Federico Ricci-Tersenghi, edito da Pearson. Le note che state leggendo sono invece una rielaborazione di alcuni degli argomenti che ho compilato durante la preparazione del corso. Questo materiale quindi non si sostituisce al libro, ma lo integra in alcune parti.