Laboratorio di Calcolo
Corso di Laurea in Fisica

Navigation

Obiettivi
La definizione di un modello logico matematico della realtà è una delle principali abilità che caratterizza un fisico. La programmazione dei computer, oltre ad essere un'attività molto comune, sia nel campo della ricerca che nell'impresa e nella pubblica amministrazione, si può svolgere solo se si possiede questa abilità.

Lo scopo di questo corso è quindi quello di sviluppare le capacità di analisi e di sviluppo di modelli logico matematici delle osservazioni sperimentali, attraverso la programmazione dei calcolatori, al fine di realizzare algoritmi di calcolo utili in molti campi di applicazione di carattere scientifico. Seguendo questo corso si impara a programmare un calcolatore e a definire diversi modelli di realtà

Il linguaggio scelto per questo corso è il C. Al fine di allargare ulteriormente l'orizzonte delle conoscenze di un fisico, le esercitazioni si svolgono su computer con sistema operativo Linux, molto usato in ambito scientifico e in rapida diffusione in altri contesti.

Prerequisiti
Il corso assume che lo studente non abbia alcuna conoscenza di carattere informatico. Si richiede solo una discreta conoscenza della matematica (per alcune applicazioni è richiesta una discreta conoscenza dell'analisi, che lo studente maturerà nel corso del semestre) e di fisica di base, al livello delle nozioni impartite nelle scuole superiori.

Lezioni
Introduzione. I calcolatori per la fisica. Rappresentazione dei numeri nel sistema di numerazione decimale. Sistemi posizionali.
Operazioni aritmetiche. Il sistema binario. Trasformazioni di base. Il sistema esadecimale. Sistemi di rappresentazione. (2) Numeri negativi in complemento e in eccesso. Numeri razionali. Rappresentazione IEEE754.
Linguaggi di programmazione. Il linguaggio macchina. Compilatori. Librerie. Rappresentazione delle variabili nella memoria. Operazioni semplici con le variabili. (2) Rappresentazione dei caratteri e delle stringhe. Rappresentazione di suoni e immagini. Proposizioni logiche. Algebra di Boole.
Il linguaggio C. La funzione main. Dichiarazione delle variabili. Operatori aritmetici e di assegnazione. L'I/O: scanf.
Il teorema di Bohm-Jacopini. Diagrammi di flusso. Struttura si selezione. L'istruzione if.
Strutture di iterazione: while, do, for.
Gli array. Algoritmi di ordinamento: bubblesort. Le stringhe come array di caratteri. Generazione di numeri casuali. Array multidimensionali. Algoritmo di decomposizione LU delle matrici quadrate.
Puntatori. Array e puntatori. Aritmetica dei puntatori. Efficientamento dei cicli mediante i puntatori. Uso dei file.
Funzioni: dichiarazione e uso. Passaggio di array alle funzioni.
Puntatori a funzione.
Interpolazione con i polinomi di Lagrange. Integrazione numerica.

Giudizi delle esercitazioni
La terza esercitazione è stata valutata. Guardate il vostro giudizio qui. Uno dei programmi migliori è quello del gruppo 14. Complessivamente la prova non è stata esaltante. In particolare non è chiara a molti la differenza tra un if e un do. Inoltre tanti hanno usato per pi greco un numero scritto a mano. Gli incrementi di una variabile si fanno preferibilmente con l'operatore +=. Cercate sempre di individuare le quantita' che rimangono costanti all'interno dei cicli e portatene il calcolo fuori, per evitare di ripetere inutilmente dei calcoli.
Una possibile soluzione è consultabile qui. Usando questo programma sono stati prodotti i grafici 1, 2 e 3.

Le valutazioni dell'esercitazione 4 sono disponibili qui. I compiti migliori sono quelli dei gruppi 3, 8, 10 e 14. Ho una leggera preferenza per il 14 perché è scritto in modo leggermente piú ordinato.
Una possibile soluzione è consultabile qui.

Le valutazioni dell'esercitazione 5 sono disponibili qui. I compiti migliori sono quelli dei gruppi 3, 8, 10 e 19. Anche quelli dei gruppi 2, 9, 20 e 21 non sono male. Mi aspetto una maggiore assiduità nello studio, piú laboratorio libero e piú visite nel mio studio!
Una possibile soluzione è consultabile qui.

L'esercitazione 6 è stata un disastro. I compiti 8, 20 e 23 sono i migliori e sono anche buoni, ma in media va malissimo. Leggete i giudizi qui.

Home

Il corso

Il docente

Gli orari

Gli esami

Materiale Didattico

Documentazione