Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
3 / 3 / 1
Регистрация: 14.12.2012
Сообщений: 395

Простая задачка. Подскажите с решением

14.09.2015, 21:48. Показов 2169. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Я только начал изучать JavaScript и пока не могу писать код нормальный. Подскажите пожалуйста.

Была лёгкая задачка. Вывести на экран 1500 кругов, красного цвета.

Мне удалось её решить))) Вот:

for (var i = 0; i < 1500; i++) {
document.write('<div class = "first"></div>');
}

Классу first я дал следующие свойства:

background-color: red;
width: 100px;
height: 100px;
border-radius: 100px;

Теперь задача такая - Вывести 1500 кругов разного цвета, используя функцию Math.random()

Я написал тэг div уже без свойств так: <div style="background: rgb(255, 255, 0);"></div>

Я понимаю что мне нужно использовать переменные и генерировать строки. Как вывести разного цвета? Подскажите пожалуйста.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2015, 21:48
Ответы с готовыми решениями:

Простая задачка с циклами
сабж: Using the JavaScript language, have the function LetterCapitalize(str) take the str parameter being passed and capitalize the first...

Простая задачка на C++
s=sin x + sin x^2 + sin x^3 + sin x^4 + ... + sin x^n - условие, а что как с этим делать я не понимаю, т.к. нам тупо раздали задание и...

не простая задачка
как найти корень квадратного уравнения у минус 2 ПСЧ ?????

33
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.09.2015, 19:27
Студворк — интернет-сервис помощи студентам
kalabuni, а что меня потом-то пилить было?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
15.09.2015, 19:38
Цитата Сообщение от BANO Посмотреть сообщение
а что меня потом-то пилить было?
лучше поздно чем никогда (с)

Цитата Сообщение от Karssen Посмотреть сообщение
Разве with еще используется? Она ж снижает производительность
главное, что эрекцию не снижает, а всё остальное - переживём
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.09.2015, 19:53
Цитата Сообщение от kalabuni Посмотреть сообщение
лучше поздно чем никогда (с)
знаете, мне это нервы потрепало
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
15.09.2015, 20:07
Цитата Сообщение от BANO Посмотреть сообщение
знаете, мне это нервы потрепало
поищите в сети картинки по кейворду "в интернете кто-то неправ.jpg", посмотрите и успокойтесь
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.09.2015, 20:12
kalabuni, я конечно понимаю, что вы получаете от этого удовольствие, я тоже иногда так прикалываюсь, но давайте не со мной
сделайте для меня исключение и не ..ите мне мозг, пожалуйста
0
3 / 3 / 1
Регистрация: 14.12.2012
Сообщений: 395
15.09.2015, 21:54  [ТС]
Так. Ведь наверное есть какие-нибудь пути, чтобы лучше понять js. Теперь мне нужно использовать функции setInterval и setTimeout, чтобы каждый круг появлялся через одну секунду. Я не понимаю как это сделать. То есть в какой последовательности, что писать. Подскажите пожалуйста. И как лучше понимать js?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
15.09.2015, 22:16
Цитата Сообщение от Oklahoma28place Посмотреть сообщение
чтобы каждый круг появлялся через одну секунду
не получится, пользователь заснёт - это же 25 минут ждать
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.09.2015, 22:18
Цитата Сообщение от Oklahoma28place Посмотреть сообщение
И как лучше понимать js?
вот эту фразу вообще не понял

а вот решение:
JavaScript
1
2
3
4
5
6
7
function r(){return Math.random()*256|0}
var a=1500;
function s(){
    document.body.innerHTML+='<div class = "first" style="background: rgb('+[r(),r(),r()]+')"></div>');
    --a&&setTimeout(s,1000);
}
s();
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
15.09.2015, 22:22
Цитата Сообщение от Oklahoma28place Посмотреть сообщение
как лучше понимать js?
хороший вопрос

отвечу встречным вопросом -- "как лучше понимать японский язык?"

---------------

BANO, извините, но опять работать не будет ваш код
ни "сразу", ни "потом"
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
15.09.2015, 22:30
Цитата Сообщение от Oklahoma28place Посмотреть сообщение
И как лучше понимать js?
я кажется понял что вы имели ввиду

есть только 1 способ понимать js - иметь опыт его программирования

хотя это тоже не сильно помогает, вот форматирование - вещь улучшающая чтение x100

Добавлено через 31 секунду
Цитата Сообщение от kalabuni Посмотреть сообщение
опять работать не будет ваш код
ну и почему?

Добавлено через 1 минуту
Цитата Сообщение от kalabuni Посмотреть сообщение
опять работать не будет ваш код
вы имеете ввиду, что body не определён?
тк пусть код стоит в конце документа,
можно в window.onload обернуть, но код рабочий

