Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартные объекты и функции JavaScript, Стандартные объекты и функции JavaScript 
:(
    Опции темы
dawystrik
  Дата 2.3.2010, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



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

Вот я написала приблизительный код:
Код

<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>


Я правильно написала или надо было каким-то другим способом вывести на экран все символы, расположенные внутри этих скобок.
Заранее благодарю.
PM MAIL   Вверх
smartov
Дата 2.3.2010, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



dawystrik, зависит от того, что это - лабораторная работа на применение конкретных функций или для себя/для проекта.
document.write малоприменима в реальном кодинге.

Добавлено через 13 секунд
Модератор: Название темы должно отражать ее суть!
PM MAIL   Вверх
Amphiluke
Дата 2.3.2010, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Код

<HTML>
<HEAD>
<TITLE>Работа со строками</TITLE>
</HEAD>
<BODY>
<script type="text/javascript">
<!--
    var str="Рассказ — малая форма эпической прозы, соотносимая с повестью как более развернутой формой повествования. Восходит к фольклорным жанрам (сказке, притче); как жанр обособился в письменной литературе; часто неотличим от новеллы, а с XVIII в. — и очерка. Иногда новеллу и очерк рассматривают как полярные разновидности рассказа.";
    document.write(str.bold()+"<br>");
    var re = /\((.*)\)/;
    re.exec(str);
    document.write("То,что стоит в скобках:"+"\""+RegExp.$1+"\""+"<br>");

-->
</SCRIPT>
</BODY>
</HTML>

PM   Вверх
dawystrik
Дата 3.3.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 2.3.2010,  22:03)
Код

<HTML>
<HEAD>
<TITLE>Работа со строками</TITLE>
</HEAD>
<BODY>
<script type="text/javascript">
<!--
    var str="Рассказ — малая форма эпической прозы, соотносимая с повестью как более развернутой формой повествования. Восходит к фольклорным жанрам (сказке, притче); как жанр обособился в письменной литературе; часто неотличим от новеллы, а с XVIII в. — и очерка. Иногда новеллу и очерк рассматривают как полярные разновидности рассказа.";
    document.write(str.bold()+"<br>");
    var re = /\((.*)\)/;
    re.exec(str);
    document.write("То,что стоит в скобках:"+"\""+RegExp.$1+"\""+"<br>");

-->
</SCRIPT>
</BODY>
</HTML>

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

Добавлено через 1 минуту и 19 секунд
Цитата(smartov @ 2.3.2010,  22:00)
dawystrik, зависит от того, что это - лабораторная работа на применение конкретных функций или для себя/для проекта.
document.write малоприменима в реальном кодинге.

Добавлено @ 22:00
Модератор: Название темы должно отражать ее суть!

document.write нормально приемлимо,потому что сам препод в примерах его использовал
PM MAIL   Вверх
smartov
Дата 3.3.2010, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



dawystrik, тогда какого ответа вы ждете, если у вас или "все нормально" или "не проходили"?
PM MAIL   Вверх
dawystrik
Дата 3.3.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



а что разве slice это единственный метод на Земле?

Добавлено через 10 минут и 8 секунд
вот я немного исправила на вот это:
Код

<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>


Добавлено через 10 минут и 44 секунды
так верно?
PM MAIL   Вверх
Amphiluke
Дата 3.3.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(dawystrik @  3.3.2010,  15:53 Найти цитируемый пост)
а что разве slice это единственный метод на Земле?

Не единственный, но более универсальный, чем, скажем, substr или substring.

Цитата(dawystrik @  3.3.2010,  15:53 Найти цитируемый пост)
так верно?

пойдет. =)
PM   Вверх
smartov
Дата 3.3.2010, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 1
Всего: 259



Цитата

а что разве slice это единственный метод на Земле?


Значит тема должна была отражать суть, как я и сделал вам замечание.
"Альтернативы slice в Javascript"


Телепаты в отпуске
PM MAIL   Вверх
dawystrik
Дата 3.3.2010, 13:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



спасибо)))

Это сообщение отредактировал(а) dawystrik - 3.3.2010, 13:31
PM MAIL   Вверх
dawystrik
Дата 3.3.2010, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



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

