//DIT3dat-prc2.js  versie 20050405

function KiesUit(onder,boven)
{
var verschil = boven - onder;
var toeval = onder + verschil * Math.random();
var geheel = Math.round(toeval);
return geheel
};

function KiesIn(o1,b1,o2,b2)
{
var v1 = b1- o1
var v2 = b2-o2;
var verschil= v1+v2
var toeval = verschil * Math.random();
var g;
if  (toeval < v1) g=KiesUit(o1,b1) ;
	else g=KiesUit(o2,b2);
return g
};


function RondAf(x,a)
{
var p =Math.abs(a)
var g= Math.pow(10,p);g=Math.round(g);
var y;
if (a>=0) y = Math.round(x/g)*g;
		 else y= Math.round(x*g)/g ;
return y
}

function AfrondInstructie(d)
{
var t="Rond (zo nodig) af op ";
if (d==0) t +="een heel getal.";
	else if (d==1) t += d +" decimaal.";
		else if (d>1) t += d +" decimalen.";
			else t="Rond verstandig af. "
if  (bt) t+=" Je kunt ook antwoorden als 3/7 geven";
return t
}


function Gelijk(a,b) 
{
var k= -da;
var m=0.5*Math.pow(10,k);
var v = Math.abs(a-b);
if  (v <= m) return true;
	 else return false;
}

function Ongeveer(a,b,f)
{
var k= -da;
var m=f*Math.pow(10,k);
var v = Math.abs(a-b);
if  (v <= m) return true;
	 else return false;
}

function Geheel(g)
{
var a=Math.round(g);
if(a==g) return true
	else return false;
}

////////////////// BREUKEN EN PROCENTEN//////////////////////////////


function GF(p)
{
var g=1+p*0.01;
return g
}

function PG(g)
{
var p =(g-1)*100;
return p;
}

function KB(p)
{
if (p<0) t = -p+" % korting " ;
	else t =  p+  "% belasting";
return t
}

function HL(p)
{
if (p<0) t = -p+" % verlaagd" ;
	else t = p+  " % verhoogd";
return t
}

function TA(p)
{
if (p<0) t = -p+" % afgenomen" ;
	else t = p+  " % toegenomen";
return t
}


function TA1(p)
{
if (p<0) t="toenemen";
	 else t="afnemen";
return t
}


//////////////// OPGAVEN EN FEEDBACK /////////////////
an=''	; // laatst gegegeven antwoord	
ja=0	; // juiste antwoord laatste opgave
st="niet"	; // status opgave 
fb=''	;// Feedback
ao=9  ;  // aantal opgaven 	zo nodig aanpassen
bt = false // breuken e.d standaard niet toegestaan
da=0	// vereist aantal decimalen

opgaveTitel = new Array();
opgaveData = new Array();
opgaveTitel[0]='opgave';
for  (n=1; n<=ao;n++)
{
opgaveTitel[n]='opg.'+n;
}
/////////////////////// OPGAVE 1 //////////////////////
function Opgave1()
{
opgaveTitel[1]="opgave 1" ;
a1=KiesUit(20,80);
t1=KiesUit(400,1100);
da=0;
opgaveData[1] ="Van de "+t1+ " leerlingen van een school waren er gisteren "+a1+ " afwezig.<br/>"+
"Hoeveel procent was dat?<br/>"+ AfrondInstructie(da);
Opgave(1)
}


function Corrigeer1()
{
// globale variabelen an, ja, st, fb,da
// globale opgave variabelen:  a1, t1
ja=a1/t1*100;
i=t1/a1;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="bijna, afrondingsfout ?"
		else if (Gelijk(an,i)) fb="Bedoel je echt "+an+ " %, of bedoel je 1/"+an+"?"
}

/////////////////////////// OPGAVE 2 //////////////////////////
function Opgave2()
{
opgaveTitel[2]="opgave 2" ;
ek=KiesUit(80,160)
gs=KiesUit(ek-30,ek-2);
var p=RondAf(gs/ek*100,-1);
da=0;
opgaveData[2] = "Op een school doen "+ek+ " kandidaten mee aan het eindexamen.<br/>"+
	"Na afloop meldt de website van de school dat "+p+ "% geslaagd is.<br/>"+
	"Hoeveel leerlingen zijn er <b>niet geslaagd </b>?<br/>"+AfrondInstructie(da) ;
Opgave(2)
}

