Zum Inhalt
Komplexe Leistung
Aus ProgrammingWiki
<
Timpfeiffer
Inhaltsverzeichnis
1
Eigenschaften und graphische Darstellung quadratischer Funktionen
1.1
Herausfinden der Parameter
1.2
Ausgabe der Nullstellen und des Scheitelpunktes
1.3
Grafische Darstellung
1.4
Ergebnis am "Front-End"
Eigenschaften und graphische Darstellung quadratischer Funktionen
Herausfinden der Parameter
function getabc(gleichung) { gleichung = gleichung.replace(/(?:y=|f\(x\)=)/,''); if(gleichung.startsWith('+')) gleichung = gleichung.replace('+',''); var parameter = { 'a': '', 'b': '', 'c': '' } let check = false, digits = 0, posa = gleichung.indexOf('x²') - 1; if(posa == -2) return; else switch(gleichung[posa]){ case undefined: parameter.a = 1; gleichung = gleichung.replace(`x²`,''); break; case '+': parameter.a = 1; gleichung = gleichung.replace(`+x²`,''); break; case '-': parameter.a = -1; gleichung = gleichung.replace(`-x²`,''); break; default: while(!check){ if(gleichung[posa - digits] * 1 || gleichung[posa - digits] == '0' || gleichung[posa - digits] == '.'){ parameter.a += gleichung[posa - digits]; digits++; } else{ if(gleichung[posa - digits] == '-') parameter.a += '-'; check = true; parameter.a = parameter.a.split('').reverse().join('') * 1; gleichung = gleichung.replace(`${parameter.a}x²`,''); } } } if(gleichung.startsWith('+')) gleichung = gleichung.replace('+',''); check = false; digits = 0; let posb = gleichung.indexOf('x') - 1; if(posb == -2) parameter.b = 0; else switch(gleichung[posb]){ case undefined: parameter.b = 1;gleichung = gleichung.replace(`x`,'');break; case '+': parameter.b = 1;gleichung = gleichung.replace(`+x`,'');break; case '-': parameter.b = -1;gleichung = gleichung.replace(`-x`,'');break; default: while(!check){ if(gleichung[posb - digits] * 1 || gleichung[posb - digits] == '0' || gleichung[posb - digits] == '.'){ parameter.b += gleichung[posb - digits]; digits++; } else{ if(gleichung[posb - digits] == '-') parameter.b += '-'; check = true; parameter.b = parameter.b.split('').reverse().join('') * 1; gleichung = gleichung.replace(`${parameter.b}x`,''); } } } if(gleichung.startsWith('+')) gleichung = gleichung.replace('+',''); if(gleichung.endsWith('+')) gleichung = gleichung.substring(0, gleichung.length - 1); parameter.c = gleichung * 1; return(parameter); }
Ausgabe der Nullstellen und des Scheitelpunktes
function infos(parameter){ if(parameter.a == 0){ //mn-Form: let m = parameter.b, n = parameter.c; //Nullstelle: var x0 = 0; if(m==0) if(n==0) x0 = 'unendlich viele NST'; else x0 = 'keine NST'; else x0 = Number(- n / m); //Ausgabe: console.log(`<i>Nullstelle:</i> <b>${x0}</b>`); } else{ //pq-Form: let p = parameter.b / parameter.a, q = parameter.c / parameter.a; //Nullstelle: var x1 = 0, x2 = 0; if((p * p / 4) - q < 0){ x1 = 'nicht definiert'; x2 = 'nicht definiert'; } else if((p * p / 4) - q == 0){ x1 = Number((- (p / 2)).toFixed(3)); x2 = 'nicht definiert'; } else if((p * p / 4) - q > 0){ x1 = Number((- (p / 2) + Math.sqrt((p * p / 4) - q)).toFixed(3)); x2 = Number((- (p / 2) - Math.sqrt((p * p / 4) - q)).toFixed(3)); } //Scheitelpunkt: var x = Number((- (p / 2)).toFixed(3)), y = Number((parameter.a * (- (p * p / 4) + q)).toFixed(3)); //Ausgabe: console.log(`<i>Nullstelle 1:</i> <b>${x1}</b><br> <i>Nullstelle 2:</i> <b>${x2}</b><br> <i>Scheitelpunkt:</i> <b>S(${x}|${y})</b>`); } }
Grafische Darstellung
function grafik(canvas, turtle, parameter){ canvas.clear(); turtle.hide(); turtle.move(0, xAchse); turtle.right(90); turtle.forward(400); turtle.move(yAchse, 0); console.log('<font color="#ffffff"> Hier könnte Ihre Werbung stehen!</font>') turtle.right(90); turtle.forward(400); for(var i = 1; i <= 19; i++){ turtle.move(20 * i, xAchse - 5); turtle.forward(10); turtle.left(90); turtle.move(yAchse - 5, 20 * i); turtle.forward(10); turtle.right(90); } for(var x = -10; x <= 10; x += 0.0025){ posx = 20 * x + yAchse; posy = -20 * (parameter.a * x * x + parameter.b * x + parameter.c) + xAchse; turtle.move(posx, posy); turtle.forward(0.01); } }
Ergebnis am "Front-End"
Ihr Browser unterstützt Canvas nicht.
const gl = '0.5x²+2x-3'; let pm = getabc(gl); if(!pm) console.log('<i>Die angegebene Funktion ist keine quadratische Funktion!</i>'); else { infos(pm); var xAchse = 400 / 2, yAchse = 400 / 2; grafik(canvas1, turtle1, pm); }
ausführen
Seite
Quelltext
Versionen/Autoren
Konto registrieren
Anmelden
Navigation
Startseite
Letzte Änderungen
Alle Seiten
Einführungskurs
Hilfe
Dateien
Suche
Suchen
Werkzeuge
Links auf diese Seite
Spezialseiten