Négation - QCM
Bild: Négation - QCM
fautes.htm
— 30 KB
Dateiinhalt
<html> <head><meta name="author" content="Created with Hot Potatoes by Half-Baked Software, registered to Richard Nisius."></meta><meta name="keywords" content="Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta> <title> La jalousie </title> <script language="javascript" type="text/javascript"> //<![CDATA[ <!-- // BrowserCheck Object function BrowserCheck() { var b = navigator.appName //HBS extension this.mac = (navigator.appVersion.indexOf('Mac') != -1) if (b=="Netscape") this.b = "ns" else if (b=="Microsoft Internet Explorer") this.b = "ie" else this.b = b this.version = navigator.appVersion this.v = parseInt(this.version) this.ns = (this.b=="ns" && this.v>=4) this.ns4 = (this.b=="ns" && this.v==4) this.ns5 = (this.b=="ns" && this.v==5) this.ie = (this.b=="ie" && this.v>=4) this.ie4 = (this.version.indexOf('MSIE 4')>0) this.ie5 = (this.version.indexOf('MSIE 5')>0) this.min = (this.ns||this.ie) this.CRAPBrowser = (this.ie && this.mac); //Cannot Resolve Addresses Properly } is = new BrowserCheck(); var LocFolder = GetFolder(window.location.href); function GetFolder(LocPath){ LocPath = ReplaceStuff('\'','%27',LocPath); var i = LocPath.lastIndexOf('/'); if (i<0){i=LocPath.lastIndexOf('\\')}; return LocPath.substring(0,i); } function CombineURLs(InURL){ var i = InURL.indexOf('../'); var s = LocFolder; while (i >- 1){ s = GetFolder(s); InURL = InURL.substring(3,InURL.length); i = InURL.indexOf('../'); } return s + '/' + InURL; } x = new Array(); function ResolveURLs(InText,Attribute){ x.length=0; var Temp = InText.toLowerCase(); var z; var AttLen = Attribute.length + 2; var y=Temp.lastIndexOf(Attribute + '="'); while (y>-1){ var sLoc = y+AttLen; if (Temp.substring(sLoc,sLoc+5) != 'http:'){ x[x.length]=new Array(); x[x.length-1][0] = sLoc; z = Temp.indexOf('"',sLoc); x[x.length-1][1] = z; x[x.length-1][2] = InText.substring(sLoc,z); } Temp = Temp.substring(0,y); y=Temp.lastIndexOf(Attribute + '="'); } for (var j=0; j<x.length; j++){ InText = InText.substring(0,x[j][0]) + CombineURLs(x[j][2]) + InText.substring(x[j][1], InText.length); } return InText; } function ResolveAllURLs(Stuff){ Stuff = ResolveURLs(Stuff,'href'); Stuff = ResolveURLs(Stuff,'src'); Stuff = ResolveURLs(Stuff,'parent.location'); return Stuff; } var ExBGColor = '#F8eccb'; var PageBGColor = '#f6d4af'; var NavBarColor = '#ffbb99'; var TextColor = '#000066'; var CurrQNum = 0; var ALetters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; var CorrectIndicator = ':-)'; var IncorrectIndicator = 'X'; var YourScoreIs = 'Ton pointage est :'; var Tries = 0; var CorrectChoices = 0; var ContinuousScoring = true; var CorrectFirstTime = 'Réponses correctes la première fois : ';var ExerciseTitle = 'La jalousie'; var ExerciseSubtitle = 'Questions à choix multiples'; var Instructions = 'Choisis la bonne réponse.'; //''; var ShuffleQs = false; var ShuffleAs = true; var DefaultRight = 'Correct!'; var DefaultWrong = 'Erreur, essaie à nouveau'; var QsToShow = 12; var ShowOneByOne = true; var ReadingURL = ''; var EraseFeedback = true; var Score = 0; var PreviousPage = history.length; ReadingText='<html><head><meta name="author" content="Created with Hot Potatoes by Half-Baked Software, registered to Richard Nisius."></meta><meta name="keywords" content="Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta><title>La jalousie</title></head><body background="" bgcolor="#f6d4af" text="#000066" link="#0000ff" vlink="#0000cc"><center><table border="0" cellpadding="5" cellspacing="1" width="85%"><tr><td align="center" bgcolor="#f6d4af"><font size="+1" face="Geneva,Arial" color="#ff0000">La jalousie<br></br></font></td></tr><tr><td bgcolor="#F8eccb"><font face="Geneva,Arial" size="-1" color="#000066">C\'est dimanche, 19h. Sylvie a rendez-vous avec son ami Patrick. Elle sait que samedi dernier, il est all\u00E9 \u00E0 la discoth\u00E8que avec Janine, sa meilleure amie. Sylvie est un peu jalouse et lui pose des questions. Patrick a bonne conscience et r\u00E9pond - par des phrases grammaticalement correctes, bien s\u00FBr!<br />Indiquez les r\u00E9ponses que Patrick a donn\u00E9es \u00E0 Sylvie.</font></td></tr></table></center></body></html>'; if (is.CRAPBrowser){ReadingText=ResolveAllURLs(ReadingText);} var NavBar=''; NavBar+='<tr><form name="NavButtons1" action=""><td bgcolor="#ffbb99" align="center">'; NavBar+='<font face="Geneva,Arial" size="-1">'; NavBar+='<input type="button" value="Index" onclick=\'parent.location="index.htm"\'></input>'; NavBar+='<input type="button" value="Exercice suivant" onclick=\'parent.location="contraire.htm"\'></input>'; NavBar+='</font></td></form></tr>'; if (is.CRAPBrowser){NavBar=ResolveAllURLs(NavBar)}; var TitleCode = '<tr><td align="center" valign="middle" bgcolor="#f6d4af">'; TitleCode += '<font size="+1" face="Geneva,Arial" color="#ff0000">' + ExerciseTitle + '</font><br />'; TitleCode += '<font size="-1" face="Geneva,Arial" color="#ff0000">' + ExerciseSubtitle + '<br />'; TitleCode += '</font></td></tr>'; var QButtonsOpener = '<table border="0" width="85%" cellpadding="10">'; QButtonsOpener += '<tr><td align="center" valign="middle"><form>'; QButtonsOpener += '<font size="+1"><input type="button" value="<=" onclick="parent.ChangeQ(-1)"></input>'; var QButtonsCloser = '<input type="button" value="=>" onclick="parent.ChangeQ(1)"></input>'; QButtonsCloser += '</font></form></td></tr></table>'; var TableOpener = '<form name="QForm">'; TableOpener += '<table border="0" width="85%">'; var QRow = '<tr><td valign="top" bgcolor="#F8eccb" align="right">'; QRow += '<font size="+1" face="Geneva,Arial" color="#000066">[QNumber]</font></td>'; QRow += '<td colspan="3" valign="top" bgcolor="#F8eccb"><font size="-1" face="Geneva,Arial" color="#000066">[Question]<br /> '; QRow += '</font></td></tr>'; var ARow = '<tr><td></td><td valign="top" bgcolor="#F8eccb"><input type="text" value=" " size="3" name="FB_[QNum]_[ANum]"></input></td>'; ARow += '<td valign="top" bgcolor="#F8eccb"><input type="button" value="[ALetter]" OnClick="parent.CheckAnswer([QNum],[ANum])"></input></td>'; ARow += '<td width="100%" bgcolor="#F8eccb"><font size="-1" face="Geneva,Arial" color="#000066">[Ans]</font></td></tr>'; var MARow = '<tr><td></td><td valign="top" bgcolor="#F8eccb" colspan="3"><input type="checkbox" name="A_[QNum]_[ANum]" value="[Correct]"></input>'; MARow += '<font size="-1" face="Geneva,Arial" color="#000066">[Ans]</font></td></tr>'; var CheckButton = '<tr><td></td><td valign="top" bgcolor="#F8eccb" ><input type="button" value="Correction"'; CheckButton += ' onclick="parent.CheckMulti([QNum])"></input></td></tr>'; TableCloser = '</table></form>'; function GoBack(){ var BackSkip = history.length - PreviousPage; if (BackSkip > 0){ history.go((BackSkip+1)*-1); } else{ parent.history.back(); } } function ReduceItems(){ var ItemToDump=0; var j=0; while (I.length > QsToShow){ ItemToDump = Math.floor(I.length*Math.random()); for (j=ItemToDump; j<(I.length-1); j++){ I[j] = I[j+1]; } I.length = I.length-1; } } function Shuffle(InArray){ Temp = new Array(); var Len = InArray.length; var j = Len; for (var i=0; i<Len; i++){ Temp[i] = InArray[i]; } for (i=0; i<Len; i++){ Num = Math.floor(j * Math.random()); InArray[i] = Temp[Num]; for (var k=Num; k < j; k++) { Temp[k] = Temp[k+1]; } j--; } return InArray; } function WriteFeedback(Feedback) { if (is.CRAPBrowser){Feedback=ResolveAllURLs(Feedback);} //Build the output string var OutString = ''; OutString += '<html>'; OutString += '<body background="" bgcolor="#f6d4af" text="#000066" link="#0000ff" vlink="#0000cc">'; OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">'; OutString += NavBar; if (Feedback.length>0){ OutString += '<tr><td bgcolor="#F8eccb" align="center">'; OutString += '<font face="Geneva,Arial" size="-1" color="#000066">'; OutString += Feedback; OutString += '</font></td></tr>' } OutString += '</table></center></body></html>'; //Write it to the frame TopFrame.document.clear(); TopFrame.document.open(); TopFrame.document.write(OutString); TopFrame.document.close(); } function StartUp(){ //Write the reading frame ShowReading(); //Reduce array if required if (QsToShow < I.length){ ReduceItems(); } //Shuffle stuff if required if (ShuffleQs == true){ I = Shuffle(I); } if (ShuffleAs == true){ for (var i=0; i<I.length; i++){ I[i][1] = Shuffle(I[i][1]); } } //Create arrays CreateStatusArrays(); //Show the first question or all of them if (ShowOneByOne == false){ ShowAllQs(); } else{ ShowQuestion(CurrQNum); } //Write the top frame WriteFeedback(Instructions); } I = new Array(); I[0] = new Array(); I[0][0]='Il est 19h30 ! Tu as oublié à quelle heure on avait rendez-vous ?'; I[0][1] = new Array(); I[0][1][0] = new Array(); I[0][1][0][0]='Mais non, je ne l\'ai pas oublié.'; I[0][1][0][1]=''; I[0][1][0][2] = 1; I[0][1][1] = new Array(); I[0][1][1][0]='Mais non, je l\'ai ne pas oublié.'; I[0][1][1][1]='<i>ne ... pas</i> umschließt Objektpronomen und konjugiertes Verb.'; I[0][1][1][2] = 0; I[0][1][2] = new Array(); I[0][1][2][0]='Mais non, je ne l\'ai pas oublier.'; I[0][1][2][1]='<i>oublier</i> = Infinitiv, <i>oublié</i> = participe passé'; I[0][1][2][2] = 0; I[0][2] = 0; I[1] = new Array(); I[1][0]='Dis, tu es allé à la discothèque avec Janine. Je pense que tu voudrais sortir avec elle !'; I[1][1] = new Array(); I[1][1][0] = new Array(); I[1][1][0][0]='Qu\'est-ce que tu dis, je n\'aimerais sortir pas du tout avec elle, crois-moi !'; I[1][1][0][1]='<i>pas</i> muss hinter das konjugierte Verb'; I[1][1][0][2] = 0; I[1][1][1] = new Array(); I[1][1][1][0]='Qu\'est-ce que tu dis, j\'aimerais pas du tout sortir avec elle, ma petite amie, c\'est toi !'; I[1][1][1][1]='<i>ne</i> fehlt'; I[1][1][1][2] = 0; I[1][1][2] = new Array(); I[1][1][2][0]='Qu\'est-ce que tu dis, je ne sortirais jamais avec elle!'; I[1][1][2][1]=''; I[1][1][2][2] = 1; I[1][2] = 0; I[2] = new Array(); I[2][0]='Tu lui as donné des baisers ?'; I[2][1] = new Array(); I[2][1][0] = new Array(); I[2][1][0][0]='Non, je ne lui ai jamais donné de baisers.'; I[2][1][0][1]=''; I[2][1][0][2] = 1; I[2][1][1] = new Array(); I[2][1][1][0]='Non, je ne lui ai jamais donné des baisers.'; I[2][1][1][1]='<i>ne ... jamais de</i> ohne Artikel (verneinte Menge, wie <i>ne ... pas de</i>)'; I[2][1][1][2] = 0; I[2][1][2] = new Array(); I[2][1][2][0]='Non, je n\'ai pas lui donné de baisers, j\'ai seulement lui fait la bise.'; I[2][1][2][1]='Objektpronomen wie <i>lui</i> stehen vor dem konjugierten Verb. Hier 2x falsch'; I[2][1][2][2] = 0; I[2][2] = 0; I[3] = new Array(); I[3][0]='Tu en as déjà assez de moi ?'; I[3][1] = new Array(); I[3][1][0] = new Array(); I[3][1][0][0]='Non, je n\'ai pas déjà assez de toi.'; I[3][1][0][1]='<i>déjà</i> = schon; <i>encore</i> = noch'; I[3][1][0][2] = 0; I[3][1][1] = new Array(); I[3][1][1][0]='Non, je n\'ai pas encore assez de toi.'; I[3][1][1][1]=''; I[3][1][1][2] = 1; I[3][1][2] = new Array(); I[3][1][2][0]='Non, je n\'ai plus assez de toi.'; I[3][1][2][1]=''; I[3][1][2][2] = 0; I[3][2] = 0; I[4] = new Array(); I[4][0]='Tu iras encore une fois à la dicothèque avec elle ?'; I[4][1] = new Array(); I[4][1][0] = new Array(); I[4][1][0][0]='Non, je suis sûr que je ne vais y aller qu\'avec toi.'; I[4][1][0][1]=''; I[4][1][0][2] = 1; I[4][1][1] = new Array(); I[4][1][1][0]='Non, je suis sûr que je n\'y vais aller qu\'avec toi.'; I[4][1][1][1]='Adverbialpronomen (<i>en, y</i>) und Objektpronomen stehen vor dem Infinitiv'; I[4][1][1][2] = 0; I[4][1][2] = new Array(); I[4][1][2][0]='Non, je suis sûr que je ne vais pas y aller qu\'avec toi.'; I[4][1][2][1]='<i>ne ... pas</i> = nicht; <i>ne ... que</i> = nur (Diese Antwort ergibt keinen Sinn)'; I[4][1][2][2] = 0; I[4][2] = 0; I[5] = new Array(); I[5][0]='Tu vas me laisser seule encore une fois ?'; I[5][1] = new Array(); I[5][1][0] = new Array(); I[5][1][0][0]='Non, je ne vais pas encore te laisser seule.'; I[5][1][0][1]='<i>ne ... pas encore</i> = noch nicht'; I[5][1][0][2] = 0; I[5][1][1] = new Array(); I[5][1][1][0]='Non, je ne te vais plus laisser seule.'; I[5][1][1][1]='Objektpronomen vor den Infinitiv'; I[5][1][1][2] = 0; I[5][1][2] = new Array(); I[5][1][2][0]='Non, je ne vais plus jamais te laisser seule.'; I[5][1][2][1]=''; I[5][1][2][2] = 1; I[5][2] = 0; I[6] = new Array(); I[6][0]='Tu penses souvent à Janine ?'; I[6][1] = new Array(); I[6][1][0] = new Array(); I[6][1][0][0]='Non, je ne pense guère souvent à elle.'; I[6][1][0][1]='Ce n\'est pas logique !'; I[6][1][0][2] = 0; I[6][1][1] = new Array(); I[6][1][1][0]='Non, je ne pense guerre à elle.'; I[6][1][1][1]='<i>la guerre</i> = der Krieg!'; I[6][1][1][2] = 0; I[6][1][2] = new Array(); I[6][1][2][0]='Non, je ne pense guère à elle.'; I[6][1][2][1]=''; I[6][1][2][2] = 1; I[6][2] = 0; I[7] = new Array(); I[7][0]='Tu as invité d\'autres filles à sortir avec toi ?'; I[7][1] = new Array(); I[7][1][0] = new Array(); I[7][1][0][0]='Non, je n\'ai personne invité.'; I[7][1][0][1]='<i>personne</i> steht an derselben Stelle wie das Substantiv'; I[7][1][0][2] = 0; I[7][1][1] = new Array(); I[7][1][1][0]='Non, je n\'ai invité personne.'; I[7][1][1][1]=''; I[7][1][1][2] = 1; I[7][1][2] = new Array(); I[7][1][2][0]='Non, personne ne m\'a invité.'; I[7][1][2][1]='Dieser Satz ist keine Antwort auf die Frage, auch wenn er grammatisch richtig ist.'; I[7][1][2][2] = 0; I[7][2] = 0; I[8] = new Array(); I[8][0]='Tu n\'as pas eu de scrupules d\'aller à la discothèque avec une autre fille ?'; I[8][1] = new Array(); I[8][1][0] = new Array(); I[8][1][0][0]='Non, je n\'ai eu aucun scrupule.'; I[8][1][0][1]=''; I[8][1][0][2] = 1; I[8][1][1] = new Array(); I[8][1][1][0]='Non, je n\'ai pas eu aucun scrupule.'; I[8][1][1][1]='Das ist "doppelt gemoppelt"'; I[8][1][1][2] = 0; I[8][1][2] = new Array(); I[8][1][2][0]='Non, je n\'ai eu pas de scrupule.'; I[8][1][2][1]='<I>ne ... pas</i> umschließt das konjugierte Verb'; I[8][1][2][2] = 0; I[8][2] = 0; I[9] = new Array(); I[9][0]='Tu me trouves belle ?'; I[9][1] = new Array(); I[9][1][0] = new Array(); I[9][1][0][0]='Oui, tu es plus belle que jamais.'; I[9][1][0][1]=''; I[9][1][0][2] = 1; I[9][1][1] = new Array(); I[9][1][1][0]='Oui, tu es plus belle que ne jamais.'; I[9][1][1][1]='<I>jamais</i> ohne <i>ne</i> = je(mals)'; I[9][1][1][2] = 0; I[9][1][2] = new Array(); I[9][1][2][0]='Oui, aucun fille n\'est aussi belle que toi.'; I[9][1][2][1]='<i>aucun</i> ist männlich!'; I[9][1][2][2] = 0; I[9][2] = 0; I[10] = new Array(); I[10][0]='Tu as vraiment été fidèle ?'; I[10][1] = new Array(); I[10][1][0] = new Array(); I[10][1][0][0]='Oh, tu sais, il n\'est personne si fidèle que moi.'; I[10][1][0][1]='<i>personne</i> ist Subjekt des Satzes.'; I[10][1][0][2] = 0; I[10][1][1] = new Array(); I[10][1][1][0]='Oh, tu sais, ne personne est si fidèle que moi.'; I[10][1][1][1]='<i>ne</i> steht immer vor dem Verb (bzw. vor dem Objektpronomen)'; I[10][1][1][2] = 0; I[10][1][2] = new Array(); I[10][1][2][0]='Oh, tu sais, personne n\'est si fidèle que moi.'; I[10][1][2][1]=''; I[10][1][2][2] = 1; I[10][2] = 0; I[11] = new Array(); I[11][0]='Eh bien, je ne parlerai plus de ça.'; I[11][1] = new Array(); I[11][1][0] = new Array(); I[11][1][0][0]='Moi, je n\'en parlerai plus aussi.'; I[11][1][0][1]='<i>ne ... pas (ne ... plus) non plus</i> = auch nicht (mehr)'; I[11][1][0][2] = 0; I[11][1][1] = new Array(); I[11][1][1][0]='Moi, je n\'en parlerai pas non plus.'; I[11][1][1][1]=''; I[11][1][1][2] = 1; I[11][1][2] = new Array(); I[11][1][2][0]='Moi, je n\'en parlerai non plus.'; I[11][1][2][1]='<i>plus</i> fehlt nach dem konjugierten Verb.'; I[11][1][2][2] = 0; I[11][2] = 0; Status = new Array(); function CreateStatusArrays(){ for (var x=0; x<I.length; x++){ Status[x] = new Array(); Status[x][0] = 0; // Question not done yet Status[x][1] = new Array(); //for tracking whether answers chosen for (var y=0; y<I[x][1].length; y++){ Status[x][1][y] = '0'; //Answers not chosen yet } Status[x][2] = 0; //Wrong tries at this question so far Status[x][3] = 0; //For storing score out of one on this question } } function ReplaceStuff(Token, Replacement, InString){ var i = InString.indexOf(Token); var FirstBit = ''; var LastBit = ''; while (i>-1){ FirstBit = InString.substring(0, i); LastBit = InString.substring(i + Token.length, InString.length); InString = FirstBit + Replacement + LastBit; i = InString.indexOf(Token); } return InString; } function ChangeQ(ChangeBy){ var NewNum = CurrQNum + ChangeBy; if ((NewNum >= 0)&&(NewNum<I.length)){ CurrQNum = NewNum; ShowQuestion(CurrQNum); } var CurrScore = ''; if ((ContinuousScoring == true)&&(EraseFeedback == true)){ CurrScore = YourScoreIs + ' ' + Score + '%.'; WriteFeedback(CurrScore); } } function BuildQuestion(QNum){ if (I[QNum][2] == 0){ var Temp = ReplaceStuff('[Question]', I[QNum][0], QRow); var AnsRows = ''; for (var i=0; i<I[QNum][1].length; i++){ TempAns = ARow; TempAns = ReplaceStuff('[ANum]', i, TempAns); TempAns = ReplaceStuff('[ALetter]', ' ' + ALetters.charAt(i) + ' ', TempAns); TempAns = ReplaceStuff('[Ans]', I[QNum][1][i][0], TempAns); AnsRows += TempAns; } Temp += AnsRows; Temp = ReplaceStuff('[QNumber]', QNum+1, Temp); Temp = ReplaceStuff('[QNum]', QNum, Temp); } else{ var Temp = ReplaceStuff('[Question]', I[QNum][0], QRow); var AnsRows = ''; for (var i=0; i<I[QNum][1].length; i++){ TempAns = MARow; TempAns = ReplaceStuff('[ANum]', i, TempAns); TempAns = ReplaceStuff('[Correct]', I[QNum][1][i][2], TempAns); TempAns = ReplaceStuff('[Ans]', I[QNum][1][i][0], TempAns); AnsRows += TempAns; } Temp += AnsRows; Temp += CheckButton; Temp = ReplaceStuff('[QNumber]', QNum+1, Temp); Temp = ReplaceStuff('[QNum]', QNum, Temp); } return Temp; } function DisplayExercise(StuffToDisplay){ //Build the output string var OutString = ''; OutString += '<html>'; OutString += '<body background="" bgcolor="#f6d4af" text="#000066" link="#0000ff" vlink="#0000cc">'; OutString += '<center><table border="0" cellpadding="5" cellspacing="1" width="85%">'; OutString += TitleCode; OutString += '<tr><td bgcolor="#F8eccb" align="center">'; OutString += '<font face="Geneva,Arial" size="-1">'; OutString += StuffToDisplay; OutString += '</font></td></tr>'; OutString += NavBar; OutString += '</table></center></body></html>'; if (is.CRAPBrowser){OutString=ResolveAllURLs(OutString);} //Write it to the frame BottomFrame.document.clear(); BottomFrame.document.open(); BottomFrame.document.write(OutString); BottomFrame.document.close(); } function ShowAllQs(){ var Output = ''; for (var i=0; i<I.length-1; i++){ Output = Output + BuildQuestion(i); Output = Output + '<tr><td colspan="4"><hr></hr></td></tr>'; } Output = Output + BuildQuestion(I.length-1); Output = TableOpener + Output + TableCloser; DisplayExercise(Output); } function ShowQuestion(QNum){ //First, create the Q number readout at the top var Readout = (QNum+1) + '/' + I.length; while (Readout.length < 7){ Readout = ' ' + Readout + ' '; } Readout = QButtonsOpener + Readout + QButtonsCloser; var Output = BuildQuestion(QNum); Output = TableOpener + Output + TableCloser; DisplayExercise(Readout + Output); //Mark the answers already done for (i=0; i<Status[QNum][1].length; i++){ if (Status[QNum][1][i] == 'R'){ MarkAnswer(QNum,i,true) } if (Status[QNum][1][i] == 'W'){ MarkAnswer(QNum,i,false) } if (Status[QNum][1][i] == 'C'){ CheckCheckbox(QNum,i); } } //Eliminate feedback from previous question if (EraseFeedback == true){ WriteFeedback(''); } } function CheckMulti(QNum){ var TotWrong = 0; var Output = ''; var TotAns = I[QNum][1].length; for (var i=TotAns-1; i>=0; i--){ //Find any incorrect choices var b = eval('BottomFrame.document.QForm.A_' + QNum + '_' + i); if (b != null){ //if it's wrong, count it if (b.checked == true){ Status[QNum][1][i] = 'C'; } else{ Status[QNum][1][i] = 'U'; } if (((b.checked == true) && (b.value == "0"))||((b.checked == false)&&(b.value == "1"))){ TotWrong++; } } } if (TotWrong == 0){ Output = DefaultRight; } else{ Output = DefaultWrong + '<br />' + (TotAns-TotWrong) + '/' + TotAns; } //If you haven't tried the question before if (Status[QNum][0] == 0){ if (TotWrong > 0){ Status[QNum][2]++; } if (TotWrong == 0){ Status[QNum][0] = 1; //Calculate the score for this question as a floating-point fraction of 1 Status[QNum][3] = ((Status[QNum][1].length - Status[QNum][2]) - 1) / (Status[QNum][1].length - 1); //If less than zero, set to zero if (Status[QNum][3] < 0){Status[QNum][3] = 0;} } } //Check whether the quiz is finished var Finished = true; for (var i=0; i<Status.length; i++){ if (Status[i][0] == 0){Finished = false;} } //Calculate the score if needed if (Status[QNum][0] == 1){ if ((Finished==true)||(ContinuousScoring==true)){ var DoneQs = 0; var TotalScore = 0; for (var i=0; i<Status.length; i++){ if (Status[i][0] == 1){ DoneQs++; TotalScore += Status[i][3]; } } Score = (Math.floor(100 * (TotalScore/DoneQs))); Output = Output + '<br />' + YourScoreIs + ' ' + Score + '%.'; } if (Finished == true){ EraseFeedback = false; var CFT = 0; for (i=0; i<I.length; i++){ if (Status[i][2] == 0){ CFT++; } } Output += '<br />' + CorrectFirstTime + CFT + '/' + I.length; } } //Show the feedback if (Output.length > 0){ WriteFeedback(Output); } } function CheckAnswer(QNum, ANum){ var Output = I[QNum][1][ANum][1]; if (Output==''){ if (I[QNum][1][ANum][2] == 1){ Output = DefaultRight; } else{ Output = DefaultWrong; } } //If it's not been previously answered correctly if (Status[QNum][0] == 0){ //If it's a correct answer if (I[QNum][1][ANum][2] == 1){ Status[QNum][0] = 1;//Mark the Q as done Status[QNum][1][ANum] = 'R'; MarkAnswer(QNum, ANum, true); //Calculate the score for this question as a floating-point fraction of 1 var PossibleWrongs = 0; for (var i=0; i<I[QNum][1].length; i++){ if (I[QNum][1][i][2] == 0){ PossibleWrongs++; } } if (PossibleWrongs == 0){PossibleWrongs = 1;} Status[QNum][3] = 1 - (Status[QNum][2]/PossibleWrongs); //If less than zero, set to zero if (Status[QNum][3] < 0){Status[QNum][3] = 0;} } else{ if (Status[QNum][1][ANum] != 'W'){ Status[QNum][1][ANum] = 'W'; MarkAnswer(QNum, ANum, false); Status[QNum][2]++; //increment wrong tries for this Q } } } //Check whether the quiz is finished var Finished = true; for (var i=0; i<Status.length; i++){ if (Status[i][0] == 0){Finished = false;} } //Calculate the score if needed if (Status[QNum][0] == 1){ if ((Finished==true)||(ContinuousScoring==true)){ var DoneQs = 0; var TotalScore = 0; for (var i=0; i<Status.length; i++){ if (Status[i][0] == 1){ DoneQs++; TotalScore += Status[i][3]; } } Score = (Math.floor(100 * (TotalScore/DoneQs))); Output = Output + '<br />' + YourScoreIs + ' ' + Score + '%.'; } if (Finished == true){ EraseFeedback = false; var CFT = 0; for (i=0; i<I.length; i++){ if (Status[i][2] == 0){ CFT++; } } Output += '<br />' + CorrectFirstTime + CFT + '/' + I.length; } } //Show the feedback if (Output.length > 0){ WriteFeedback(Output); } } function MarkAnswer(QNum, ANum, Right){ var Mark = CorrectIndicator; if (Right == false){Mark = IncorrectIndicator;} if (eval('BottomFrame.document.QForm.FB_' + QNum + '_' + ANum) != null){ eval('BottomFrame.document.QForm.FB_' + QNum + '_' + ANum).value = Mark; } } function CheckCheckbox(QNum, ANum){ if (eval('BottomFrame.document.QForm.A_' + QNum + '_' + ANum) != null){ eval('BottomFrame.document.QForm.A_' + QNum + '_' + ANum).checked = true; } } function ShowReading(){ if (ReadingFrame != null){ if (ReadingURL.length > 0){ ReadingFrame.location.href=ReadingURL; } else{ ReadingFrame.document.clear(); ReadingFrame.document.open(); ReadingFrame.document.write(ReadingText); ReadingFrame.document.close(); } } } function Blank(){ return '<html><body>©Half-Baked Software. Loading...</body></html>'; } //--> //]]> </script> </head> <!--<body>Fool those dumb ad-inserting ISPs</body>--> <!--For full XHTML 1.0 compatibility, remove the border and framespacing attributes. These are required for proper display in current browsers, but render the document incompatible. Then, you'll need to add the appropriate Document Type Declaration; use the W3C XHTML 1 frameset DTD.--> <frameset cols = "50%,50%" framespacing="0" border="0"> <frameset rows = "20%,*" onload="StartUp()" framespacing="0" border="0"> <frame src="javascript:parent.Blank()" frameborder="0" name="TopFrame"></frame> <frame src="javascript:parent.Blank()" frameborder="0" name="BottomFrame"></frame> </frameset> <frame src="javascript:parent.Blank()" frameborder="0" name="ReadingFrame"></frame> </frameset> </html>