SCRIPT LANGUAGE="JavaScript">
var ans = new Array;
var score = 0;
function Engine(question, answer) {
ans[question]=answer;
}
function Score(){
var answerText = "Ваши результаты!\n------------------------------------\n";
var i++
if(ans == "true" ){
score+(1/4);
}
else{
score-(1/4);
}
if(ans == "true" ){
score+(1/4);
}
else{
score-(1/4);
}
if(ans == "true"){
score-(1/4);
}
else{
score+(1/4);
}
if(ans == "true"){
score-(1/4);
}
else{
score+(1/4);
}
if(ans == "true"){
score+(1/3);
}
else{
score-(1/3);
}
if(ans == "true"){
score-(1/3);
}
else{
score+(1/3);
}
if(ans == "true"){
score-(1/3);
}
else{
score+(1/3);
}
var result = score*4;
answerText=answerText+"\n\nБалл: "+result+"%\n";
alert(answerText);
</script>
</head>
<body bgcolor="#EDEDED" text="#000000" link="#000000" topmargin="0" leftmargin="0">
<center>
<!-- BODY START HERE -->
<hr>
<FORM>
<b>1. </b><br>
<input type=checkbox name="q1" value="true" onClick="Engine(1, this.value)">a)<br>
<input type=checkbox name="q1" value="true" onClick="Engine(2, this.value)">b) <br>
<input type=checkbox name="q1" value="false" onClick="Engine(3, this.value)">c)<br>
<input type=checkbox name="q1" onClick="Engine(4, this.value)">d)<p>
<b>2.</b><br>
<input type=radio name="q2" value="true" onClick="Engine(5, this.value)">a)<br>
<input type=radio name="q2" value="false" onClick="Engine(6, this.value)">b)<br>
<input type=radio name="q2" value="false" onClick="Engine(7, this.value)">c)<br>
<CENTER>
<input type=button onClick="Score()" value="ok">
</CENTER>
</FORM>
тест на JavaScript
в общем надо сделать тест,с выводом оценки, JavaScript знаю плохо ,вот что то написал но не работает,как исправить чтоб пахало:)
o_O Боюсь представить, под какими наркотиками был автор когда это писал. Особенно порадовали 7 проверок на true и абстрактное score+(1/4);
Цитата: int
o_O Боюсь представить, под какими наркотиками был автор когда это писал. Особенно порадовали 7 проверок на true и абстрактное score+(1/4);
это не проверка на true:) это я сравнивал значения:) с true,как я терь понял это зарезервировано.
а насчет score ,это я чтоб не запутаться.
если есть нормальный алгоритм пиши.
Код:
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
if (a == 2) alert('два');
Как думаешь, сколько раз вылезет alert?
А вместо score-1/4 делай score+=1/4
Ну и с i надо что-то сделать. Я так понял, тебе там цикл нужен, а не какой-то var i++;
var i;
for (i=1;i<=7;i++)
{
проверки
}
хорошо спасибо так и сделаю.
Думаю, лучше завести массив с правильными ответами (1 и 0 в соответствующих местах) и массив ответов сравнивать с этим эталонным.
Типа resultat=7;
resultat-=a xor etalon;
Не знаю как в яваскрипте xor пишется =)
Таким образом, если a != etalon, то из resultat вычитается единица, и в конце остаётся число правильных ответов. Но a[] надо тоже заполнять единицами и нулями.
Код:
<SCRIPT >
var ans = new Array;
var done = new Array;
var yourAns = new Array;
var score = 0;
var x = ans = "a";
var y = ans = "b";
function Engine(question, answer) {
yourAns[question]=answer;
}
function Score(){
var answerText = "Результат:\n------------------------------------\n";
for(i=1;i<=5;i++){
if(x == yourAns)
{
score++;
}
else
{
if(y == yourAns )
{
score+=1/2;
}
}
}
answerText=answerText+"\n\nВаша оценка : "+score+"\n";
alert(answerText);
}
</script>
<FORM>
<b>1. </b><br>
<input type=radio name="q1" value="a" onClick="Engine(1, this.value)">a)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">b)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">c)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">d)<p>
<b>2. </b><br>
<input type=checkbox name="q2" value="b" onClick="Engine(2, this.value)">a) <br>
<input type=checkbox name="q2" value="b" onClick="Engine(3, this.value)">b) <br>
<input type=checkbox name="q2" onClick="Engine(4, this.value)">c) <br>
<input type=checkbox name="q2" onClick="Engine(5, this.value)">d) <p>
<input type=button onClick="Score()" value="Ok">
</FORM>
var ans = new Array;
var done = new Array;
var yourAns = new Array;
var score = 0;
var x = ans = "a";
var y = ans = "b";
function Engine(question, answer) {
yourAns[question]=answer;
}
function Score(){
var answerText = "Результат:\n------------------------------------\n";
for(i=1;i<=5;i++){
if(x == yourAns)
{
score++;
}
else
{
if(y == yourAns )
{
score+=1/2;
}
}
}
answerText=answerText+"\n\nВаша оценка : "+score+"\n";
alert(answerText);
}
</script>
<FORM>
<b>1. </b><br>
<input type=radio name="q1" value="a" onClick="Engine(1, this.value)">a)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">b)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">c)<br>
<input type=radio name="q1" onClick="Engine(1, this.value)">d)<p>
<b>2. </b><br>
<input type=checkbox name="q2" value="b" onClick="Engine(2, this.value)">a) <br>
<input type=checkbox name="q2" value="b" onClick="Engine(3, this.value)">b) <br>
<input type=checkbox name="q2" onClick="Engine(4, this.value)">c) <br>
<input type=checkbox name="q2" onClick="Engine(5, this.value)">d) <p>
<input type=button onClick="Score()" value="Ok">
</FORM>
Код:
if(yourAns == x)
score++;
else
score+=1/2;
score++;
else
score+=1/2;
А почему у тебя нулевой оценки нет? За неправильный ответ лучше снимай балл.
А ещё я не понял, где у тебя правильные ответы хранятся?
Цитата: int
Чё-то скобок многовато :)
Так получится?
А почему у тебя нулевой оценки нет? За неправильный ответ лучше снимай балл.
А ещё я не понял, где у тебя правильные ответы хранятся?
Код:
if(yourAns == x)
score++;
else
score+=1/2;
score++;
else
score+=1/2;
А почему у тебя нулевой оценки нет? За неправильный ответ лучше снимай балл.
А ещё я не понял, где у тебя правильные ответы хранятся?
Скобок нормально:)
Так не получится,"score" просто будет увеличиваться при не выполнение условия,а так только в случае если равен "y" .
А вот снятие бала за неверный ответ совсем забыл,снимать не буду просто "0" прибавлю.
Код:
var z = ans = "c";
Код:
else
{
if(y == yourAns )
{
score+=1/2;
}
else if(z == yourAns )
{
score+=0;
}
}
{
if(y == yourAns )
{
score+=1/2;
}
else if(z == yourAns )
{
score+=0;
}
}
подсчет верных ответов не виду,если верный просто увеличиваю "score" ,и его вывожу.
А как узнаёшь, что ответ верный? Где таблица правильных ответов?