И вот я не могу понять:М и L самой произвольно выбрать (придумать),только что L должно быть меньше M-1 и больше 0,и натуральные числа тоже самой придумать?
Заранее спасибо.
PM MAIL   Вверх
Amphiluke
Дата 3.3.2010, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(dawystrik @  3.3.2010,  17:01 Найти цитируемый пост)
И вот я не могу понять:М и L самой произвольно выбрать (придумать),только что L должно быть меньше M-1 и больше 0,и натуральные числа тоже самой придумать?

Наиболее «приличным» решением было бы предоставить возможность пользователю вводить эти числа. At runtime, так сказать.
PM   Вверх
dawystrik
Дата 3.3.2010, 14:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



В задании написано задавать исходные данные внутри кода как константы
PM MAIL   Вверх
Amphiluke
Дата 3.3.2010, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Тогда вопросов быть не должно: придумывайте эти константы «от себя». Иначе как?

Добавлено через 3 минуты и 18 секунд
Цитата(dawystrik @  3.3.2010,  17:01 Найти цитируемый пост)
Исходные данные получить при помощи датчика случайных чисел

А это к чему относится? К той же задаче? Из вашего сообщения неясно. 
PM   Вверх
dawystrik
Дата 3.3.2010, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



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

Добавлено через 10 минут и 47 секунд
ну вот допустим,я хочу вывести натуральные числа в диапазоне от 0 до 1000
вот какой код вышел:
Код

<script type="text/javascript">
        Math.floor(Math.random() * (1001));
        document.write(Math.floor(Math.random() * (1001))+"<br>");
</SCRIPT>

но он мне выводит только одно число,а я хочу чтобы мне сразу вывело несколько чисел и чтобы они не повторялись.
PM MAIL   Вверх
Amphiluke
Дата 3.3.2010, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Ну ясное дело, что одно число. Нужно загнать эти действия в цикл со счетчиком. А числа (натуральные) хранить в массиве.
PM   Вверх
dawystrik
Дата 3.3.2010, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



спасибки, как я сама не додумалась, а ведь ответ был на поверхности...
PM MAIL   Вверх
dawystrik
Дата 4.3.2010, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



вот так вопрос,вот я создала массив с числами:
Код

<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>

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

Это сообщение отредактировал(а) dawystrik - 4.3.2010, 20:51
PM MAIL   Вверх
Amphiluke
Дата 4.3.2010, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



dawystrik, не извиняйтесь, мы в разделе для новичков.
Код

<script type="text/javascript">
var arr = new Array();
var n = 10;
var M = 20;
var L = 3;
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>

PM   Вверх
dawystrik
Дата 5.3.2010, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



а правильно ли то что я сделала  делает случайные числа уникальными,то есть что они не повторяются или нет?если нет,то где подправить?
Код