Добавлено через 1 минуту
блин точно лишняя )
короче чистый код будет выглядеть так
JavaScript
1
2
3
4
5
6
7
function r(){return Math.random()*256|0}
var a=1500;
function s(){
    document.body.innerHTML+='<div class = "first" style="background: rgb('+[r(),r(),r()]+')"></div>';
    --a&&setTimeout(s,1000);
}
s();
0
3 / 3 / 1
Регистрация: 14.12.2012
Сообщений: 395
16.09.2015, 20:08  [ТС]
Спасибо большое. А под пониманием я имел ввиду следующее: Как лучше понять JavaScript? То есть как понять почему именно такая последовательность строк кода и т.д. Я вроде его учу, пытаюсь выполнить что-то, но не понимаю пока почти.
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.09.2015, 20:27
Oklahoma28place, программирование - творческий процесс
я тоже не всё понимаю, но понимание приходит только с опытом работы с js
0
3 / 3 / 1
Регистрация: 14.12.2012
Сообщений: 395
16.09.2015, 21:37  [ТС]
Если не сложно.

Допустим, почему мигает видео при появлении очередного круга?
И почему круги идут, а экран не опускается чтобы я постоянно его не прокручивал?
Зачем объявлять 2 функции?
Я правильно понимаю, что когда я пишу function r(), я определяю функцию r без параметров? И то же самое с функцией s?
А дальше что? Я возвращаю рандомное число в функцию r? Или нет? Возвращаю и оно при помощи | отсекает часть после запятой или при помощи функции Math.ceil это делает. И всё это в {} называется методом?
Вернул число. Потом объявляю переменную a и присваиваю ей значение 1500. Так?
А дальше что делают эти строки?
document.body.innerHTML+='<div class = "first" style="background: rgb('+[r(),r(),r()]+')"></div>';
--a&&setTimeout(s,1000);

document.body просто соответствует тэгу body, а innerHTML просто выводит всё что запрятано в div? А в dive кружок, который при помощи функции r меняет цвет. Или я херню несу?

Почему именно так ('+[r(),r(),r()]+')? Плюсы и скобки. Я понимаю что в квадратных массив.
Что значит --? И какого вообще в конце творится? Типа я говорю браузеру - "Чувак, выведи что в див находится, и выведи пожалуйста круги через секунду каждый". Так чтоль? Только почему там два амперсанда стоят? Они ведь, если я понял возвращают истину, если оба аргумента истина?
С какого в конце декремент? Зачем он?
0
Ренегат
Эксперт HTML/CSS
 Аватар для BANO
1740 / 1085 / 386
Регистрация: 06.08.2014
Сообщений: 5,203
Записей в блоге: 1
16.09.2015, 23:10
Цитата Сообщение от Oklahoma28place Посмотреть сообщение
Или я херню несу?
вот как правильно сказали, ну вот просто невозможно

я так и знал, что вам надо писать код побольше и попонятнее
всё я пошагово объяснять не буду, поскольку часть вы поняли

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
function r(){
    return Math.random()*256|0// тут мы возвращаем рандом умноженый на 256, но 256 никогда не выпадет поэтому мы и не используем Math.ceil, он возвращает нормально округление, а нам в данном случае надо просто откинуть то, что стоит после запятой
}
var a=1500;
function s(){
    document.body.innerHTML+='<div class = "first" style="background: rgb('+ // "+=" прибавляет к левому выражению то что справа от оператора, в данном случае + соединяет строки
           [r(),r(),r()] // если к массиву с помощью + прибавить строку, то массив превратится в строку "elem1, elem2, elem3"
    +')"></div>';
    --a&&// "--" отнимают от переменной a 1, и результат от этого отнимания записывают в переменную, "&&" это знак И он вернёт истину только если и правое выражение и левое вернули истину, в данном случае это упрощённый if, поскольку если в переменной "a" остался нуль, значит мы все круги сгенерированы и нам не нужно ставить таймер на следующий шаг, и он не ставится, поскольку левое выражение вернуло ложь, то смысла продолжать проверку нету и setTimeout не выполнится
        setTimeout(s,1000); // говорим, что через 1000млисекунд надо вызвать фун-ию s
}
s();
Добавлено через 1 минуту
короче этот код можно понять только будучи программистом js, а это ни каждому дано
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2015, 23:10
Помогаю со студенческими работами здесь

Простая задачка
Доброго времени суток! Как закрыть диалоговое окно и сразу же открыть документ на редактирование?? Пытался сделать так: ...

Простая задачка
data Figura = Okr Int | Pryamoygolnik Int Int | Treygolnik Int Int Int plot Figura (Figura (Okr(r))) = r^2 * 3 plot Figura (Figura...

Простая задачка
Нужен код для Dev C++ Найти суму цифр четырёхзначного натурального числа. Буду очень благодарен.

простая задачка
Требуется написать программу, определяющую количество символов до точки. Точка в строке одна.

Простая задачка в СИ++
Найти колл-во цифр больше 9, у натурального числа N.:wall:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru