Ritorna alla pagina del corso.
Questa pagina contiene gli esercizi proposti in laboratorio e -alcune- delle soluzioni proposte.
Si suggerisce di provare a risolvere gli esercizi e solo in un secondo tempo di confrontare quanto fatto con le soluzioni proposte.
01: /*
02: 1. Per calcolare la radice quadrata di un numero si puo' usare l'algoritmo di Newton. Dato un numero n di cui calcolare la radice, inizializzo il risultato r a 1. Ad ogni iterazione aggiorno r come
03: valor medio tra r stesso e n/r (im pratica (r + n/r)/2 ) Mi fermo quando la differenza tra il valore con cui aggiorno r e il valore precedente di r e' inferiore a 10^-6 Confrontare il risultato con quanto restituito da sqrt(n)
04: */
05: #include<stdio.h>
06: #include<stdlib.h>
07: #include<math.h>
08:
09: int main(int argc, char **argv){
10:
11: float n;
12: printf("Inserisci un numero non negativo: ");
13: scanf("%f", &n);
14:
15:
16: float r = 1, prec_r;
17:
18: do
19: {
20: prec_r = r;
21: r = (r + n/r)/2;
22: }
23: while(r - prec_r > 10.0e-6 || prec_r - r > .000001); //XXX in alternativa potevo usare fabs(r - prec_r);
24:
25: printf("La radice quadrata di %f vale %f (sqrt() mi dice %f)\n", n, r, sqrt(n));
26:
27:
28:
29: return 0;
30: }
31:
32: