Stein
0
Ich will mit Hilfe dies PHP-Skripts die Wurzel einer Zahl berechnen:
Das Problem liegt in Zeile 13: 16-(8?)=-48 ist kleiner als 16-(1?) deswegen wird $unten verändert und nicht $oben,welche ja weiter entfernt ist. Deswegen suche ich nach einer möglichkeit den Betrag einer Zahl zubrechnen(Betrag von -12 ist 12) oder ein unsinged Varibale zu deklarieren. Aber leider Spuckt google zu beidem nichts aus.
gruß Stein
Edit: Das kommt davon wenn man beim posten sein Programm ein wenig erweitert: PhP hat einen Dezimalpunkt nicht Komma
Geistesblitz:
Aber gibt es da nicht auch eine elegante Lösung? Was meint ihr?
PHP:
<?php
/*Das Programm soll die Wurzel einer Zahl($Zahl) mit der Genauigkeit($genauigkeit) berechnen.*/
$zahl = 16;
$unten = 1;
$oben = $zahl/2;
$genauigkeit = 0.0000001;
echo "Oben: $oben Unten: $unten<br>";
while ($oben - $unten > $genauigkeit)
{
$obenquadrat = $oben * $oben;//Quadrat von oben
$untenquadrat = $unten * $unten;//Quadrat von unten
$mitte = ($unten + $oben)/2;//Mitte der Zahlen
if ($zahl-$obenquadrat < $zahl-$untenquadrat)
{
$unten= $mitte;
echo "Oben: $oben Unten: $unten<br>";//Diehnt zu leichtern Fehlerbehebung
}
elseif ($zahl-$obenquadrat > $zahl-$untenquadrat)
{
$oben= $mitte;
echo "Oben: $oben Unten: $unten<br>";//Diehnt zu leichtern Fehlerbehebung
}
}
?>
Das Problem liegt in Zeile 13: 16-(8?)=-48 ist kleiner als 16-(1?) deswegen wird $unten verändert und nicht $oben,welche ja weiter entfernt ist. Deswegen suche ich nach einer möglichkeit den Betrag einer Zahl zubrechnen(Betrag von -12 ist 12) oder ein unsinged Varibale zu deklarieren. Aber leider Spuckt google zu beidem nichts aus.
gruß Stein
Edit: Das kommt davon wenn man beim posten sein Programm ein wenig erweitert: PhP hat einen Dezimalpunkt nicht Komma
Geistesblitz:
PHP:
<?php
$a = $zahl - $obenquadrat
if ($a<0)
{
$a= $a*-1
}
?>