function Corrigeer2()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: ek,gs
ja=ek-gs;
if (an==ja) st='ok'
	else if (! Geheel(an)) fb="Het gaat natuurlijk om een heel getal!"
		else if (an=gs) fb="Dit is het aantal <b>geslaagden</b>"
}


///////////////// OPGAVE 3 ////////////////////////
function Opgave3()
{
var p =5*KiesUit(2,9); // percentage korting
o3 = 10*KiesUit(14,49); // oude prijs
n3 = (1-p/100)*o3;  // nieuwe prijs
da=0;
opgaveTitel[3]="opgave 3" ;
opgaveData[3]= "Op een bepaald artikel wordt "+p+"% korting gegeven.<br/>"+
"Bij de kassa moet er € "+n3+",= betaald worden.<br/>"+"Bereken de korting in euro's.<br/> "+AfrondInstructie(da);
Opgave(3);
} 

function Corrigeer3()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: o3,n3
ja= o3-n3;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="In de buurt, goed afgerond?"
		else if (Gelijk(an,o3)) fb="Dat is de oude prijs!"
}
////////////////////////////////// OPGAVE 4 /////////////////////////////////
function Opgave4()
{
pc = KiesIn(-20,-10,15,25);
bd = KiesUit(10,90);
da =2 ;	// aantal decimalen antwoord
opgaveTitel[4]="opgave 4" ;
opgaveData[4]= "Een bepaald artikel kost in een  land € " +bd+ ",=   (met " + KB(pc)+").<br/>"+ "Bereken de prijs zonder deze "+ KB(pc)+".<br/>"+AfrondInstructie(da);
Opgave(4);
}


function Corrigeer4()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: 
var g= GF(pc);
var g1 =GF(-pc);
ja =bd/g;
var i1 = bd/g1;
var i2 = bd*g1;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="In de buurt, goed afgerond?"
		else if (Ongeveer(an,i1,1)) fb= "Goed de vraag gelezen?";
			else if (Ongeveer(an,i2,1)) fb= "Hoeveel % is die "+bd+" euro ?";
}

/////////////////////////// OPGAVE 5 /////////////////////////////////////
function Opgave5()
{
p1 =KiesIn(-10,-5,5,10);
if (p1>0) p2 = KiesUit(-20,-10); 
		else p2=KiesUit(10,25);
st1=HL(p1);st2=HL(p2);
da=1;
opgaveTitel[5]="opgave 5" ;
opgaveData[5]= "De prijs van een product  werd eerst met "+st1+", toen met "+st2+ ".<br/>"+"Bereken  hoeveel % de prijs uiteindelijk is gestegen/gedaald.<br/>"+"(Als de prijs met bijv. 7 % gedaald is wordt de prijsstijging  -7 % )<br/>"+AfrondInstructie(da);
Opgave(5); 
}

function Corrigeer5()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: 
var g=GF(p1)*GF(p2);
ja= PG(g);
var i2 = g*100;
if (Gelijk(an,ja)) st='ok'
	else if (Gelijk(an,-ja)) fb= "Let op het teken ! (+/-) <br/>Het minteken moet direct voor het getal staan"; 
	else if (Gelijk(an,i2)) fb="Zoveel % is de nieuwe prijs van de oude. ";
	else if (Ongeveer(an,ja,1)) fb="Bijna ! <br/>afrondingsfout ?";
	else if (an == p1+p2) fb="Zo werkt dat niet ... <br/>Gebruik groeifactoren!";
	else if (Ongeveer(an,ja,10)) fb="afgerond  op één decimaal ?";
	else if (Ongeveer(an,-ja,10)) fb="Let op teken(+/-) en afronding.";
}


