Практически во всех серьезных программах используют подпрограммы. В 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