 // knobelsumme2.js
 // erstellt am 14. Oktober 2006
 // geändert am 14. Oktober 2006
 // 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++;
Aufggleich=Item-1;
art = 0;
document.Para.z1.value = "";
document.Para.z2.value = "";
term ="";
document.Para.wertung1.value = "";
document.Para.wertung2.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);

art = zufall(0,1);
if (art==1){
zeichen = "+";
b3 = b1+b2; b3=Math.round(b3*100)/100;
c3 = c1+c2; c3=Math.round(c3*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";
if (b1 == 1) text01 = "x";
if (b1 == -1) text01 = "-x";
if (b2 == 1) text02 = "x";
if (b2 == -1) text02 = "-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(".",",")+")";
text3begin = String(b3).replace(".",",")+"x";

if (c3<0) text3a = " - "+String(Math.abs(c3)).replace(".",",");
else {
if (b3 == 0) text3a = String(Math.abs(c3)).replace(".",",");
else text3a = " + "+String(Math.abs(c3)).replace(".",",");
}

if (b3==1)text3begin = "x";
if (b3==-1)text3begin = "-x";
if (b3==0)text3begin = "";
if (c3==0) text3a = "";
text3 = text3begin+text3a;
if(c3 == 0 && b3 == 0) text3 = 0;




document.Para.z1.value = text1;
document.Para.zeich.value = zeichen;
document.Para.z1a.value = "";
document.Para.z2.value = text3;
document.Para.z1a.focus();
}


function ergproof()
{

loes = "19";
xlos = 19;

linkswert = b2*19+c2;

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);

rechtswert = eval(rechts);
}

else
{
document.Para.wertung1.value = "";
rechtswert = 0;
zf3 =1;
}


zeilelesen(text2);
vorgabe = zae2;

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


if (Item == Aufggleich)
{
ausgabetext1 ="Nicht schummeln! Die Aufgabe war schon gelöst!"
ausgabetext2 ="Nächste Aufgabe!"
Score = Score - 10;
if (Score<0) Score = 0;
}
else {

if (linkswert == rechtswert && Item != Aufggleich)
{
if (art ==0) Score = Score + 15; else Score = Score + 25;
ausgabetext1 ="Ausgezeichnet! Alles ist richtig.";
ausgabetext2 ="Nächste Aufgabe!"
document.Para.Punkte.value=Score;
Aufggleich=Item ;
}

else
{
Score = Score - 15;
if (Score<0) Score = 0;
ausgabetext1 ="Leider falsch!"
ausgabetext2 ="Richtig ist : "+text1+" "+zeichen+" "+text2+" = "+text3;
Aufggleich=Item;
}

}
document.Para.Punkte.value=Score;
document.Para.Aufgaben.value=aufgabe;
document.Para.wertung1.value = ausgabetext1;
document.Para.wertung2.value = 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.wertung1.value = "Deine Punkte werden übertragen.";
document.Para.wertung2.value = "";
document.Para.Punkte.value = Score;
document.Para.Aufgaben.value=aufgabe;

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

