Rechung vehlerhaft :(
Jack
- javascript
Hallo ich habe da folgendes Problem:
Heute haben wir inder Schule Parabelberchnung (Mathe Parabelberechnung gemacht).
In Fach Programmieren haben wir bisher function if und while kennen gelernt (JavaScript)
Nur leider funktioniert das nicht so wie das soll,
Die Formel ist ja
x1= -(q/2)+ Wurzel aus ((p/2)²-q)
x2= -(q/2)- Wurzel aus ((p/2)²-q)
So habe ich das in Js umgestzt:
<html>
<head>
<script language="JavaScript">
function rechnen(a,b)
{
var h=(g+c)
var i=(c-g)
var c=(-(a/2))
var d=((a/2)*a)
var e=(d-b)
var f = Math.sqrt(e)
var g=(Math.round(f * 100) / 100).toString();
alert (h)
}
</script>
</head>
<body>
y=x²<input type="text" value="x" name="x">
<input type="text" value="" name="y">
<input type="button" onClick="rechnen(x.value,y.value)">
</body>
</html>
Mit der Formel ist alles Richtig bis (g),
var h=(g+c) geht nicht.
Wobei g und c einzel selber mit alert (g) oder alert (h) gehen.
wenn ich alert(h) mache kommt immer NaN.
Also ich habe schon fast alles Probiert nur den Fehler finde ich trotzdem nicht
Hoffe ihr könnt mir helfen.
MfG Jack
Jack,
In Fach Programmieren haben wir bisher function if und while kennen gelernt (JavaScript)
<script language="JavaScript">
Da habt Ihr hoffentlich nicht so kennengelernt. Ansonsten kannste deinen Lehrer gleich mal berichtigen:
<script type="text/javascript">
y=x²<input type="text" value="x" name="x">
<input type="text" value="" name="y">
<input type="button" onClick="rechnen(x.value,y.value)">
Die Werte in den Eingabefeldern sind Strings! Also erst in Zahlen umrechnen.
Gunnar
Zitat:
Mit der Formel ist alles Richtig bis (g),
var h=(g+c) geht nicht.
Wobei g und c einzel selber mit alert (g) oder alert (h) gehen.
wenn ich alert(h) mache kommt immer NaN.
Es geht ja nur h wird nicht berechnet mit text javascript gehts auch ned!
MfG Jack
Jack,
Mach doch mal alert([link:http://de.selfhtml.org/javascript/sprache/operatoren.htm#typeof@title=typeof] g)
, dann siehste, was ich meinte.
Und da du keine Quick-and-dirty-Lösung willst, schauste dir parseFloat() an.
Gunnar
var h=parseFloat((g+c))
var x2=(c-g)
var c=(-(a/2))
var d=((a/2)*a)
var e=(d-b)
var f = Math.sqrt(e)
var g=(Math.round(f * 100) / 100).toString();
alert(h)
Schon probiert ausgabe NaN
Ausgabetyp von g: string
MfG Jack
Hehe Problem gefunden^^
{
var c=(-(a/2))
var c=(-(a/2))
var d=((a/2)*a)
var e=(d-b)
var f = Math.sqrt(e)
var g=(Math.round(f * 100) / 100).toString();
var h=parseFloat((g+c))
var i=(c-g)
alert (h)
}
so bei Testwert 20 und 21 kamm 13 raus laut Taschenrechner müsste aber -13,noch was rauskommen nach komma stelle ist egal nur das Vrozeichen soll übernommen werden!
Danke
Jack
Jack,
Hehe Problem gefunden^^
Sicher?
var c=(-(a/2))
var c=(-(a/2))
Meinste, beim zweiten Mal kommt was anderes raus?
var g=(Math.round(f * 100) / 100).toString();
Was bitte soll das denn (die Umwandlung in String)?
Mir ist auch überhaupt nicht klar, warum du so viele Variablen benutzt. Dadurch wird der Code dermaßen unübersichtlich.
Und ein ; an jedem Zeilenende schadet acuh nicht.
Gunnar
Hallo Jack,
var h=(g+c) <--- hier
var i=(c-g) <--- und hier wird auf c zugegriffen
var c=(-(a/2)) <--- aber erst hier wird c ein Wert zugewiesen!
den Rest hab ich jetzt nicht geprüft. Und beachte den Tipp von Gunnar. Die Values von Inputs sind Strings, und bei denen hat + eine andere Bedeutung als bei Zahlen: 1+2=3, aber "1"+"2"="12" !
Gruß, Jürgen
Jack,
Die Formel ist ja
x1= -(q/2)+ Wurzel aus ((p/2)²-q)
x2= -(q/2)- Wurzel aus ((p/2)²-q)
Nö, isse nicht.
Gunnar
Könnte es vielleicht sein, dass in dieser Schule die Gewichtung dessen, was man lernen sollte, ein bisschen falsch gesetzt wird?
Könnte man nicht, bevor man die Kinder an solche Rechnungen lässt, ihnen korrektes Deutsch beibringen?
Deutschland, deine Lehrer und Eltern!
Kalle
Hallo Kalle,
Könnte man nicht, bevor man die Kinder an solche Rechnungen lässt, ihnen korrektes Deutsch beibringen?
| jackoneill@icqmail.de
Deutschland, deine Lehrer und Eltern!
Ab in die Ecke mit dir.
Grüße
Roland