Стандартные объекты и функции Javascript

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем -, 2 мар 2010.

Статус темы:
Закрыта.
  1. Гость

    У меня есть лабораторная и там дано:
    Написать функцию решения указанной задачи. Исходные данные должны задаваться внутри кода как константы.
    Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобка. Вывести на экран все символы, расположенные внутри этих скобок.

    Вот я написала приблизительный код:
    Код (Text):
    <HTML>
    <HEAD>
    <TITLE>Работа со строками</TITLE>
    <script type="text/javascript">
    <!--
    var str="Рассказ — малая форма эпической прозы, соотносимая с повестью как более развернутой формой повествования. Восходит к фольклорным жанрам (сказке, притче); как жанр обособился в письменной литературе; часто неотличим от новеллы, а с XVIII в. — и очерка. Иногда новеллу и очерк рассматривают как полярные разновидности рассказа.";
    document.write(+str.bold()+"<br>");
    var pos=0;
    var num=-1;
    var i=-1;
    while (pos!=-1) {
    pos=str.indexOf("с",i+1);
    num+=1;
    i=pos;
    }
    str1=str.slice(137,151);
    document.write("То,что стоит в скобках:"+"\""+str1+"\""+"<br>");

    -->
    </SCRIPT>
    </HEAD>
    <BODY>
    </BODY>
    </HTML>
    Я правильно написала или надо было каким-то другим способом вывести на экран все символы, расположенные внутри этих скобок.
    Заранее благодарю.
     
  2. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    код ниже - это супер =)))
    что Вам мешает посмотреть хелп по indexOf, и substr (или substring)?
    найти (, найти ), расположенную после ( и выделить текст между скобок.
     
  3. Гость

    вот я немного подправила,так правильно?
    Код (Text):
    <HTML>
    <HEAD>
    <TITLE>Работа со строками</TITLE>
    <script type="text/javascript">
    var str="Рассказ — малая форма эпической прозы, соотносимая с повестью как более развернутой формой повествования. Восходит к фольклорным жанрам (сказке, притче); как жанр обособился в письменной литературе; часто неотличим от новеллы, а с XVIII в. — и очерка. Иногда новеллу и очерк рассматривают как полярные разновидности рассказа.";
    document.write(str.bold()+"<br>");
    var a = str.indexOf('(');
    var b = str.indexOf(')');
    s = str.slice(a + 1, b);
    document.write("То,что стоит в скобках:"+"\""+s+"\""+"<br>");
    </SCRIPT>
    </HEAD>
    <BODY>
    </BODY>
    </HTML>
     
  4. Гость

    выводит вот такой вот текст:

    То,что стоит в скобках:"сказке, притче"
     
  5. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    уже получше.
    но потерялись проверки a==-1 b==-1 (когда одной из скобок нет в тексте - в общем случае они нужны)
    Если a!=-1, то, возможно, имеет смысл искать ) после позиции a:
    var b = str.indexOf(')', a);
    А возможно, по задаче допустимо выделять текст и между такой последовательностью скобок:
    ")текст внутри скобок("
    и, возможно, тогда надо посмотреть, какая из скобок расположена левее...
    если a==-1, то вторую скобку искать бессмысленно...

    Добавлено: чесгря, ")текст внутри скобок(" ничем не противоречит описанной Вами постановке - он расположен между скобками)))

    Добавлено: в общем, если лабу не будут "пытать на дуракоустойчивость" "левыми" данными, то вполне сойдет )))
     
  6. Гость

    у нас просто универ славится заданиями, условия которых понимают только преподы
    вобщем там же написано вывести то,что расположено внутри этих скобок, не написали ведь вывести то,что находится между открытой и закрытой скобкой,так что будем надеется, что пронесет,если нет,на месте переделаю

    Добавлено: или может попробывать прокрутить все варианты
     
  7. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    ок, собственно, там будет проблема только в порядке операндов для slice - я не помню, насколько корректно он обработает случай a+1 > b. быстро добавить сравнение и подправить код можно.
     
  8. Гость

    тут в этой же лабе,ещё одну задачку надо решить и я не совсем понимаю её условия:
    Написать функцию решения указанной задачи. Исходные данные получить при помощи датчика случайных чисел.12) Даны натуральные числа а1, а2, ..., аn. Указать те, у которых остаток от деления на М равен L,(0<= L<=M-1).

    И вот я не могу понять:М и L самой произвольно выбрать (придумать),только что L должно быть меньше M-1 и больше 0,и натуральные числа тоже самой придумать?
    Заранее спасибо.
     
  9. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    а1, а2, ..., аn точно генерить придется

    Думаю, М и L тоже.
    смотрите ссылки с примерами для получения СЧ в заданном диапазоне:
    http://www.w3schools.com/js/js_obj_math.asp
    http://www.webdevelopersnotes.com/tutorial...javascript.php3
    наверно, только кол-во чисел можно задать самой
     
  10. Гость

    ну вот допустим,я хочу вывести натуральные числа в диапазоне от 0 до 1000
    вот какой код вышел:
    Код (Text):
    <script type="text/javascript">
    Math.floor(Math.random() * (1001));
    document.write(Math.floor(Math.random() * (1001))+"<br>");
    </SCRIPT>
    но он мне выводит только одно число,а я хочу чтобы мне сразу вывело несколько чисел и чтобы они не повторялись.
     
  11. Гость

    спасибо, но я уже сама до этого додумалась, не успела написать, Нет вырубили...
     
  12. Гость

    про Нет это я написала к тому,что я додумалась,когда Нета не было,но просто не смогла ответить на форуме и выложить свой ответ,так как его вырубили.
     
  13. Гость

    ну почему же,я додумываюсь и когда есть Нет
     
  14. Гость

    блин,чё то я совсем запуталась,вот я составила такой код:
    Код (Text):
    <script type="text/javascript">
    var arr = new Array();
    int r = 0;
    while (i = 0; i < 10; i++)
    {
    var tmp = Math.floor(Math.random() * 1001);
    if (arr[tmp] == 0)
    {
    arr[tmp] = r;
    r++;
    }
    document.write(arr[tmp]+"<br />");
    }
    </SCRIPT>
    но чё то ни фига не выводит,я уже соображаю плохо
     
  15. Гость

    подправила,самое элементарное забыла,вот код:
    Код (Text):
    <script type="text/javascript">
    var arr = new Array();
    n = 10;
    for (i = 0; i < n; i++)
    {
    var tmp = Math.floor(Math.random() * 1001);
    arr[i]=tmp;
    document.write(arr[i]+"<br />");
    }
    </SCRIPT>
    всё вышло
     
  16. Гость

    просто мне по условию надо чтобы был использован массив,поэтому пришлось использовать этот "хлам"
     
  17. Гость

    тогда я не пойму,что я не так сделала

    Добавлено: А теперь мне надо указать те, у которых остаток от деления на М равен L,(0<= L<=M-1).
    Возможно мой вопрос покажется очень глупым,но я просто хочу понять,как делить в массиве,как вообще производить какие-нибудь арифметические операции в массиве.
    Заранее благодарю.
    Извините за глупость.
     
  18. Гость

    Код (Text):
    <script type="text/javascript">
    var arr = new Array();
    n = 10;
    M = 5; //согласно дальнейшему условию:указать те,
    L = 3; //у которых остаток от деления на М равен L,(0<= L<=M-1)
    r=0;
    for (i = 0; i < n; i++)
    {
    var tmp = Math.floor(Math.random() * 1001);
    arr[i]=tmp;
    document.write(arr[i]+"<br />");
    k= arr[i]%М; //деление с остатком
    document.write(k+"<br />");
    }
    </SCRIPT>
    дальше я начала делать то что дальше по условию,но у меня почему-то остаток выводит сразу же после каждого числа,почему так?и как теперь указать те элементы,которые равны L (наведите на мысль)
     
  19. Гость

    Код (Text):
    <script type="text/javascript">
    var arr = new Array();
    n = 10;
    M = 5;
    L = 3;
    r=0;
    for (i = 0; i < n; i++)
    {
    var tmp = Math.floor(Math.random() * 1001);
    arr[i]=tmp;
    if (arr[i]%M == L)
    document.write(arr[i]+"<br />");
    }
    </SCRIPT>
    вот так я думаю будет более правильным
     
  20. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    да, нормально, только непонятно, зачем это:
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей