Posto la descrizione dell'algoritmo di calcolo della radice quadrata di un numero n per chi si scervella e si è scervellato come me per fare un programma veloce che calcoli la benedetta radice quadrata.
SQRT(n)
h=n/2;
i;
FOR(i=0;i<NUM_CICLI;i++)
h->(h+(n/h))/2;
END FOR
RETURN h;
END SQRT
La funzione in pseudocodice sopra riporta il metodo di calcolo della radice quadrata come ce la vuole far calcolare Erone, essa si basa su una semplicissima osservazione geometrica in quanto calcola l'area di una figura di cui conosce il lato e via via approssima sinché non trova la radice, una forma più corretta ma che potrebbe a seconda dell'approssimazione della variabile rallentare il calcolo (o accelerarlo) è
SQRT(n)
h=n/2;
FOR(;(h*h)!=n; )
h->(h+(n/h))/2;
END FOR
RETURN h;
END SQRT
Ma se la macchina non approssima mai per eccesso, come spesso succede, allora si fermerebbe solo in caso di quadrato perfetto, per cui sarebbe meglio usare la prima versione.
Ultima modifica effettuata da lorelapo il 17/05/2007 alle 17:20 |