За последние 24 часа нас посетили 17156 программистов и 1246 роботов. Сейчас ищут 895 программистов ...

Как в javascript использовать функцию

Тема в разделе "JavaScript и AJAX", создана пользователем cpuuuh, 23 май 2007.

  1. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    по книге "самоучитель javascript" автор Вадим Дунаев.


    function factorial(n){
    if(n<=1) return 1
    rezult = 3
    for(i=1;i<n;i++){
    rezult = rezult * i


    }
    return result
    }
    var m = 10
    x = factorial(m)
    document.write(x)


    не могу вывести на экран результат.
     
  2. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Какой негатив про Вадима Дунаева.

    вывести на экран означает поместить куда-то, в какую-то ячейку. то есть примерно так
    HTML:
    1. <table><tr><td><script type="text/javascript">
    2. ...
    3. document.write(x);
    4. </script></td></tr></table>
    или
    [js]document.getElementById("mytd").innerHtml = factorial(x)[/js]

    а саму функцию факториал перепиши сам, вместо этого ужоса.
     
  3. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    Вот на php
    PHP:
    1. <?php
    2. function factorial($n){
    3.             $x= $n;
    4.             for($i=1;$i<$x;$i++)  {
    5.             $n=$n*$i;
    6.             $result = $n;
    7.             #echo $n."<br>";
    8.        }
    9.         return $result;
    10. }
    11. $result = factorial(15);
    12. echo $result;
    13. ?>

    на javascript ошибку исправил

    [js]<script type="text/javascript">
    function factorial(n){
    if(n<=1) return 1
    rezult = 3
    for(i=1;i<n;i++){
    rezult = rezult * i
    }
    return rezult
    }
    var m = 10
    x = factorial(m)
    document.write(x)
    </script>[/js]
     
  4. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    А почему столь выборочное использование "var"?
     
  5. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Факториал(2) на яваскрипте что даст?
    куда пишешь вывод?
    и какую ошибку исправил в скрипте?
     
  6. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    vasa_c

    Я не волшебник я только учусь(с)

    Из книги-самоучителя

    armadillo


    1.2! = 3 что странно.
    2.В HTML документ
    3.ошибся в названии return rezult было return result
     
  7. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    Ничего странного, за такой "факториал" надо топить в младенчестве.
    Напиши его сам, задача несложная. Только не отталкивайся от "самоучителя"

    в ХТМЛ документ куда? хотя бы внутри тега боди?
     
  8. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    function factorial(n){
    x = n
    if(n == 0) return 1
    for(o=1;o<x;o++){
    n = n * o
    res = n
    }
    return res
    }
    var d = 15
    z = factorial(d)
    document.write(z)

    гм функци в php и javascript ничем не отличаются?

    Вывожу в HTML файл.


    Может за одно самоучитель более правильный посоветуете. Учится то надо.
     
  9. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    мдя. Вот тебе задача: сделать страничку, на которой есть кнопка, по клику на которую вызывается этот факториал и показывает результат с помощью функции alert;
    Дальше будет понятнее.
     
  10. Psih

    Psih Активный пользователь
    Команда форума Модератор

    С нами с:
    28 дек 2006
    Сообщения:
    2.678
    Симпатии:
    6
    Адрес:
    Рига, Латвия
    По поводу факториала

    Следовательно для JS функция будет выглядеть так:
    [js]
    function fac(n){
    if (n == 1){
    return n;
    }else{
    return n * fac(n-1);
    }
    }
    [/js]
    :D
    Всего-лишь надо было убрать $ в названии переменных :)
     
  11. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    рекурсию будем изучать следущим этапом. ))
    Сначала разберемся в месте выполнения скрипта.
     
  12. simpson

    simpson Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    [js]function fac(n) {
    return ( n == 0 ? 1 : n*fac(n-1) );
    }[/js]
    ? :)
     
  13. dark-demon

    dark-demon Активный пользователь

    С нами с:
    16 фев 2007
    Сообщения:
    1.920
    Симпатии:
    1
    Адрес:
    леноград
    Psih, скажу по секрету, что баксы убирать вовсе не нужно :)
     
  14. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    [js]Number.prototype.fac = (function() {return (this > 0) ? (this * (this - 1).fac()) : 1;});
    var x = 5;
    alert(x.fac());[/js]
    :):):)
     
  15. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    Еще вопросик

    [js]<script type="text/javascript">

    function wo()
    {return "Hellow word"}
    String.prototype.he() = wo
    mystr = " XXX " + "ZZZ".he()

    alert(mystr)

    document.write(mystr)



    </script>[/js]


    немогу продублировать функцию wo() функцией he() через String.prototype.he() = wo
    пример взят из книги. не выводит результат ни через alert() ни через document.write()

    document.write(wo()) работает если закоментить все остальные строки.
    КОд написан в 1st javascript editor проверен на ошибки - ошибок необнаружено.
     
  16. Zeroglif

    Zeroglif Активный пользователь

    С нами с:
    27 май 2007
    Сообщения:
    12
    Симпатии:
    0
    [js]String.prototype.he = wo;[/js]

    Книжка эта слабая, в ней полно ерунды...
     
  17. armadillo

    armadillo Активный пользователь

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
  18. vasa_c

    vasa_c Активный пользователь

    С нами с:
    22 мар 2006
    Сообщения:
    1.760
    Симпатии:
    0
    Адрес:
    гор.Ленинград
    armadillo
    это ты о чем?
     
  19. cpuuuh

    cpuuuh Активный пользователь

    С нами с:
    4 апр 2007
    Сообщения:
    88
    Симпатии:
    0
    Zeroglif

    Неработает :(


    ПОсоветуй что-нибудь, я незнаю с чего начать.

    Помогите. Из той же книжки. Написание функции заменяющей одно стороковое значение другим


    [js]<script type="text/javascript">
    //s1 = all string, s2 = oldvalue, s3 = newvalue
    function replaceS(s1,s2,s3)
    {
    var S_all = ""
    while(true){

    i=s1.indexOf(s2)
    if(i>=0)
    {
    S_all = S_all + s1.substr(0, i) + s3
    //document.write(S_all) проверял значение
    s1 = s1.substr(i + s2.length)
    //s4 = s1 так получается бред
    //S_all = S_all + s4
    }
    else break
    }

    return S_all //+ S_allx вторая часть для меня загадка но так было у автора - неработает
    }

    z = replaceS("one two free one two free one two free", "two", "2")
    document.write(z)

    </script>[/js]

    Вот вот результат


    почему-то теряется последняя free