for (i = 0; i < n; i++)
{
     var tmp = Math.floor(Math.random() * 1001);
     arr[i]=tmp;
    if (arr[tmp] == 0) 
     {
        arr[tmp] = r;
        r++;
     }
     document.write(arr[i]+"<br />");


Добавлено через 6 минут и 23 секунды
Цитата(Amphiluke @ 4.3.2010,  21:42)
Код

<script type="text/javascript">
var arr = new Array();
var n = 10;
var M = 20;
var L = 3;
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>



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

Это сообщение отредактировал(а) dawystrik - 5.3.2010, 02:10
PM MAIL   Вверх
EmilRegis
Дата 5.3.2010, 06:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



Цитата

Код

for (i = 0; i < n; i++)
{
     var tmp = Math.floor(Math.random() * 1001);
     arr[i]=tmp;
    if (arr[tmp] == 0) 
     {
        arr[tmp] = r;
        r++;
     }
     document.write(arr[i]+"<br />");



неправильно написали...
тут видимо надо так
Код

for (i = 0; i < n; i++)
{
     var tmp = Math.floor(Math.random() * 1001);
     arr[i]=tmp;
    if (arr[i] == 0) 
     {
        arr[i] = r;
        r++;
     }
     document.write(arr[i]+"<br />");

в квадратных скобках у массива указывается номер его элемента..а вы указали случайное число

Добавлено через 6 минут и 1 секунду
Цитата(dawystrik @  5.3.2010,  02:09 Найти цитируемый пост)
а правильно ли то что я сделала  делает случайные числа уникальными,то есть что они не повторяются или нет?если нет,то где подправить?

нет, случайные числа у вас могут повторяться, они не взаимоисключают друг друга...
Чтобы добиться уникальности видимо нужно создать массив , с элементами которого сравнивать  tmp в каждой итерации цикла и при несовпадении добавлять в этот массив tmp...

Добавлено через 9 минут и 4 секунды
хотя может я неправильно понял ваш код и то, чего вы хотели добиться)) что такое r? и почему вы присваиваете элементу массива под случайным номером это r?

Это сообщение отредактировал(а) EmilRegis - 5.3.2010, 06:44
PM MAIL   Вверх
dawystrik
Дата 5.3.2010, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



вот я написала код вместе в проверкой и с выводом:
Код

<script type="text/javascript">
var arr = new Array();
var n = 10, M = 5, L = 3;
var objIs = {};
var flag = null;
for (i = 0; i < n; i++)
{
     flag = false;
     while (!flag) 
     {
         var tmp = Math.floor(Math.random() * 1001);
         if (!(tmp in objIs)) {
             objIs[tmp] = '1';
             flag = true;
         }
     }
     arr[i]=tmp;
     if (arr[i]%M == L)
     document.write(arr[i]+"<br />");
}
document.write('Весь массив:' + arr.join(', ')+"<br />");
</SCRIPT>


но,я хочу поменять местами,чтобы вначала массив выводился весь,а потом числа равные = L,и почему-то не хочет,как это возможно поменять?

Добавлено через 6 минут и 29 секунд
когда пытаюсь поменять абракадабру выводит
PM MAIL   Вверх
Amphiluke
Дата 5.3.2010, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



dawystrik, просто стоит завести дополнительный массив, в который заносить элементы, удовлетворяющие условию задачи. И выводить их так же вне цикла.
Я совсем немного переделал ваш код:
Код

<script type="text/javascript">
    var arr = new Array();
    var n = 10, M = 5, L = 3;
    var objIs = {};
    var targetArr = [];
    for (var i = 0; i < n; i++) {
        while (true) {
            arr[i] = Math.floor(Math.random() * 1001);
            if (!(arr[i] in objIs)) {
                objIs[arr[i]] = '1';
                break;
            }
        }
        if (arr[i] % M == L)
            targetArr.push(arr[i]);
    }
    document.write("Весь массив: " + arr.join(", ") + "<br />");
    document.write("Элементы, удовлетворяющие условию: " + targetArr.join(", "));
</script>

PM   Вверх
dawystrik
Дата 6.3.2010, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



Цитата(Amphiluke @ 5.3.2010,  22:08)
Код


    var targetArr = [];
    
            targetArr.push(arr[i])
   

а что такое этот таргет?я что немного не могу понять
PM MAIL   Вверх
Amphiluke
Дата 6.3.2010, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Цитата(dawystrik @  6.3.2010,  13:31 Найти цитируемый пост)
а что такое этот таргет?

Да просто я так назвал вспомогательный массив, в котором будут храниться только те числа из массива arr, которые удовлетворяют условию задачи.
PM   Вверх
dawystrik
Дата 6.3.2010, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



спасибо,я поняла
PM MAIL   Вверх
dawystrik
Дата 6.3.2010, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



только массив таргет надо объявить:

Код

var targetArr = new Array();

PM MAIL   Вверх
Amphiluke
Дата 6.3.2010, 21:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 39
Всего: 112



Да как душеньке вашей будет угодно. smile 
Запись с помощью литерала
Код

var targetArr = [];

есть альтернативный способ по отношению к вызову конструктора Array(). 
PM   Вверх
dawystrik
Дата 7.3.2010, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



сорри,не знала,я просто делаю так,как мы проходили,я только недавно HTML и JavaScript стала изучать
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0918 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.