
08.06.2008, 01:24
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами:
9840758
Репутация:
808
|
|
PHP код:
function rnd(x,y,z) // объявляется функция rnd
{
// Объявляется локальная переменная num:
var num;
do // Цикл do ... while гарантирует, что код в теле цикла исполнится хоть один раз.
{
// Переменной num присваивается результат исполнения выражения с правой стороны:
// Math.random() генерирует число от 0 до 1,
// которое умножается на значение переменной z,
// после чего функция parseInt извлекает из полученного целую часть.
num = parseInt(Math.random()*z);
// Если значение переменной num принадлежит замкнутому интевалу [x,y], то цикл прерывается:
if (num >= x && num <= y) break;
} while (true);
return(num); // Возвращается значение num. return не функция, скобки не нужны.
}
function genArray() // Объявляется функция genArray
{
// Объявляются локальные переменные pwd, res, s, и т.д.
// Переменные всегда создаются со значением undefined,
// когда JS-движок переходит в новую «область действия» (scope). Грубо говоря, в функцию.
// Другое значение они получают после, в результате исполнения выражения присваивания.
var pwd = ''; // В данном случае pwd - это идентификатор переменной,
// а вторая часть, «= ''» - инициализатор,
// который и содержит в себе выражение присваивания.
var res, s;
var k = 0;
var n = document.myform.numbers.value; // Здесь переменной n присваивается значение select'а
var pass = new Array(); // Создаётся новый массив с помощью оператора new и функции-конструктора Array.
var w = rnd(30,80,100); // С помощью функции генерируется число от 30 до 80
for (var r = 0; r < w; r++) // Цикл от нуля до w, полученного строчкой выше.
{
if (myform.upper.checked) // Поставлена ли галка в чекбоксе?
{
res = rnd(1,26,100); // Генерируется число от 1 до 26
pass[k] = upp[res]; // Из массива upp (с большими буквами) выбирается элемент с индексом, равным значению переменной res,
// полученное значение присваивается элементу массива pass с индексом k
k++; // Инкремент.
}
// Аналогично:
if (myform.lower.checked) { res = rnd(1,26,100); pass[k] = low[res]; k++; }
if (myform.digit.checked)
{
res = rnd(1,10,100); // Просто отличная мысль - сгенерировать число от 1 до 10, чтобы
pass[k] = dig[res]; // выбрать из массива число от 0 до 9.
k++;
}
} // end for;
for (var i = 0; i < n; i++) // Цикл от нуля до n.
{
s = rnd(1,k-1,100); // Генерируется число от 1 до k-1
// Сейчас значение k равно длине массива pass.
pwd += pass[s]; // К строке pwd прибавляется значение элемента массива pass с индексом s
} // end for;
document.myform.getback.value = pwd; // Вставляет нагенерированное в input.
}
// Вывод: код неграмотный.
|
|
|