Тест по системам счисления на JS

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Speleo_Lesya
Сообщения: 3
Зарегистрирован: 06 апр 2009, 21:52

Это мой первый скрипт, поэтому сильно не ругайте :D

Это тест для перевода чисел, где переводимое число генерируется рандомом, типа чтобы студенты не списывали друг у друга.

Проблема в в том что я не могу его правильно зациклить на конечное число вопросов и куда то(например в отдельное окно)после завершения тестирования вывести результаты и например поставить оценку.
[html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Тест</title>
</head>
<SCRIPT LANGUAGE="JavaScript">

var ch1=" Переведите число ";
var ch2=" в двоичную систему ";
var otvet=" - ответ: ";
var result=new Array;
var ost;
var osnovanie=2;
var sum_ost;
var res;
var stroka ;
var s=0;

var j=0;
var timerID = null;
var itog;
test()

function test()
{
var chislo = Math.round(Math.random() * (100-1)) + 1;
j=j+1;
document.write(ch1 + chislo + ch2);

var i=1;
while (chislo/osnovanie>=1)
{
ost=(chislo % osnovanie);
result=Math.floor(ost);
pes=ost;
chislo=chislo/osnovanie;
stroka=result + stroka;
i=i+1;

}
result=Math.floor(chislo);
result=(result.reverse());
res=(result.join(""));

}

function rand()
{
num=res
}

function guessnum()
{
var test=document.formotvet.find.value;

if (test == num)
{
s=s+1
alert("ПРАВИЛЬНО!!!")
rand()
window.location="test_new4.htm"
}

if (test=="" || test==" ")
{
alert("Вы не ввели ответ")
}

if(test!=num & test!="" & test!=" ")
{
alert("НЕ ПРАВИЛЬНО!!!")
window.location="test_new4.htm"
}

} //--> function guessnum()
//-->for

function ozenka()
{

document.write("У вас " + s + " правильных ответов")
}

function newtest()
{

if (document.formotvet.find.value=="" || document.formotvet.find.value==" ")
{alert("Вы не ввели ответ")}
else
guessnum()

}



</SCRIPT>
<BODY onLoad="rand()">
<FORM NAME="formotvet">Введите ответ:
<INPUT NAME="find" SIZE="40" TYPE="text">
<INPUT TYPE="button" VALUE="Проверить" onClick="guessnum()">
<BUTTON name="reset" type="reset">Сбросить</BUTTON>
<INPUT TYPE="button" VALUE="Следующий вопрос" onClick="newtest()">
<INPUT TYPE="button" VALUE="Узнать оценку" onClick="ozenka()">


<hr>
</FORM>
<hr>

</body>
</html>
[/html]
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

[HTML]
var neww= open("my.htm" ......); <!--можно ещё blank написать чтоб просто пустое открыть -->
neww.document.write('<html><head><meta http-equiv="Content-Type" content="text/html" charset="windows-1251">');
neww.document.writeln('<title>Оценка 2-</title>');
neww.document.writeln('</head>');
neww.document.writeln('<body>');
[/HTML]

итд
[syntax=Delphi] [/syntax]
Speleo_Lesya
Сообщения: 3
Зарегистрирован: 06 апр 2009, 21:52

Ну дык если я в цикле создаю новое окно, то оно будет создаваться при каждой итерации...а его содержимое будет при этом перезаписываться, вот в том то и проблема :confused: . Потому я и не соображу как сделать граммотно цикл на несколько вопросов и где то сохранять результаты тестирования :(
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

var neww = random
neww ...

Сохранять результаты может серверный язык типа php, или же - делаем страничку из 2 фреймов во 2 фрейме храним результаты, + можно куки задействовать (необязательно)
[syntax=Delphi] [/syntax]
Speleo_Lesya
Сообщения: 3
Зарегистрирован: 06 апр 2009, 21:52

Duncon писал(а):var neww = random
........или же - делаем страничку из 2 фреймов во 2 фрейме храним результаты, + можно куки задействовать (необязательно)
Спасибо за совет, почти получилось )))
Как запускать функцию из другого фрейма я разобралась, не могу тока найти как считать данные из формы расположенной в другом фрейме.. :confused:
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Это несложно :)
<frame>..
<frame name="my">..
parent.my.doSome();

Для соблюдения "кросплатформенности" (чтоб во всех броузерах работало) думаю следует через id подобное вытворять, на эксперименты нет времени..
[syntax=Delphi] [/syntax]
Ответить