Практически во всех серьезных программах используют подпрограммы. В Javascript подпрограммы
принято называть функциями.
Функции взаимодействуют с вызывающими их программными единицами (которые могут быть
кодом JavaScript вне функций, либо, в свою очередь, являться функциями )
посредством обмена параметрами (аргументами) и возвращаемыми значениями.
Будем использовать определение функций в виде:
function имя_функции (список аргументов)
{
тело функции;
return(возвращаемое значение);
}
Отметим, что наличие оператора return, как и списка аргументов, как, впрочем и тела функции не обязательно.
Это далеко не единственное определение
(подробнее см., например ),
но для наших целей достаточно функций, определенных таким образом.
Приведем пример использования функции в программе, вычисляющей n-факториал(n!):
1) Возможное решение:
<script type="text/javascript">
// определим функцию func с параметром n ....................
function func(n)
{
f=1;
for(i=1;i<=n;i++) f=f*i; // в цикле вычисляем факториал, f
return (f);
}
// ...............определили. А теперь попросим пользователя ввести значение аргумента
x=Number(prompt("x=",3));
y=func(x); // и обратимся к функции func
// и выводим ответ
alert(" факториал("+x+")="+y );
document.write(" факториал("+x+") = "+y );
</script>
Вы можете выполнить эту программу в новом окне браузера.
2) В Javascript разрешена рекурсия- прием программирования,
когда в функции встречается вызов этой же функции.
Приведем пример вычисления факториала в функции,
использующей рекурсивный вызов:
<script type="text/javascript">
// определим функцию func с параметром n ....................
function func(n)
{
if (n==1) return(1); // возвращает 1, если n =1
if (n>1) return(n*func(n-1)); // вот она, рекурсия (func(n) возвращает n*func(n-1), если n >1)
return(-1); // возвращает -1, если n <=0
}
// ...............определили. А теперь попросим пользователя ввести значение аргумента
x=Number(prompt("x=",3));
y=func(x); // и обратимся к функции func
// и выводим ответ
alert(" факториал("+x+")="+y );
document.write(" факториал("+x+") = "+y );
</script>
Вы можете выполнить эту программу в новом окне браузера.
<<ранее
к оглавлению далее>>
аналог на Fortran
аналог на Basic
аналог на Pascal
аналог на C
Используются технологии
uCoz