Программисты нужна помощь, необходимо понять логику проверки ответов
Ware
Программисты нужна помощь, необходимо понять логику проверки ответов
На сайте http://wikiitil.ru/docs/EXIN_Foudation_Test-40.html
есть экзамен, где в коде проходит проверка на правильность ответа. Никак не пойму как проверяется ответ и как можно понять какой ответ в каком порядке.
Код проверки
script language="JavaScript">function sbros() {
x=document.forms[0].elements[7].value;for (i=1; i<=x; i++) {document.forms[i].reset();}}
function step3() {var i=0;var j=0;var schet=0;
var jm=document.forms[0].elements[7].value;var im=document.forms[0].elements[8].value;
\\for (j=1; j<=jm; j++){for (i=0; i<im; i++){if (document.forms[j].R1[i].checked==true){schet++;}}};
\\if (schet<jm){alert("Надо ответить на ВСЕ вопросы!");return;}
eo=document.forms[0].elements[9].value;
e=new Array();
e=eo.split("/");
sr=new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0);
o=new Array();var r=0;var tp=5;var kr=0;var test=1;var ll=40;var osh=0;var text="";
for (j=1; j<=jm; j++)
{for (i=0; i<im; i++){if (document.forms[j].R1[i].checked==true){o[j-1]=i*0.6000000000000001+2;}}};
for (j=0; j<jm; j++){
if (o[j]==e[j+tp]){r=r+1*sr[j];}
else{osh++;}};
if (osh!=0){text=" Ошибочных ответов - "+osh+"."}
if (test==1){
if (kr==0){sbros(); alert("Количество правильных ответов: "+r+" из "+jm+" возможных ("+Math.round(r*100/jm)+"%).");}
else{sbros(); alert("Набрано баллов: "+(r*100)+" из "+(ll*100)+"возможных ("+Math.round(r*100/ll)+"%).");}
}
else{if (kr==0){
alert("Количество правильных ответов: "+r+" из "+jm+" возможных ("+Math.round(r*100/jm)+"%).");
}
else{alert("Набрано баллов: "+(r*100)+" из "+(ll*100)+" возможных
("+Math.round(r*100/ll)+"%)."+text)}}}

Ответы:
- -
Добавил комментариев: https://jsfiddle.net/Lcmkjffw/
Код, который при вставке в консоль выставит правильные ответы: https://jsfiddle.net/Lcmkjffw/1/
|