" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*120
nheight=getFontSize()/16*50
m1=""
EquationText%QUESTION.NUMBER%= m1+m2+m3+e1%QUESTION.NUMBER%+" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
e3%QUESTION.NUMBER%=""
e4%QUESTION.NUMBER%=""
e5%QUESTION.NUMBER%=""
e6%QUESTION.NUMBER%=""
e7%QUESTION.NUMBER%=""
e8%QUESTION.NUMBER%=""
MathML_terms[Nvar+1] = m1+m2+m3+e2%QUESTION.NUMBER%;
MathML_terms[Nvar+2] = m1+m2+m3+e3%QUESTION.NUMBER%;
MathML_terms[Nvar+3] = m0+m2+m3+e4%QUESTION.NUMBER%;
MathML_terms[Nvar+4] = m1+m2+m3+e5%QUESTION.NUMBER%;
MathML_terms[Nvar+5] = m1+m2+m3+e6%QUESTION.NUMBER%;
MathML_terms[Nvar+6] = m1+m2+m3+e7%QUESTION.NUMBER%;
MathML_terms[Nvar+7] = m0+m2+m3+e8%QUESTION.NUMBER%;
td = ""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+6] = NOT(elements[i][1]);
elements[i][Nvar+5] = AND(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+2] = IF(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*180
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+6] = NOT(elements[i][1]);
elements[i][Nvar+5] = IFF(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+2] = IF(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+10;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*190
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = elements[i][1];
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+6] = NOT(elements[i][1]);
elements[i][Nvar+9] = NOT(elements[i][2]);
elements[i][Nvar+5] = IFF(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+8] = IF(elements[i][Nvar+9],elements[i][Nvar+5]);
elements[i][Nvar+2] = IF(elements[i][Nvar+1],elements[i][Nvar+8]);
elements[i][Nvar+3] = "((";
elements[i][Nvar+7] = ")";
elements[i][Nvar+10] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j =1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7,10);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+13;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*250
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+7] = elements[i][1];
elements[i][Nvar+9] = elements[i][2];
elements[i][Nvar+12] = NOT(elements[i][1]);
elements[i][Nvar+8] = IFF(elements[i][Nvar+7],elements[i][Nvar+9]);
elements[i][Nvar+5] = OR(elements[i][Nvar+4],elements[i][Nvar+8]);
elements[i][Nvar+11] = IF(elements[i][Nvar+12],elements[i][Nvar+5]);
elements[i][Nvar+2] = IF(elements[i][Nvar+1],elements[i][Nvar+11]);
elements[i][Nvar+3] = "{[";
elements[i][Nvar+6] = "(";
elements[i][Nvar+10] = ")]";
elements[i][Nvar+13] = "}";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7,10,13);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"5 "+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+10;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*180
nheight=getFontSize()/16*50
m1=" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = NOT(elements[i][1]);
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+6] = elements[i][1];
elements[i][Nvar+9] = NOT(elements[i][2]);
elements[i][Nvar+5] = OR(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+8] = AND(elements[i][Nvar+5],elements[i][Nvar+9]);
elements[i][Nvar+2] = AND(elements[i][Nvar+1],elements[i][Nvar+8]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = ")";
elements[i][Nvar+10] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j =1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7,10);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
//alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td +elements[i][j]+"";
display_elementsa = display_elementsa + td +display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write(QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+"
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+10;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = NOT(elements[i][1]);
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+7] = elements[i][3];
elements[i][Nvar+9] = NOT(elements[i][2]);
elements[i][Nvar+8] = AND(elements[i][Nvar+7],elements[i][Nvar+9]);
elements[i][Nvar+5] = IF(elements[i][Nvar+4],elements[i][Nvar+8]);
elements[i][Nvar+2] = IFF(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+6] = "(";
elements[i][Nvar+10] = "))";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(5,8,11);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"4 "+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+13;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*300
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = NOT(elements[i][1]);
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+7] = NOT(elements[i][2]);
elements[i][Nvar+9] = elements[i][1];
elements[i][Nvar+12] = elements[i][1];
elements[i][Nvar+8] = IF(elements[i][Nvar+7],elements[i][Nvar+9]);
elements[i][Nvar+11] = AND(elements[i][Nvar+8],elements[i][Nvar+12]);
elements[i][Nvar+5] = OR(elements[i][Nvar+4],elements[i][Nvar+11]);
elements[i][Nvar+2] = IFF(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "[";
elements[i][Nvar+6] = "((";
elements[i][Nvar+10] = ")";
elements[i][Nvar+13] = ")]";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7,10,13);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"5 "+tdred+"1"+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*120
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = NOT(elements[i][1]);
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+6] = elements[i][2];
elements[i][Nvar+5] = AND(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+2] = OR(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(4,7);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+11;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+1] = NOT(elements[i][1]);
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+8] = elements[i][1];
elements[i][Nvar+10] = NOT(elements[i][3]);
elements[i][Nvar+9] = AND(elements[i][Nvar+8],elements[i][Nvar+10]);
elements[i][Nvar+6] = NOT(elements[i][Nvar+9]);
elements[i][Nvar+5] = OR(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+2] = OR(elements[i][Nvar+1],elements[i][Nvar+5]);
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = "(";
elements[i][Nvar+11] = "))";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(5,8,9,12);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"5 "+tdred+"1"+tdred+"4"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*120
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+7] = elements[i][2];
elements[i][Nvar+3] = AND(elements[i][Nvar+2],elements[i][Nvar+4]);
elements[i][Nvar+6] = IFF(elements[i][Nvar+3],elements[i][Nvar+7]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+14;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*250
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+8] = elements[i][2];
elements[i][Nvar+10] = NOT(elements[i][1]);
elements[i][Nvar+13] = NOT(elements[i][1]);
elements[i][Nvar+3] = AND(elements[i][Nvar+2],elements[i][Nvar+4]);
elements[i][Nvar+9] = IF(elements[i][Nvar+8],elements[i][Nvar+10]);
elements[i][Nvar+12] = IFF(elements[i][Nvar+9],elements[i][Nvar+13]);
elements[i][Nvar+6] = OR(elements[i][Nvar+3],elements[i][Nvar+12]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
elements[i][Nvar+7] = "[(";
elements[i][Nvar+11] = ")";
elements[i][Nvar+14] = "]";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8,11,14);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+10;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*190
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+7] = NOT(elements[i][1]);
elements[i][Nvar+10] = NOT(elements[i][2]);
elements[i][Nvar+6] = IFF(elements[i][Nvar+5],elements[i][Nvar+7]);
elements[i][Nvar+3] = IF(elements[i][Nvar+2],elements[i][Nvar+6]);
elements[i][Nvar+9] = IF(elements[i][Nvar+10],elements[i][Nvar+3]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+4] = "(";
elements[i][Nvar+8] = "))";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j =1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8,11);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*120
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+7] = NOT(elements[i][1]);
elements[i][Nvar+3] = OR(elements[i][Nvar+2],elements[i][Nvar+4]);
elements[i][Nvar+6] = AND(elements[i][Nvar+3],elements[i][Nvar+7]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+7;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*35
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+7] = NOT(elements[i][3]);
elements[i][Nvar+3] = OR(elements[i][Nvar+2],elements[i][Nvar+4]);
elements[i][Nvar+6] = IFF(elements[i][Nvar+3],elements[i][Nvar+7]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(6,9);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+14;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*250
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][1];
elements[i][Nvar+4] = NOT(elements[i][2]);
elements[i][Nvar+10] = NOT(elements[i][1]);
elements[i][Nvar+13] = elements[i][2];
elements[i][Nvar+3] = OR(elements[i][Nvar+2],elements[i][Nvar+4]);
elements[i][Nvar+8] = NOT(elements[i][Nvar+10]);
elements[i][Nvar+12] = AND(elements[i][Nvar+8],elements[i][Nvar+13]);
elements[i][Nvar+6] = IFF(elements[i][Nvar+3],elements[i][Nvar+12]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
elements[i][Nvar+7] = "[";
elements[i][Nvar+9] = "(";
elements[i][Nvar+11] = ")";
elements[i][Nvar+14] = "]";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8,10,14);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"2 "+tdred+"1 "+tdred+"3"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+14;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*250
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = elements[i][2];
elements[i][Nvar+4] = NOT(elements[i][1]);
elements[i][Nvar+8] = elements[i][2];
elements[i][Nvar+11] = elements[i][1];
elements[i][Nvar+13] = elements[i][2];
elements[i][Nvar+3] = IF(elements[i][Nvar+4],elements[i][Nvar+2]);
elements[i][Nvar+12] = IF(elements[i][Nvar+11],elements[i][Nvar+13]);
elements[i][Nvar+9] = OR(elements[i][Nvar+8],elements[i][Nvar+12]);
elements[i][Nvar+6] = AND(elements[i][Nvar+3],elements[i][Nvar+9]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
elements[i][Nvar+7] = "[";
elements[i][Nvar+10] = "(";
elements[i][Nvar+14] = ")]";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8,11,14);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+10;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*180
nheight=getFontSize()/16*50
m1=" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = NOT(elements[i][1]);
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+7] = elements[i][1];
elements[i][Nvar+10] = NOT(elements[i][2]);
elements[i][Nvar+6] = OR(elements[i][Nvar+5],elements[i][Nvar+7]);
elements[i][Nvar+3] = AND(elements[i][Nvar+2],elements[i][Nvar+6]);
elements[i][Nvar+9] = AND(elements[i][Nvar+3],elements[i][Nvar+10]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+4] = "(";
elements[i][Nvar+8] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j =1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(5,8,11);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
//alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td +elements[i][j]+"";
display_elementsa = display_elementsa + td +display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write(QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+"
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+11;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+2] = NOT(elements[i][3]);
elements[i][Nvar+4] = elements[i][2];
elements[i][Nvar+8] = NOT(elements[i][1]);
elements[i][Nvar+10] = elements[i][3];
elements[i][Nvar+3] = IF(elements[i][Nvar+4],elements[i][Nvar+2]);
elements[i][Nvar+9] = IF(elements[i][Nvar+8],elements[i][Nvar+10]);
elements[i][Nvar+6] = AND(elements[i][Nvar+3],elements[i][Nvar+9]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+5] = ")";
elements[i][Nvar+7] = "(";
elements[i][Nvar+11] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(6,9,12);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+12;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+4] = elements[i][1];
elements[i][Nvar+6] = elements[i][2];
elements[i][Nvar+9] = elements[i][3];
elements[i][Nvar+12] = NOT(elements[i][2]);
elements[i][Nvar+5] = IFF(elements[i][Nvar+4],elements[i][Nvar+6]);
elements[i][Nvar+2] = NOT(elements[i][Nvar+5]);
elements[i][Nvar+8] = IF(elements[i][Nvar+2],elements[i][Nvar+9]);
elements[i][Nvar+11] = IFF(elements[i][Nvar+8],elements[i][Nvar+12]);
elements[i][Nvar+1] = "(";
elements[i][Nvar+3] = "(";
elements[i][Nvar+7] = ")";
elements[i][Nvar+10] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(5,8,11,14);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"1 "+tdred+"5"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+12;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+3] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+9] = NOT(elements[i][2]);
elements[i][Nvar+11] = NOT(elements[i][1]);
elements[i][Nvar+4] = IF(elements[i][Nvar+5],elements[i][Nvar+3]);
elements[i][Nvar+10] = OR(elements[i][Nvar+9],elements[i][Nvar+11]);
elements[i][Nvar+1] = NOT(elements[i][Nvar+4]);
elements[i][Nvar+7] = AND(elements[i][Nvar+1],elements[i][Nvar+10]);
elements[i][Nvar+2] = "(";
elements[i][Nvar+6] = ")";
elements[i][Nvar+8] = "(";
elements[i][Nvar+12] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(3,6,9,12);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+12;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+3] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+9] = NOT(elements[i][2]);
elements[i][Nvar+11] = NOT(elements[i][1]);
elements[i][Nvar+4] = IF(elements[i][Nvar+3],elements[i][Nvar+5]);
elements[i][Nvar+10] = IFF(elements[i][Nvar+9],elements[i][Nvar+11]);
elements[i][Nvar+1] = NOT(elements[i][Nvar+4]);
elements[i][Nvar+7] = IF(elements[i][Nvar+1],elements[i][Nvar+10]);
elements[i][Nvar+2] = "(";
elements[i][Nvar+6] = ")";
elements[i][Nvar+8] = "(";
elements[i][Nvar+12] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(3,6,9,12);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+8;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*180
nheight=getFontSize()/16*50
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*40
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+3] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+8] = NOT(elements[i][1]);
elements[i][Nvar+4] = IF(elements[i][Nvar+3],elements[i][Nvar+5]);
elements[i][Nvar+1] = NOT(elements[i][Nvar+4]);
elements[i][Nvar+7] = IFF(elements[i][Nvar+1],elements[i][Nvar+8]);
elements[i][Nvar+2] = "(";
elements[i][Nvar+6] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 3; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 3; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4);
allowed_columns = new Array(3,6,9);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+12;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+3] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+9] = NOT(elements[i][3]);
elements[i][Nvar+11] = NOT(elements[i][2]);
elements[i][Nvar+4] = IFF(elements[i][Nvar+3],elements[i][Nvar+5]);
elements[i][Nvar+10] = AND(elements[i][Nvar+9],elements[i][Nvar+11]);
elements[i][Nvar+1] = NOT(elements[i][Nvar+4]);
elements[i][Nvar+7] = OR(elements[i][Nvar+1],elements[i][Nvar+10]);
elements[i][Nvar+2] = "(";
elements[i][Nvar+6] = ")";
elements[i][Nvar+8] = "(";
elements[i][Nvar+12] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(4,7,10,13);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("
" ;
SHOW = "";
for (var i=5; i "+document.forms[0].elements[item+3].value+" "+ANS+" "+full_table%QUESTION.NUMBER%+" ";
}
function question%QUESTION.NUMBER%()
{
//undecided_string = ".";
undecided_string = "";
terms = new Array;
MathML_terms = new Array;
A = Math.ceil(2*Math.random())-1;
B = Math.ceil(2*Math.random())-1;
number_wanted = 5;
i = Math.ceil(7*Math.random());
terms[1] = varname_logic(i,0);
terms[2] = varname_logic(i+1,0);
terms[3] = varname_logic(i+2,0);
Nvar = terms.length-1;
Nrow = Math.pow(2,Nvar);
Ncolumn = Nvar+13;
QuestionText%QUESTION.NUMBER% = personname()+" is trying to find the values in the truth table for the statement: ";
QuestionText2%QUESTION.NUMBER% = "Input the missing values (T or F) in the order indicated, separated by commas (no spaces and no full stop at the end). ";
QuestionText3%QUESTION.NUMBER% = " Important: Logical operations should be performed according to precedence rules.";
nwidth=getFontSize()/16*200
nheight=getFontSize()/16*45
m1=" "+QuestionText%QUESTION.NUMBER%+EquationText%QUESTION.NUMBER%+display_table%QUESTION.NUMBER%+" ");
document.write(QuestionText2%QUESTION.NUMBER%+" ")
document.write(QuestionText3%QUESTION.NUMBER%);
document.write("")
}
if (document.forms[0].name=="FEEDBACK")
{}
else
{question%QUESTION.NUMBER%()}
]]>
"}
else
{document.forms[0].elements[item+3].value =
"Your answer "+document.forms[0].elements[item].value+", should have been "+COR+SHOW+" "}
document.forms[0].elements[item+3].value = QT + EquationText%QUESTION.NUMBER% + display_table%QUESTION.NUMBER%+"
"
nwidth=getFontSize()/16*30
nheight=getFontSize()/16*50
m1=""
tdred = " "
th = " "
elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
display_elements= gettruthtable(MathML_terms,Nvar,Ncolumn);
for (i = 1; i <= Nrow; i++ ) {
elements[i][Nvar+3] = elements[i][1];
elements[i][Nvar+5] = elements[i][2];
elements[i][Nvar+10] = elements[i][1];
elements[i][Nvar+12] = NOT(elements[i][3]);
elements[i][Nvar+4] = OR(elements[i][Nvar+3],elements[i][Nvar+5]);
elements[i][Nvar+11] = AND(elements[i][Nvar+10],elements[i][Nvar+12]);
elements[i][Nvar+1] = NOT(elements[i][Nvar+4]);
elements[i][Nvar+8] = NOT(elements[i][Nvar+11]);
elements[i][Nvar+7] = OR(elements[i][Nvar+1],elements[i][Nvar+8]);
elements[i][Nvar+2] = "(";
elements[i][Nvar+6] = ")";
elements[i][Nvar+9] = "(";
elements[i][Nvar+13] = ")";
}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j <= Ncolumn; j++ ) {
elements[i][j]=TF(elements[i][j],undecided_string);
}}
for (i = 1; i <= Nrow; i++ ) {
for (j = 1; j < 4; j++ ) {elements[i][j]=""+elements[i][j]+"";
display_elements[i][j]=elements[i][j];
}
for (j = 4; j <= Ncolumn; j++ ) {
if(elements[i][j] != undecided_string){display_elements[i][j]=".";}else{display_elements[i][j]=undecided_string;}
}
}
allowed_rows = new Array(1,2,3,4,5,6,7,8);
allowed_columns = new Array(4,7,10,11,14);
indices = displayarray(number_wanted,0,(allowed_rows.length)*(allowed_columns.length)-1,1);
indices = jSort(indices, 0, number_wanted-1)
// alert(indices);
correct = "";
for(var inum = 0; inum < number_wanted; inum++){
ic = allowed_rows[Math.floor(indices[inum]/allowed_columns.length)];
jc = allowed_columns[indices[inum] % allowed_columns.length];
display_elements[ic] [jc] = inum + 1;
if(inum == number_wanted-1){correct += elements[ic] [jc]}else{correct += elements[ic] [jc] +","};
}
elementsb = "";
display_elementsb = "";
for (i = 0; i <= Nrow; i++ ) {
j = 1;
elementsa = "";
display_elementsa = "";
while (j <= Ncolumn) {
elementsa = elementsa + td+elements[i][j]+"";
display_elementsa = display_elementsa + td+display_elements[i][j]+"";
j++;
}
elementsb = elementsb + " "+elementsa+" ";
display_elementsb = display_elementsb + ""+display_elementsa+" ";
}
elementsb += ""+tdred+"# "
full_table%QUESTION.NUMBER% ='"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 "+tdred+"4"+tdred+"3 "+tdred+"1"+tdred+"2"+tdred+"1 '+elementsb+'
';
display_table%QUESTION.NUMBER% =''+display_elementsb+'
';
Correct%QUESTION.NUMBER% = correct;
document.write("