Négation - Exercices d'association 1

Bild: Négation - Exercices d'association 1

text/html assoc1.htm — 13 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>
Les adverbes de n&#233;gation
</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 CorrectIndicator = ':-)';
var IncorrectIndicator = 'X';
var YourScoreIs = 'Ton pointage est :'; //'Your score is: ';
var CorrectResponse = 'Correct! Bravo.';
var IncorrectResponse = 'D&#233;sol&#233;! Fais un nouvel essai. Les paires incorrectes ont &#233;t&#233; enlev&#233;es!';
var TotalUnfixedLeftItems = 0;
var TotCorrectChoices = 0;
var Penalties = 0;
var ExerciseTitle = 'Les adverbes de n&#233;gation'; //'Test exercise';
var ExerciseSubtitle = 'Exercice d\'association'; //'Multiple-choice';
var Instructions = 'Choisissez l\'expression correcte associ&#233;e &#224; chaque n&#233;gation.'; //'';
var DefaultResponse = '[strDefaultResponse]';
var ReadingURL = '';

var PreviousPage = history.length;







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="assoc2.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 TableOpener = '<center><form name="QForm">';
TableOpener += '<table border="0">';

var IRow = '<tr><td valign="top" bgcolor="#F8eccb">';
IRow += '<font face="Geneva,Arial" color="#000066">[strLeftItem]&nbsp;&nbsp;&nbsp;&nbsp;</font></td>';
IRow += '<td valign="top" bgcolor="#F8eccb">';
IRow += '<font face="Geneva,Arial" color="#000066">[strRightItem]</font></td>';
IRow += '<td valign="top" bgcolor="#F8eccb"><font face="Geneva,Arial" color="#000066">';
IRow += '&nbsp;&nbsp;&nbsp;[Mark]';
IRow += '</font></td></tr>';

var CheckButton = '<tr><td valign="top" align="center" bgcolor="#F8eccb" colspan="3"><br /><input type="button" value="Correction" OnClick="parent.CheckAnswers()"></input></td></tr>';

TableCloser = '</table></form></center>';

var DropDownList = '';
var Exercise = '';

function GoBack(){
	var BackSkip = history.length - PreviousPage;
	if (BackSkip > 0){
		history.go((BackSkip+1)*-1);
	}
	else{
		parent.history.back();
	}
}

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 BuildSelector(){
	DropDownList = '<select name="sel[INum]">';
	DropDownList += '<option value="???">???</option>';
	for (var i=0; i<RItems.length; i++){
		DropDownList += '<option value="' + EscapeDoubleQuotes(RItems[i][0]) + '">' + RItems[i][0] + '</option>';
	}
	DropDownList += '</select>';
}

function StartUp(){


	CorrectIndicator = '<nobr>' + CorrectIndicator + '</nobr>';
	IncorrectIndicator = '<nobr>' + IncorrectIndicator + '</nobr>';

//Write the top frame
	WriteFeedback(Instructions);

//Create the right-item/distractor array, and shuffle it
	var DuplicateItem = false;
	for (var i=0; i<I.length; i++){
//If it's not fixed
		if (I[i][2] < 1){
			if (I[i][0].length > 0){
				TotalUnfixedLeftItems++;
			}
			DuplicateItem = false;
//and it's not already in the array
			for (var j=0; j<RItems.length; j++){
				if (I[i][1] == RItems[j][0]){
					DuplicateItem = true;
					RItems[j][1][RItems[j][1].length] = i;
				}
			}
//add it to the array
			if (DuplicateItem == false){
				RItems[RItems.length] = new Array();
				RItems[RItems.length-1][0] = I[i][1];
				RItems[RItems.length-1][1] = new Array();
				RItems[RItems.length-1][1][0] = i;
			}
		}
	}
	RItems = Shuffle(RItems);

//Now tell the I array items which of the selector items matches to it
	for (i=0; i<RItems.length; i++){
		for (j=0; j<RItems[i][1].length; j++){
			I[RItems[i][1][j]][3] = i;
		}
	}

//Now use the RItems array to build the drop-down list selector
	BuildSelector();	

//Create arrays
	CreateStatusArrays();



//Build and show the exercise
	BuildExercise();
	DisplayExercise(Exercise);


}


function BuildExercise(){
	var TempRow = '';
	Exercise = '';
	for (var i=0; i<I.length; i++){
//if there's a left item -- ie it's not a distractor
		if (I[i][0].length > 0){
			TempRow = IRow;
			TempRow = ReplaceStuff('[strLeftItem]', I[i][0], TempRow);
//if not fixed and not yet answered correctly
			if ((I[i][2] < 1)&&(Status[i][0] < 1)){
				TempRow = ReplaceStuff('[strRightItem]', DropDownList, TempRow);
			}
			else{
				TempRow = ReplaceStuff('[strRightItem]', I[i][1], TempRow);
			}
//if it's not fixed, and it's been attempted, mark it appropriately
			if ((I[i][2] < 1)&&(Status[i][1] > 0)){
				if (Status[i][0] < 1){
					TempRow = ReplaceStuff('[Mark]', IncorrectIndicator, TempRow);
				}
				else{
					TempRow = ReplaceStuff('[Mark]', CorrectIndicator, TempRow);
				}
			}
			else{
				TempRow = ReplaceStuff('[Mark]', '', TempRow);
			}
			TempRow = ReplaceStuff('[INum]', i, TempRow);
			Exercise += TempRow;
		}
	}
//Add the check button
	Exercise += CheckButton;

//Make it into a table
	Exercise = TableOpener + Exercise + TableCloser;
}

I = new Array();
I[0] = new Array();
I[0][0] = 'kaum';
I[0][1] = 'ne ... gu&#232;re';
I[0][2] = 0;
I[1] = new Array();
I[1][0] = 'noch nicht';
I[1][1] = 'ne ... pas encore';
I[1][2] = 0;
I[2] = new Array();
I[2][0] = '&#252;berhaupt nicht';
I[2][1] = 'ne ... pas du tout';
I[2][2] = 0;
I[3] = new Array();
I[3][0] = 'auch nicht';
I[3][1] = 'ne ... pas non plus';
I[3][2] = 0;
I[4] = new Array();
I[4][0] = 'nicht mehr';
I[4][1] = 'ne ... plus';
I[4][2] = 0;
I[5] = new Array();
I[5][0] = 'nie(mals)';
I[5][1] = 'ne ... jamais';
I[5][2] = 0;
I[6] = new Array();
I[6][0] = 'nie mehr';
I[6][1] = 'ne ... plus jamais';
I[6][2] = 0;
I[7] = new Array();
I[7][0] = 'nichts mehr';
I[7][1] = 'ne ... plus rien';
I[7][2] = 0;
I[8] = new Array();
I[8][0] = 'niemand';
I[8][1] = 'ne ... personne';
I[8][2] = 0;
I[9] = new Array();
I[9][0] = 'keinerlei';
I[9][1] = 'ne ... aucun,e';
I[9][2] = 0;


Status = new Array();

RItems = new Array();

function CreateStatusArrays(){
	for (var x=0; x<I.length; x++){
		Status[x] = new Array();
		Status[x][0] = 0; // Item not matched correctly yet
		Status[x][1] = 0; //Tries at this item so far
	}
}

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 EscapeDoubleQuotes(InString){
	var Result = '';
	for (var i=0; i<InString.length; i++){
		if (InString.charAt(i) == '"'){
			Result += '&quot;';
		}
		else{
			Result += InString.charAt(i);
		}
	}
	return Result;
}

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 GetAnswer(INum){
	var Result = -1;
	var s = eval('BottomFrame.document.QForm.sel' + INum);
	if (s != null){
		Result = s.selectedIndex - 1;
	}
	return Result;
}

function CheckAnswers(){
	var AllDone = true;
	TotCorrectChoices = 0;
//for each item not fixed or a distractor
	for (var i=0; i<I.length; i++){
		if ((I[i][2] < 1)&&(I[i][0].length > 0)){
//if it hasn't been answered correctly yet
			if (Status[i][0] < 1){
//Add one to the number of tries for this item
				Status[i][1]++;
//Get the answer
				if (GetAnswer(i) == I[i][3]){
//The answer is correct, so set the status flag
					Status[i][0] = 1;
				}
//else the answer is wrong, so remember that
				else{
					AllDone = false;
				}				
			}
//If it's correct, count it
			if (Status[i][0] == 1){
				TotCorrectChoices++;
			}
		}
	}
//Calculate the score
	var Score = Math.floor(((TotCorrectChoices-Penalties)/TotalUnfixedLeftItems)*100);
	var Feedback = '';

//Build the feedback
	if (AllDone == true){
		Feedback = CorrectResponse + '<br />' + YourScoreIs + Score + '%.';
	}
	else{
		Feedback = IncorrectResponse + '<br />' + YourScoreIs + Score + '%.';
//Penalty for incorrect check
		Penalties++;
	}
//Show the feedback and rebuild the exercise
	WriteFeedback(Feedback);



	BuildExercise();
	DisplayExercise(Exercise);
}







function Blank(){
	return '<html><body>&copy;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 rows="25%,*" framespacing="0" border="0" onload="StartUp()">
	<frame src="javascript:parent.Blank()" frameborder="0" name="TopFrame"></frame>
	<frame src="javascript:parent.Blank()" frameborder="0" name="BottomFrame"></frame>
</frameset>




</html>