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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартные объекты и функции JavaScript, Стандартные объекты и функции JavaScript 
:(
    Опции темы
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   Вверх
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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