 // pyramidesum.js
 // erstellt am 9. Mai 2009
 // geändert am 9. Mai 2009
 // erstellt von A. Meier, Weiden
 // (c) Alle Rechte an den Scripten liegen beim Autor

var a =0; // Variable a
var b =0; // Variable b
var art= 0; // Variable art
var aufgabe=0;
var term="";
var term1="";
var Score =0;
var Item = 1;
var Aufggleich = 0;

function zufall(min, max, ohne) {
  var zufallszahl;
  do {
  zufallszahl = Math.round(min + Math.random() * (max - min));
  } while (zufallszahl == ohne);
  return zufallszahl;
}

function finden(zae2,i,r)
{
var laenge=zae2.length;
var k=0;
var j=0;
for(j=i+r;(j<laenge)&&(j>=0);j+=r){
   var u=zae2.substr(j,1);
   if(u=="(")k++; else if(u==")")k--;
   if(k*r<0)return j;
   if((k==0)&&((u=="+")||(u=="-")||(u=="*")||(u=="/")||
    (u==";")||(u==",")||(u=="=")||(u=="\"")||(u=="'")||
    (u=="|")||(j+r==laenge+1)||(j+r==-1))) return j;}
return j;}


function zeilelesen(eingabezeile)

{
zae2 = String(eingabezeile).replace(/,/g,".").replace(/ /g,"").replace(/²/g,"^2").replace(/³/g,"^3");
if (zae2.substr(0,2) == "x^") zae2 = "1*"+zae2;
if (zae2.substr(0,1) == "(") zae2 = "1*"+zae2;
var Erg=new Array(/\dx/,/\d\(/,/\)\(/,/x\(/,/pi\(/,/e_\(/,/\dpi/,/\de_/);
 for(j=0;j<Erg.length;j++){

 do{
  i=zae2.search(Erg[j]);
  if(i==-1)break;
  zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);
  }
  while(true);
}

  var n=0;
  var d=0;
  var j=0;
  var k=0;
  var i=0;


  if (zae2.substr(0,2) == "x^") zae2 = "1*"+zae2;
   if(zae2.indexOf("^")>-1)
   {
    for(i=0;i<zae2.length;i++)
   {
   if (zae2.substr(i,1)=="^")
   {
   j=finden(zae2,i,-1); k=finden(zae2,i,1);
   zae2=zae2.substring(0,j+1)+
   "Math.pow("+zae2.substring(j+1,i)+","+zae2.substring(i+1,k)+")"+
   zae2.substring(k,zae2.length);
   n++;
   if(n>15)break;
 }
 }
 }


do{
i=zae2.search(/\dx/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\d\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/x\d/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\)\d/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/\)\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

do{
i=zae2.search(/x\(/);
if(i==-1)break;
zae2=zae2.substr(0,i+1)+"*"+zae2.substring(i+1,zae2.length);}
while(true);

}


function gleicherst2()
{
aufgabe++;
geloest =0;
art = 0;

document.Para.z3a.value = "";
document.Para.z3b.value = "";
document.Para.z3c.value = "";
document.Para.z1a.value = "";
document.Para.z2a.value = "";
document.Para.z2b.value = "";
term ="";
document.Para.wertung.value = "";
term1 ="";
b1=zufall(-3,3);
if (b1==0)b1 = 0.5;
c1=zufall(-6,6,0);

b2=zufall(-3,3);
if (b2==0) b2 = 0.5;
c2=zufall(-6,6,0);


b3=zufall(-3,3);
if (b3==0) b3 = 0.5;
c3=zufall(-6,6,0);

art = zufall(0,1);

art = 1; // Nur Addition erlauben


if (art==1){
zeichen = "+";
b4 = b1+b2; b4=Math.round(b4*100)/100;
c4 = c1+c2; c4=Math.round(c4*100)/100;

b5 = b2+b3; b5=Math.round(b5*100)/100;
c5 = c2+c3; c5=Math.round(c5*100)/100;

b6 = b4+b5; b6=Math.round(b6*100)/100;
c6 = c4+c5; c6=Math.round(c6*100)/100;



}
else {
zeichen = "-";
b3 = b1-b2; b3=Math.round(b3*100)/100;
c3 = c1-c2; c3=Math.round(c3*100)/100;

}

text01=String(b1).replace(".",",")+"x";
text02=String(b2).replace(".",",")+"x";
text03=String(b3).replace(".",",")+"x";

text3begin = String(b3).replace(".",",")+"x";

if (b1 == 1) text01 = "x";
if (b1 == -1) text01 = "-x";
if (b2 == 1) text02 = "x";
if (b2 == -1) text02 = "-x";
if (b3 == 1) text03 = "x";
if (b3 == -1) text03 = "-x";



if (c1<0) text1 = text01+" - "+String(Math.abs(c1)).replace(".",",");
else text1 = text01+" + "+String(Math.abs(c1)).replace(".",",");

if (c2<0) text2 = text02+" - "+String(Math.abs(c2)).replace(".",",");
else text2 = text02+" + "+String(Math.abs(c2)).replace(".",",");

if (c3<0) text3 = text03+" - "+String(Math.abs(c3)).replace(".",",");
else text3 = text03+" + "+String(Math.abs(c3)).replace(".",",");

if (c4<0) text4a = " - "+String(Math.abs(c4)).replace(".",",");
else {
if (b4 == 0) text4a = String(Math.abs(c4)).replace(".",",");
else text4a = " + "+String(Math.abs(c4)).replace(".",",");
}

if (c5<0) text5a = " - "+String(Math.abs(c5)).replace(".",",");
else {
if (b5 == 0) text5a = String(Math.abs(c5)).replace(".",",");
else text5a = " + "+String(Math.abs(c5)).replace(".",",");

}

if (c6<0) text6a = " - "+String(Math.abs(c6)).replace(".",",");
else {
if (b6 == 0) text6a = String(Math.abs(c6)).replace(".",",");
else text6a = " + "+String(Math.abs(c6)).replace(".",",");

}

text4begin = String(b4).replace(".",",")+"x";
text5begin = String(b5).replace(".",",")+"x";
text6begin = String(b6).replace(".",",")+"x";

if (b4==1)text4begin = "x";
if (b4==-1)text4begin = "-x";
if (b4==0)text4begin = "";
if (c4==0) text4a = "";
text4 = text4begin+text4a;

if (b5==1)text5begin = "x";
if (b5==-1)text5begin = "-x";
if (b5==0)text5begin = "";
if (c5==0) text5a = "";
text5 = text5begin+text5a;


if (b6==1)text6begin = "x";
if (b6==-1)text6begin = "-x";
if (b6==0)text6begin = "";
if (c6==0) text6a = "";
text6 = text6begin+text6a;



if(c3 == 0 && b3 == 0) text3 = 0;
if(c4 == 0 && b4 == 0) text4 = 0;
if(c5 == 0 && b5 == 0) text5 = 0;
if(c6 == 0 && b6 == 0) text6 = 0;





document.Para.z3a.value = text1;
document.Para.z3b.value = text2;
document.Para.z3c.value = text3;

// document.Para.zeich.value = zeichen;
document.Para.z1a.value = "";
document.Para.z2a.value = "";
document.Para.z2b.value = "";



document.Para.z2a.focus();
}


function ergproof()
{


// Eingabe 1 ++++++++++++++
loes = "19";
xlos = 19;

linkswert1 = b4*19+c4;

if (document.Para.z2a.value != "(    )²")
{

klammertest = document.Para.z2a.value;
klammerzaehler =0;
do
{
i=klammertest.search(/\)/);
if(i==-1)break;
klammertest = klammertest.replace(")",".");
klammerzaehler++;
}
while(true);


zeilelesen(document.Para.z2a.value);
rechts = zae2;

do
{i=rechts.search("x");
if(i==-1)break;
rechts = rechts.replace("x",loes)
}
while(true);

rechtswert1 = eval(rechts);
}

else
{
document.Para.wertung.value = "";
rechtswert1 = 0;
zf3 =1;
}


zeilelesen(text4);
vorgabe = zae2;

do
{i=vorgabe.search("x");
if(i==-1)break;
vorgabe = vorgabe.replace("x",loes)
}
while(true);
meinwert = eval(vorgabe);



// Ende Eingabe 1 ++++++++++++++


// Eingabe 2 ++++++++++++++
loes = "19";
xlos = 19;

linkswert2 = b5*19+c5;

if (document.Para.z2b.value != "(    )²")
{

klammertest = document.Para.z2b.value;
klammerzaehler =0;
do
{
i=klammertest.search(/\)/);
if(i==-1)break;
klammertest = klammertest.replace(")",".");
klammerzaehler++;
}
while(true);


zeilelesen(document.Para.z2b.value);
rechts = zae2;

do
{i=rechts.search("x");
if(i==-1)break;
rechts = rechts.replace("x",loes)
}
while(true);

rechtswert2 = eval(rechts);
}

else
{
document.Para.wertung.value = "";
rechtswert2 = 0;
zf3 =1;
}


zeilelesen(text5);
vorgabe = zae2;

do
{i=vorgabe.search("x");
if(i==-1)break;
vorgabe = vorgabe.replace("x",loes)
}
while(true);
meinwert = eval(vorgabe);



// Ende Eingabe 2 ++++++++++++++



// Eingabe 3 ++++++++++++++
loes = "19";
xlos = 19;

linkswert3 = b6*19+c6;

if (document.Para.z1a.value != "(    )²")
{

klammertest = document.Para.z1a.value;
klammerzaehler =0;
do
{
i=klammertest.search(/\)/);
if(i==-1)break;
klammertest = klammertest.replace(")",".");
klammerzaehler++;
}
while(true);


zeilelesen(document.Para.z1a.value);
rechts = zae2;

do
{i=rechts.search("x");
if(i==-1)break;
rechts = rechts.replace("x",loes)
}
while(true);

rechtswert3 = eval(rechts);
}

else
{
document.Para.wertung.value = "";
rechtswert2 = 0;
zf3 =1;
}


zeilelesen(text6);
vorgabe = zae2;

do
{i=vorgabe.search("x");
if(i==-1)break;
vorgabe = vorgabe.replace("x",loes)
}
while(true);
meinwert = eval(vorgabe);



// Ende Eingabe 3 ++++++++++++++



if (geloest == 0) {


if (linkswert1 == rechtswert1 && linkswert2 == rechtswert2 &&linkswert3 == rechtswert3)
{
Score = Score + 35;
ausgabetext1 ="Ausgezeichnet! Alles ist richtig.";
ausgabetext2 ="Nächste Aufgabe!"
document.Para.Punkte.value=Score;
geloest =1;
}

else
{
Score = Score - 15;
if (Score<0) Score = 0;

if (linkswert1 == rechtswert1 || linkswert2 == rechtswert2) {
ausgabetext1 ="Leider nicht ganz richtig!"; Score = Score + 25;
ausgabetext2 ="Richtig ist : \n"+text6+"\n"+text4+"       "+text5+"\n"+text1+"   "+text2+"   "+text3;
geloest =1;
}

else {
ausgabetext1 ="Leider falsch";
ausgabetext2 ="Richtig ist : \n"+text6+"\n"+text4+"            "+text5+"\n"+text1+"            "+text2+"           "+text3;
geloest =1;

}

}

}
else
{
ausgabetext1 ="Nicht schummeln! Die Aufgabe war schon gelöst!"
ausgabetext2 ="10 Punkte Abzug!"
Score = Score - 10;
if (Score<0) Score = 0;
}



document.Para.Punkte.value=Score;
document.Para.Aufgaben.value=aufgabe;
document.Para.wertung.value = ausgabetext1+"\n"+ausgabetext2;





}

function auswerten() {


var punkte = Score;
if (punkte < 1) punkte = 1;
// Zurücksetzen der Punkte auf Ausgangswert

a =0; // Variable a
b =0; // Variable b
art= 0; // Variable art
aufgabe=0;
term="";
term1="";
Score =0;
Item = 1;
Aufggleich = 0;


document.Para.wertung.value = "Deine Punkte werden übertragen.";
document.Para.Punkte.value = Score;
document.Para.Aufgaben.value=aufgabe;

/* Achtung muss für jede Datei manuell angepasst werden */
/*                     Anfang                           */
var aufgabenart="Summenterm-Pyramide (1)";
var datnam= "highsqlpost85ww.php";
uebertrag = "<form name = 'eingabe' action ='../../../Mathematik/"+datnam+"' method ='post'>";
auswertung(aufgabenart,punkte,uebertrag);
/*                     Ende                           */
}

