Le prime due lezioni sono state dedicate a:
Introduzione al corso,
introduzione all'architettura del calcolatore,
Primo cenno alle parole latency e bandwith,
presentazione del programmino "satanico":
#include <stdio.h>
int main() {
double x,d;
d=0.1;
x=d ;
for (int i=0; i<30; i++) {
printf("Ciclo %d Valore :%.20e \n",i,x);
x=d*(double)11.-(double)10*x; //11*0.1 = 1.1 - 10*0.1 = 1 => 0.1
} return 0;
}
Spiegazione dell'output di questo come frutto di un arrotondamento floating point che si propaga con conseguenze disastrose.Guardate inoltre questa domanda che ho fatto a StackOverflow e quest'articolo su problemi riguardanti l'ottimizzazione per quanto riguarda le operazioni in virgola mobile.
Abbiamo inoltre parlato di memoria "Stack" e "Heap".
Introduzione al corso,
introduzione all'architettura del calcolatore,
Primo cenno alle parole latency e bandwith,
presentazione del programmino "satanico":
#include <stdio.h>
int main() {
double x,d;
d=0.1;
x=d ;
for (int i=0; i<30; i++) {
printf("Ciclo %d Valore :%.20e \n",i,x);
x=d*(double)11.-(double)10*x; //11*0.1 = 1.1 - 10*0.1 = 1 => 0.1
} return 0;
}
Spiegazione dell'output di questo come frutto di un arrotondamento floating point che si propaga con conseguenze disastrose.Guardate inoltre questa domanda che ho fatto a StackOverflow e quest'articolo su problemi riguardanti l'ottimizzazione per quanto riguarda le operazioni in virgola mobile.
Abbiamo inoltre parlato di memoria "Stack" e "Heap".