Timpfeiffer/Komplexe Leistung

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
=== Fakultät ===
<code id="5b915b8493c39">
function fakultaet(n) {
 var produkt = 1;
 for (var i = 1;i < n;i++) {
  produkt = produkt * i;
 }
 return produkt;
}
</code>

<run id="5b915b8493cc0">fakultaet(ZAHL);</run>
=== Wurzel ===
<code id="5b9f982833d5b">
function heron(z, x) {
 var x0 = x;
 do {
  x = x0;
  x0 = (x + z / x) / 2;
 }

 while(x0 != x);
 return x0;
}
</code>
=== Linie ===
<code id="5b915df63ab8a">
function linie(Ax, Ay, Bx, By) {
 //weitere Anweisungen
 return funktion;
}
</code>

A('''2'''|'''1''') B('''5'''|'''7''') -> linie'''(2, 1, 5, 7)'''

<run id="5b915df63abff">linie(2, 1, 5, 7);</run>
=== Scheitelpunkt (x²) ===
<code id="5b92be1f22a8b">
function parabel(A1, A2, S1, S2) {
 //weitere Anweisungen
 return funktion;
}
</code>

y='''a'''x²+'''b'''x+'''c''' -> scheitelpunkt'''(-2, 4, 0)'''

<run id="5b92be1f22b3c">scheitelpunkt(-2, 4, 0)</run>
=== Die Endversion: ===
<code id="5c89571c8a184">
function infos(gleichung){
    var ae = gleichung.indexOf('x²'), //Ende von a
        be = gleichung.indexOf('x', ae + 2); //Ende von b
    //a,b,c herausfinden:
    var a = gleichung.substring(gleichung.indexOf('=') + 1, ae) * 1,
        b = gleichung.substring(ae + 2, be) * 1,
        c = gleichung.substring(be + 1) * 1,
        p = b / a, 
        q = c / 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));
    }
    else return console.error('Given function contains too few numbers!');

    //Scheitelpunkt:
    var x = Number((- (p / 2)).toFixed(3)),
        y = Number((- (p * p / 4) + q).toFixed(3));

    //Ausgabe:
    console.log(`Nullstelle 1: ${x1}`);
    console.log(`Nullstelle 2: ${x2}`);
    console.log(`Scheitelpunkt: S(${x}|${y})`);
}

var xAchse = 400 / 2, yAchse = 400 / 2;

function koordinatensystem(canvas, turtle){
    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);
    }
}

function parabel(turtle, gleichung){
    var ae = gleichung.indexOf('x²'), //Ende von a
        be = gleichung.indexOf('x', ae + 2); //Ende von b
    //a,b,c herausfinden:
    var a = gleichung.substring(gleichung.indexOf('=') + 1, ae) * 1,
        b = gleichung.substring(ae + 2, be) * 1,
        c = gleichung.substring(be + 1) * 1;

    for(var x = -10; x <= 10; x += 0.0025){
        posx = 20 * x + yAchse;
        posy = -20 * (a * x * x + b * x + c) + xAchse;
        turtle.move(posx, posy);
        turtle.forward(0.01)
    }
    turtle.hide();
}
</code>

<canvas w="400" h="400"></canvas>

<run id=5c89571c8a184>
var gleichung = "y=4x²+1x-2";
infos(gleichung);
koordinatensystem(canvas1, turtle1);
parabel(turtle1, gleichung);
</run>