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: