Zum Inhalt
Komplexe Leistung
Aus ProgrammingWiki
<
Timpfeiffer
Archivierte Version vom 2019-03-22T13:52:08+00:00.
Aktuelle Version
function getabc(gleichung) { gleichung = gleichung.replace('y=',''); if(gleichung.startsWith('+')) gleichung = gleichung.replace('+',''); var parameter = { 'a': '', 'b': '', 'c': '' } //get a //setting up some variables let check = false, digits = 0, posa = gleichung.indexOf('x²') - 1; //case splitting 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('+',''); //get b //setting up some variables check = false; digits = 0; let posb = gleichung.indexOf('x') - 1; //case splitting if(posb == -2) parameter.b = 0; else switch(gleichung[posb]){ case undefined: parameter.b = 1;break; case '+': parameter.b = 1;break; case '-': parameter.b = -1;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); //get c parameter.c = gleichung * 1; console.log(parameter); return(parameter); } function infos(parameter){ //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(`Nullstelle 1: ${x1}`); console.log(`Nullstelle 2: ${x2}`); console.log(`Scheitelpunkt: S(${x}|${y})`); } function grafik(canvas, turtle, parameter){ canvas.clear(); turtle.hide(); turtle.move(0, xAchse); turtle.right(90); turtle.forward(400); turtle.move(yAchse, 0); 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); } turtle.hide(); }
Ihr Browser unterstützt Canvas nicht.
const gl = 'Bitte einfügen!'; let pm = getabc(gl); if(!pm) console.log('Die angegebene Funktion ist keine quadratische Funktion!'); 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