• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Fehlermeldungen klappen nicht

togrisch

New member
Hallo,
ich habe dieses Semester Informatik als Nebenfach und muss eine Aufgabe abgeben. Bevor überhaupt gerechnet werden soll, habe ich in Javascript einige Bedingungen formuliert, die erfüllt werden müssen. Erst wenn die Bedingungen erfüllt sind, wird gerechnet. Ich habe z.B. definiert, dass wenn die Anfangsgeschwindigkeit 0 ist, muss die Beschleunigung größer 0 sein. Werden beide Angaben im HTML Formular gleich 0 gesetzt, müsste eine Fehlermeldung kommen. Allerdings kommt keine und gerechnet t1=sges*s01 wird auch nicht( Ich weiß die Formel ist falsch, ist allerdings nur zum testen.) Ich habe mal das Script hochgeladen und würde mich freuen, ob jemand den Fehler entdeckt.
https://jsfiddle.net/ef2xjx9y/

mfg
togrisch

PS: Bin leider kein Informatiker, daher bitte ich um Entschuldigung, für fehlende Termini :)
 
Zuletzt bearbeitet:
dein fiddle ist komplett kaputt, weil du einfach das ganze html in den js-abschnitt hast

bitte öffne jetzt zuallererst einmal die Konsole , dann wirst du schon mal zwei syntaxfehler/vertipper finden.

was mir außerdem gleich mal auffällt:
  • der <center>-tag ist deprecated -> weg damit
  • das <div> um den button ist unnötig und wird zudem nicht geschlossen
  • html5 hat input type "number", das eignet sich hier prima
  • eventhandler besser mit javascript, nicht im html setzen
  • du hast den button als <input> definiert, schließt dann aber ein nicht-existierendes element </button>
  • die bennenung der variablen und ids ist etwas suboptimal, z.b. v01<->v1

fehler im skript an sich:
  1. du weist hier einfach werte zu, anstatt zu vergleichen: if(v01 = 0 && a1 <= 0) {
  2. hier if(a2 === 0 && v02 < 0) { wäre 0 auch gültig, du willst aber positive werte.
  3. das hier
    Code:
    if(sges <= 0) {
    	document.getElementById('sges').value = sges;
    	document.getElementById('s01').value = s01;
    }
    ist irgendwie komplett sinnfrei, keine ahnung was das soll
  4. deine tabelle ist massiv invalide, da fehlen einfach tags!

So, das hier ist jetzt zumindest einmal ein sauberer code. um den inhaltlichen teil (die berechnungen) musst du dich jezt kümmern: https://jsfiddle.net/ef2xjx9y/2/
 
Hallo zirzofer,
vielen dank für deine Hilfe. Wenn ich jetzt den Code zum testen aus deinem fiddle rauskopiere, werden die ganzen Wörter nicht wie sonst im Notepad++ farbig markiert, sondern bleiben in schwarzer Schrift. Außerdem führt er das Script nicht im Browser aus. Was habe ich da falsch gemacht? Darf man das nicht einfach rauskopieren?
 
Zuletzt bearbeitet von einem Moderator:
So läuft das nicht. was soll das? ich stecke doch nicht zeit in die beschaeftigung mit deinem problem, wenn du das klammheimlich entfernen willst.
Sehe ich auch so. Habe das mal wiederhergestellt.

@togrisch: was soll das? Jede Frage ist wertvoll und kann später auch anderen helfen!
 
eventuell als textdokument statt html gespeichert?

Das war der Grund. Ich habe jetzt ein Problem bei den Rechnungen. Und zwar gibt es zweimal die Variable t1, sowie t2. Wenn a1 und a2 ungleich 0 sind, sollen die oberen beiden Rechnungen genommen werden. Wenn a1 und a2 gleich 0 sind, die unteren beiden. Ich habe versuch eine if-else unterscheidung zu nehmen, allerdings rechnet er nicht dann korrekt.

t1 = (-v01)/a1 + Math.sqrt((v01/a1)*(v01/a1)-(2*(s01-sges))/a1); //a1 != 0
document.getElementById('t1').value= t1 ;
t2 = (-v02)/a2 + Math.sqrt((v02/a2)*(v02/a2)-(2*(s02-sges))/a2); //a2 != 0
document.getElementById('t2').value= t2 ;
t1= (sges-s01)/v1 ; //a1 === 0
document.getElementById('t1').value= t1 ;
t2= (sges-s02)/v2 ; //a2 === 0
document.getElementById('t2').value= t2 ;
 
Code:
if(a1==0&&a2==0){
  t1= (sges-s01)/v1;
  t2= (sges-s02)/v2;
}else{
  t1 = (-v01)/a1 + Math.sqrt((v01/a1)*(v01/a1)-(2*(s01-sges))/a1);
  t2 = (-v02)/a2 + Math.sqrt((v02/a2)*(v02/a2)-(2*(s02-sges))/a2);
}
document.getElementById('t1').value= t1;
document.getElementById('t2').value= t2;
Da du deinen nicht funktionablen Code mit if-else nicht angegeben hast, habe ich hier versucht, ihn aus deiner Beschreibung zu erstellen. Die Formeln sind aus einem obigen Code (ohne Code-Tags :() übernommen.
 
Zurück
Oben