Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

тест на JavaScript

44K
25 марта 2009 года
webmac
12 / / 25.03.2009
в общем надо сделать тест,с выводом оценки, JavaScript знаю плохо ,вот что то написал но не работает,как исправить чтоб пахало:)
Код:
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" &#111;&#110;Click="Engine(1, this.value)">a)<br>
<input type=checkbox name="q1" value="true" &#111;&#110;Click="Engine(2, this.value)">b) <br>
<input type=checkbox name="q1" value="false" &#111;&#110;Click="Engine(3, this.value)">c)<br>
<input type=checkbox name="q1"  &#111;&#110;Click="Engine(4, this.value)">d)<p>
<b>2.</b><br>
<input type=radio name="q2" value="true" &#111;&#110;Click="Engine(5, this.value)">a)<br>
<input type=radio name="q2" value="false" &#111;&#110;Click="Engine(6, this.value)">b)<br>
<input type=radio name="q2" value="false" &#111;&#110;Click="Engine(7, this.value)">c)<br>
<CENTER>
<input type=button &#111;&#110;Click="Score()" value="ok">
</CENTER>
</FORM>
366
26 марта 2009 года
int
668 / / 30.03.2005
o_O Боюсь представить, под какими наркотиками был автор когда это писал. Особенно порадовали 7 проверок на true и абстрактное score+(1/4);
44K
26 марта 2009 года
webmac
12 / / 25.03.2009
Цитата: int
o_O Боюсь представить, под какими наркотиками был автор когда это писал. Особенно порадовали 7 проверок на true и абстрактное score+(1/4);


это не проверка на true:) это я сравнивал значения:) с true,как я терь понял это зарезервировано.
а насчет score ,это я чтоб не запутаться.
если есть нормальный алгоритм пиши.

366
26 марта 2009 года
int
668 / / 30.03.2005
Так а зачем ты сравшиваешь значения 7 раз подряд?
 
Код:
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++)
{
проверки
}
44K
26 марта 2009 года
webmac
12 / / 25.03.2009
0 или 7 раз,
хорошо спасибо так и сделаю.
366
27 марта 2009 года
int
668 / / 30.03.2005
Только проверка нужна одна, а не семь :) И какая-то очень хитрая.
Думаю, лучше завести массив с правильными ответами (1 и 0 в соответствующих местах) и массив ответов сравнивать с этим эталонным.
Типа resultat=7;
resultat-=a xor etalon;
Не знаю как в яваскрипте xor пишется =)
Таким образом, если a != etalon, то из resultat вычитается единица, и в конце остаётся число правильных ответов. Но a[] надо тоже заполнять единицами и нулями.
44K
27 марта 2009 года
webmac
12 / / 25.03.2009
Вот и все:)
Код:
<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" &#111;&#110;Click="Engine(1, this.value)">a)<br>
<input type=radio name="q1"  &#111;&#110;Click="Engine(1, this.value)">b)<br>
<input type=radio name="q1"  &#111;&#110;Click="Engine(1, this.value)">c)<br>
<input type=radio name="q1"  &#111;&#110;Click="Engine(1, this.value)">d)<p>
<b>2. </b><br>
<input type=checkbox name="q2" value="b" &#111;&#110;Click="Engine(2, this.value)">a) <br>
<input type=checkbox name="q2" value="b"  &#111;&#110;Click="Engine(3, this.value)">b) <br>
<input type=checkbox name="q2"  &#111;&#110;Click="Engine(4, this.value)">c) <br>
<input type=checkbox name="q2"  &#111;&#110;Click="Engine(5, this.value)">d) <p>
<input type=button &#111;&#110;Click="Score()" value="Ok">
</FORM>
366
27 марта 2009 года
int
668 / / 30.03.2005
Чё-то скобок многовато :)
 
Код:
if(yourAns == x)
score++;
else
score+=1/2;
Так получится?
А почему у тебя нулевой оценки нет? За неправильный ответ лучше снимай балл.
А ещё я не понял, где у тебя правильные ответы хранятся?
44K
27 марта 2009 года
webmac
12 / / 25.03.2009
Цитата: int
Чё-то скобок многовато :)
 
Код:
if(yourAns == x)
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;
}
}

подсчет верных ответов не виду,если верный просто увеличиваю "score" ,и его вывожу.
366
28 марта 2009 года
int
668 / / 30.03.2005
А как узнаёшь, что ответ верный? Где таблица правильных ответов?
48K
02 апреля 2009 года
ncdhh
4 / / 02.04.2009
http://depositfiles.com/files/1lwgppgyc - Вот!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог