Avatar billede tutaleur Nybegynder
11. september 2007 - 17:49 Der er 9 kommentarer og
1 løsning

Fejl i regnefunktionen

Efter nogle forkerte svar, går der kuk i tællefunktionen for antal rigtige. Jeg kan ikke finde fejlen. Er der nogen, der gider hjælpe?


<html>
<head>

    <title>Additionsopgaver</title>


<script type="text/javascript">





function nulstil(){
o=0;R3=0;p=0;

document.REGNEOPGAVER.ANTALOPGAVER.value="0";
document.REGNEOPGAVER.ANTALRIGTIGE.value="0";
document.REGNEOPGAVER.SCOREPROCENT.value="0";
document.REGNEOPGAVER.TAL1.value="";
document.REGNEOPGAVER.TAL2.value="";
OPGAVER=0;
PROCENT=0;
RIGTIGE=0;
tjek=-1;
AntalTjek();
}
</script>
<style type="text/css">
#kontakt{
font:sans serif;
position:absolute;
left:300px;
}
</style>
</head>
<body bgcolor="rgb(205, 237, 166)" link="#0000FF" vlink="#0000FF" alink="#0000FF" onload="nulstil()">

<form name="REGNEOPGAVER" style="font-size:3;font:verdana;">
<td><Center><input type="button" value="VEJLEDNING" name="VEJLEDNING"></td><td><input type="button" value="Addition" name="Addition"></td><P><hr>
<script type="text/javascript">

var time = 600;

function CountDown()
{
    if(time > 0)
    {
          time = time-1;
          document.getElementById("MyTime").firstChild.nodeValue = time;
    }
}

</script>

<Center><button onclick="setInterval('CountDown();',1000);return false;" style="cursor:pointer;">Start nedtælling!</button></center><br>
<Center><Font size = "5"><Div id="MyTime">600</div></center><BR>

<table border="0">
<tr>
<TD align = center><input type="button" value="Vælg et interval" name="Interval"></td>
<td><input type="button" value="0-10" name="TALA"></td>
<td><input type="button" value="0-20" name="TALB"></td>
<td><input type="button" value="0-100" name="TALC"></td>
<td><input type="button" value="0-1000" name="TALD"></td>
<td><input type="button" value="0-10.000" name="TALE"></td>
</table>

<Font size ="4">Du har valgt: <input type="text" name="TALOMRAADE" size="6" style="text-align:right";><P><hr>

<table>
<tr>
<td><input type="text" name="TAL1" size="4" style="text-align:right";></td><tr>
<td><font face="verdana" size="5">+</FONT></td><tr>
<td><input type="text" name="TAL2" size="4" style="text-align:right";></td><tr>
<td><font face="verdana" size="5"> =</FONT></td><tr>
<td><input type="text" name="RESULTAT" size="6" style="text-align:right";></td><tr>
<td><input type="button" value="TJEK" name="TJEK"></td>
</tr>
</table><br><hr>
<table>
<tr>
<td>Antal rigtige: </td><td><input type="text" name="ANTALRIGTIGE" size="4" style="text-align:right";></td>
</tr>
<tr>
<td>Antal forsøg: </td><td><input type="text" name="ANTALOPGAVER" size="4" style="text-align:right";></td>
</tr>
<tr>
<td>Antal rigtige i %: </td><td><input type="text" name="SCOREPROCENT" size="4" style="text-align:right";></td>
</tr>


</table><hr>
</form>


<script type="text/javascript">
//Regneart vælges.
document.REGNEOPGAVER.Addition.onclick=regneart1;
function regneart1(){

document.REGNEOPGAVER.TALOMRAADE.value="";
document.REGNEOPGAVER.TAL1.value="";
document.REGNEOPGAVER.TAL2.value="";
saveregneart="A";
gemregneart();
}
//Regneart gemmes.
saveregneart=0;
function gemregneart(){
Gemregneart=[saveregneart];
}
//Talområde vælges.
document.REGNEOPGAVER.TALA.onclick=talvaerdi1;
savetalomraade=0;
function talvaerdi1(){
document.REGNEOPGAVER.TALOMRAADE.value="0-10";
savetalomraade="1";
Gemtalomraade=[savetalomraade];
Nyopgave();
}
document.REGNEOPGAVER.TALB.onclick=talvaerdi2;
function talvaerdi2(){
document.REGNEOPGAVER.TALOMRAADE.value="0-20";
savetalomraade="2";
Gemtalomraade=[savetalomraade];
Nyopgave();
}
document.REGNEOPGAVER.TALC.onclick=talvaerdi3;
function talvaerdi3(){
document.REGNEOPGAVER.TALOMRAADE.value="0-100";
savetalomraade="3";
Gemtalomraade=[savetalomraade];
Nyopgave();
}
document.REGNEOPGAVER.TALD.onclick=talvaerdi4;
function talvaerdi4(){
document.REGNEOPGAVER.TALOMRAADE.value="0-1000";
savetalomraade="4";
Gemtalomraade=[savetalomraade];
Nyopgave();
}
document.REGNEOPGAVER.TALE.onclick=talvaerdi5;
function talvaerdi5(){
document.REGNEOPGAVER.TALOMRAADE.value="0-10000";
savetalomraade="5";
Gemtalomraade=[savetalomraade];
Nyopgave();
}