/////////////////////////// OPGAVE 6 /////////////////////////////////////
function Opgave6()
{
pr = KiesUit(30,40)/10;	// percentage rente
n = KiesUit(5,10);		// looptijd
bb = KiesUit (2,9)*1000;	// beginbedrag
da = 0;	// aantal decimalen antwoord
opgaveTitel[6]="opgave 6" ;
opgaveData[6]= "Iemand zet een bedrag  van "+ bb +" euro voor "+n+" jaar vast op de bank.<br/>"+
"De rente bedraagt  "+pr+ " % per jaar.<br/>"+"Bereken het eindbedrag.<br/>"
+AfrondInstructie(da);
Opgave(6); 
}


function Corrigeer6()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: pr, n, bb;
var g=GF(pr);
var gn=Math.pow(g,n);
ja = bb*gn ;
var i1 = (1+ n*pr/100)*bb ;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="Bijna ! <br/>afrondingsfout ?";
	else if (Gelijk(an,i1)) fb = "Zo werkt dat niet ! (Je krijgt rente op rente) <br/>Gebruik  de  groeifactor !" ;
}


/////////////////////////// OPGAVE 7 /////////////////////////////////////
function Opgave7()
{
pg = KiesUit(6,12);	// percentage groei
aj = KiesUit(5,15);		// tijd
da = 0;	// aantal decimalen antwoord
opgaveTitel[7]="opgave 7" ;
opgaveData[7]= "Iets groeit gedurende "+aj+ " jaar met "+ pg+"% per jaar.<br/>"+ 
"Hoeveel procent toename is dat over de hele periode ?<br/>"+AfrondInstructie(da) ;
Opgave(7); 
}

function Corrigeer7()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: pg,aj
var g=GF(pg);
var gt=Math.pow(g,aj);
ja = 100*gt -100 ;
var i1 = aj*pg;
var i2 = 100*gt ;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="Bijna ! <br/>afrondingsfout ?";
	else if (Gelijk(an,i1)) fb = "Zo werkt dat niet ! <br/>Gebruik  de  groeifactor !" ;
	else if (Ongeveer(an,i2,1)) fb = "Gevraagd wordt de <b>toename</b> !" ;
}

/////////////////////////// OPGAVE 8 /////////////////////////////////////
function Opgave8()
{
pg =KiesIn(-30,-10,15,25);
var t1=TA(pg);
n0 =KiesUit(2000,5000);
da = 0;	// aantal decimalen antwoord
opgaveTitel[8]="opgave 8" ;
opgaveData[8]= "Het aantal inwoners van een dorp  is "+t1+" t.o.v. vorige jaar.<br/>"+
	"Nu zijn er "+ n0+" inwoners.<br/>" +"Hoeveel waren er vorig jaar ?<br/>"+AfrondInstructie(da) ;
Opgave(8); 
}

function Corrigeer8()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: n0;pg;
var g =GF(pg); 
var g1=GF(-pg)
var p=Math.abs(pg);
ja = n0/g;
var i1=n0*g;
var i2=n0*g1;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="Bijna ! <br/>afrondingsfout ?";
		else if (Ongeveer(an,i1,1)) fn ="Vraag goed gelezen ?";
			else if (Ongeveer(an,i2,1)) fb ="Dat is een misverstand ! "+
	p+" % afname en "+ p+ "% toename heffen elkaar <b>niet</b> op.";
}

/////////////////////////// OPGAVE 9 /////////////////////////////////////
function Opgave9()
{
p1= KiesUit(6,12);
p2=KiesUit(p1+2,20)
da = 1;	// aantal decimalen antwoord
opgaveTitel[9]="opgave 9" ;
opgaveData[9]= "In een land wordt het BTW tarief verhoogd van "+p1+ "% naar "+p2+ " %. <br/>"+
"Met hoeveel procent gaan de prijzen hierdoor omhoog?<br/>"+AfrondInstructie(da) ;
Opgave(9); 
}

function Corrigeer9()
{
// globale variabelen an, ja, st , fb,da
// globale opgave variabelen: p1;p2
var g= (100+p2)/(100+p1);
ja=PG(g);
i1=p2-p1;
if (Gelijk(an,ja)) st='ok'
	else if (Ongeveer(an,ja,1)) fb="Bijna ! <br/>afrondingsfout ?";
		else if (Ongeveer(an,i1,1)) fb ="Zo werkt dat niet ! <br/>Gebruik groeifactor of verhoudingstabel!"
}






