Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите начинающему программисту ;) (https://javascript.ru/forum/misc/1452-pomogite-nachinayushhemu-programmistu-%3B.html)

druna 21.07.2008 21:48

Помогите начинающему программисту ;)
 
Всем доброго времени суток! я недавно начал изучать Javascript и захотел попробоваться на простейших задачках. захотел сделать что то типа гадалки, которая отвечает на вопросы типа "да, нет". написал, но почему то не работает. помогите разобраться в чем дело и подскажите еще пару задачек, дабы повысить уровень владения языком.
<html> 
<head> 
<title> Узнай правду </title> 

</head> 
<body> 
<textarea>Задайте свой вопрос</textarea> 
<script language="JavaScript" > 
var a=new Array(); 
var rand=new Date(); 
fraza[0]='По любому'; 
fraza[1]='к сожалению этому не бывать'; 
fraza[2]='очень даже может быть'; 
fraza[3]='вероятность маленькая, но все таки может быть'; 
q=(rand.getSeconds())%fraza.length; 
</script> 
<button onclick="javascript:alert(fraza[q]);">Узнать ответ</button> 
</body> 
</html>


вот все что написал

Андрей Параничев 21.07.2008 22:53

Много ошибок и неточностей:
1) onClick не требует указания протокола "javascript:". Его указывать следует только в подстановке вместо url, например в аттрибуте href элемента <a>.
2) JavaScript выполняется последовательно только один раз, поэтому вам, в данном случае, нужно создавать функции, которые потом будут вызываться по определённым событиям.
3) Для того, чтобы получить целое число следует пользоваться генератором случайных чисел, а целочисленное деление, которое вы использовали, в данном случае работает неверно: вы могли бы легко получить числа вне диапазона 0-3. Лучше использовать подобный способ получения случайного числа:
parseInt(Math.random()*4)

Math.random() возвращает случайное число от 0 до 1, умножение на 4 увеличивает диапазон на отрезок от 0 до 3. А parseInt приводит это число к целому виду. Конечно связи с введенным текстом не будет никакой, но зато работает ;)

Kolyaj 21.07.2008 22:53

onclick="alert(fraza[q]);"

Kolyaj 21.07.2008 22:58

Андрей Параничев, в вашем сообщении полезен только первый пункт. Второй пункт, скорее всего, не ставился в задаче, а третий прекрасно работает и у ТС (% -- это не целочисленное деление, а остаток от деления).

Андрей Параничев 21.07.2008 23:07

Kolyaj,
Мда, мне видимо пора ложиться спать :)
Мне, почему то, показалось что fraza.length это длина текста записанного в textarea. От этого второе и третье замечание. Все верно, моя ошибка.

Хранитель Света 22.07.2008 12:34

Цитата:

Сообщение от druna (Сообщение 3795)
Всем доброго времени суток! я недавно начал изучать Javascript и захотел попробоваться на простейших задачках. захотел сделать что то типа гадалки, которая отвечает на вопросы типа "да, нет". написал, но почему то не работает. помогите разобраться в чем дело и подскажите еще пару задачек, дабы повысить уровень владения языком.
<html> 
<head> 
<title> Узнай правду </title> 

</head> 
<body> 
<textarea>Задайте свой вопрос</textarea> 
<script language="JavaScript" > 
var a=new Array(); 
var rand=new Date(); 
fraza[0]='По любому'; 
fraza[1]='к сожалению этому не бывать'; 
fraza[2]='очень даже может быть'; 
fraza[3]='вероятность маленькая, но все таки может быть'; 
q=(rand.getSeconds())%fraza.length; 
</script> 
<button onclick="javascript:alert(fraza[q]);">Узнать ответ</button> 
</body> 
</html>


вот все что написал

Да хороший подход вот только забыл вклячить быиблиотеки <stdlib.h> & <time.h> ))))А так нормлаьно)))


Часовой пояс GMT +3, время: 04:46.