2013-02: Math 2
Calculate the square root of a number without using the Math methods (SquareRoot or Power).
Calcola la radice quadrata di un numero senza utilizzare i metodi Math.SquareRoot(), Math.Power(), …
Soluzione #1
Calcola la radice quadrata di un numero da 1 a 1.000.000 senza utilizzare le funzioni della libreria matematica.
Effettua una ricerca binaria della radice…
TextWindow.Write("Numero da 1 1000000: ")
n=TextWindow.ReadNumber()
' --------------------------------------------------------------
minimo =1
massimo=1000
errore =1
' --------------------------------------------------------------
While(errore > 0.001)
x=(minimo+massimo)/2
' TextWindow.WriteLine(minimo + " - " + x + " - " + massimo)
errore=n-x*x
if(errore > 0) Then
minimo=x
ElseIf(errore < 0) Then
massimo=x
EndIf
errore=Math.Abs(errore)
EndWhile
' --------------------------------------------------------------
TextWindow.WriteLine("Radice quadrata di " + n + " = " + x)
Soluzione #2
Metodo babilonese (Archita, Erone, Newton...)
TextWindow.Write("Numero: ")
n=TextWindow.ReadNumber()
' --------------------------------------------------------------
x=n/2
errore=1
While(errore > 0.001)
x=(x+n/x)/2
' TextWindow.WriteLine(x)
errore=Math.Abs(n-x*x)
EndWhile
' --------------------------------------------------------------
TextWindow.WriteLine("")
TextWindow.WriteLine("Radice quadrata di " + n + " = " + x)