//Regneopgaver sendes til opgavefelter.
function Nyopgave(){
var RA=Gemregneart;
var TO=Gemtalomraade;
var TORA=RA+TO;
if(TORA=="A1")Plus1();
if(TORA=="A2")Plus2();
if(TORA=="A3")Plus3();
if(TORA=="A4")Plus4();
if(TORA=="A5")Plus5();
}
//Plusopgaver genereres.
function Plus1(){
var a=Math.round(Math.random()*10);
document.REGNEOPGAVER.TAL1.value=a;
var b=Math.round(Math.random()*10);
document.REGNEOPGAVER.TAL2.value=b;
facitgem();
}
function Plus2(){
var a=Math.round(Math.random()*20);
document.REGNEOPGAVER.TAL1.value=a;
var b=Math.round(Math.random()*20);
document.REGNEOPGAVER.TAL2.value=b;
facitgem();
}
function Plus3(){
var a=Math.round(Math.random()*100);
document.REGNEOPGAVER.TAL1.value=a;
var b=Math.round(Math.random()*100);
document.REGNEOPGAVER.TAL2.value=b;
facitgem();
}
function Plus4(){
var a=Math.round(Math.random()*1000);
document.REGNEOPGAVER.TAL1.value=a;
var b=Math.round(Math.random()*1000);
document.REGNEOPGAVER.TAL2.value=b;
facitgem();
}
function Plus5(){
var a=Math.round(Math.random()*10000);
document.REGNEOPGAVER.TAL1.value=a;
var b=Math.round(Math.random()*10000);
document.REGNEOPGAVER.TAL2.value=b;
facitgem();

}
//Facit gemmes.
facit=0;
function facitgem(){
var x=parseInt(document.REGNEOPGAVER.TAL1.value);
var y=parseInt(document.REGNEOPGAVER.TAL2.value);
if(Gemregneart=="A")
facit=x+y;
Facit=[facit];
if(Gemregneart=="B")
facit=x-y;
Facit=[facit];
if(Gemregneart=="C")
facit=x*y;
Facit=[facit];
if(Gemregneart=="D")
facit=x/y;
Facit=[facit];
}
//Resultat tjekkes og svar gives.
i=0;
document.REGNEOPGAVER.TJEK.onclick=Tjek;
function Tjek(){
AntalTjek();
var Resultat=document.REGNEOPGAVER.RESULTAT.value;
if (Resultat=="")
window.alert("Sådan lærer du ikke at regne!");
else{
i=i+1;
taeller=[i];
if(Facit==Resultat)
rigtig();
else
fejl();}
}
//Optælling af tjek.
tjek=-1;
function AntalTjek(){
tjek=tjek+1;
antaltjek=[tjek];
}
function rigtig(){
if(taeller==1){window.alert("Korrekt - klik på OK og få et nyt regnestykke!");facit=0;document.REGNEOPGAVER.RESULTAT.value="";Nyopgave();optaelling();scorerigtige();i=0;}

}
function fejl(){
if(taeller==1){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";facit=0;optaelling();procent();i=0;R3=0;}
if(taeller==2){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";}
if(taeller==3){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";}
if(taeller==4){window.alert("Ikke korrekt - prøv bare igen!");facit=0;
document.REGNEOPGAVER.RESULTAT.value="";Nyopgave();optaelling();procent();i=0;R3=0;}
}
//Optælling af opgaver.
opg=0;
function optaelling(){
opg=opg+1;
OPGAVER=[opg];
if(OPGAVER==0){
document.REGNEOPGAVER.ANTALOPGAVER.value="0";}
else{
document.REGNEOPGAVER.ANTALOPGAVER.value=OPGAVER;}
/*if(R3==0){
document.REGNEOPGAVER.ANTALRIGTIGE.value="0";}*/
}
//Optælling af rigtige.
R3=0;
function scorerigtige(){
if(taeller==1){
R3=R3+1;}
RIGTIGE=[R3];
document.REGNEOPGAVER.ANTALRIGTIGE.value=RIGTIGE;
procent();
}
//Beregning af procent.
p=0
function procent(){
var P1=document.REGNEOPGAVER.ANTALOPGAVER.value;
var P2=document.REGNEOPGAVER.ANTALRIGTIGE.value;
p=P2/P1*100;
p=p*100;
p=Math.round(p);
p=p/100;
PROCENT=[p];
document.REGNEOPGAVER.SCOREPROCENT.value=PROCENT;
}
//Åbner vejledningsvindue.
document.REGNEOPGAVER.VEJLEDNING.onclick=vejledning;
function vejledning(){
Vejledningwin=window.open("vejledning1.html");
}


</script>

<font face="Verdana"><Center><a href="Hjemmeside.html">Tilbage til forsiden.</a></font></center></p>

</body>
</html>
Avatar billede cpufan Juniormester
11. september 2007 - 22:28 #1
det eneste jeg kan se er at du kalder denne 2 gange i fejl:
optaelling();procent();i=0;R3=0;}

ved taeller 1
og til sidst i funktionen

så ved ved taeller == 1  kører optaelling() og procent() 2 gange
Avatar billede cpufan Juniormester
11. september 2007 - 22:30 #2
det er så ved taeller = 1 og ved taeller = 4
ikke som jeg først skrev
Avatar billede tutaleur Nybegynder
11. september 2007 - 23:03 #3
jeg kan gøre det lide mere konkret:
Hvis jeg fx 3 gange i træk har regnet rigtigt, viser mine tællere 3-3
Så regner jeg "et" stykke forkert fx 4 gange, og så viser tællerne 3-7.
Når jeg så  skriver det rigtige svar, skifter tællerne til 1-8, i stedet for 4-8.
Er det du skriver mit problem?
Avatar billede tutaleur Nybegynder
11. september 2007 - 23:05 #4
Det ville være dejligt, hvis du gad at kopiere det over på din computer og afprøve det, så ser du måske lettere fejlen??? Jeg må kun give 200 point, men jeg vil gerne have problemt løst.
Avatar billede cpufan Juniormester
11. september 2007 - 23:47 #5
prøv at fjerne optaelling();procent();i=0;R3=0;

i denne linie:

if(taeller==4){window.alert("Ikke korrekt - prøv bare igen!");facit=0;
document.REGNEOPGAVER.RESULTAT.value="";Nyopgave();optaelling();procent();i=0;R3=0;}
Avatar billede tutaleur Nybegynder
12. september 2007 - 13:03 #6
Næh, det gav ingen ændring. Når man har svaret forkert og herefter svarer rigtigt i næste forsøg, nulstilles tælleren for antal rigtige men ikke for antal forsøg, det er det der er fejlen.
Avatar billede tutaleur Nybegynder
12. september 2007 - 15:22 #7
cpufan:
jeg prøvede at ændre R3=0 til R3=R3, så nu nulstilles der ikke mere.}
function fejl(){
if(taeller==1){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";facit=0;optaelling();procent();i=0;R3=R3;}
if(taeller==2){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";}
if(taeller==3){window.alert("Ikke korrekt - prøv bare igen!");document.REGNEOPGAVER.RESULTAT.value="";}
if(taeller==4){window.alert("Ikke korrekt - prøv bare igen!");facit=0;
document.REGNEOPGAVER.RESULTAT.value="";Nyopgave();optaelling();procent();i=0;R3=R3;}

}
Avatar billede tutaleur Nybegynder
12. september 2007 - 15:23 #8
Men cpufan lav lige et svar så du kan få nogle points og mange tak for din hjælp.
Avatar billede nielle Nybegynder
12. september 2007 - 15:34 #9
Med "R3=R3" så kan du jo bare fjerne den helt. :^)
Avatar billede cpufan Juniormester
12. september 2007 - 15:45 #10
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester