<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

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

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

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Массивы в JavaScript

Массивы в JavaScript

Массивы - это тип данных, который может содержать много значений. Другими словами, переменная типа массив - это переменная, содержащая в себе не одно значение (как было раньше), а много значений одновременно.

Общий вид создания массива в JavaScript такой:

var name = new Array(value_1, value_2, ..., value_n);

Таким образом, переменная с именем "name" содержит в себе массив со значениями: value_1, value_2, ..., value_n. Обращаться к массиву надо так:

name[i];

То есть пишется имя массива, а в квадратных скобках указывается порядковый номер массива. Причём, нумерация начинается с нуля. То есть первый элемент имеет индекс 0.

Давайте создадим и выведем второй элемент массива.

var arr = new Array(3, 4, 0, true, "string");
document.write(arr[1]);

Запустив этот скрипт, у нас в окне браузера появится 4. Теперь давайте выведем весь массив в окно браузера:

for (i = 0; i < arr.length; i++)
  document.write(arr[i]);

Для того, чтобы вывести весь массив можно воспользоваться циклом. Здесь мы перебираем переменную i от 0 до длины массива (arr.length - это свойство, которое содержит длину массива arr). Затем мы выводим элемент массива, указав переменную итерации - i.

Давайте теперь мы решим такую задачу: пользователь последовательно вводит 5 чисел, которые мы вводим в массив, а потом выводим его в окно браузера.

var arr = new Array();
for (i = 0; i < 5; i++)
  arr[i] = prompt("Введите " + (i + 1) + "-ое число");
for (i = 0; i < arr.length; i++)
  document.write(arr[i]);

Вначале мы создаём переменную, которая отвечает за массив. Дальше мы в цикле запрашиваем у пользователя по очереди 5 чисел. А потом в цикле выводим полученный массив в браузер.

Эта вся теория по созданию массивов в JavaScript. Теперь я Вам советую закрепить полученный материал и попытаться решить такую задачу: пользователь вводит последовательно 5 чисел, которые затем помещаются в массив. Затем создать функцию, которая принимает в качестве параметра массив и возвращает максимальный элемент в массиве. Выведите максимальный элемент массива, используя созданную Вами функцию.

Удачи!

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (41):

GoTo GoTo 16.04.2012 12:19:48

Михаил, а почему зависает скрипт? <script language = "javascript"> var arr = new Array(3, 4, 0, true, "string"); for (i = 0; arr.length; i++) document.write(arr[i]); </script>

Ответить

Admin Admin 16.04.2012 12:29:28

Цикл неправильный, вот for (i = 0; i < arr.length; i++)

Ответить

GoTo GoTo 16.04.2012 12:49:56

Ну, тогда статью правьте. :-) После слов "Запустив этот скрипт, у нас в окне браузера появится 4. Теперь давайте выведем весь массив в окно браузера:..."

Ответить

Admin Admin 16.04.2012 12:53:05

Уже исправил, спасибо, что заметили!

Ответить

GoTo GoTo 16.04.2012 13:01:57

Михаил, не могу усвоить, когда нужно круглые скобки ( {} ) ставить, а когда нет. Вот здесь, например, нужно? <script language = "javascript"> var arr = new Array(3, 4, 0, true, "string"); for (i = 0; i < arr.length; i++) document.write(arr[i]); document.write("<br>"); document.write(arr[2]); </script>

Ответить

Admin Admin 16.04.2012 13:03:31

Когда больше 1-го оператора внутри цикла (или, например, условия), то обязательно надо ставить фигурные скобки. Если только 1 оператор, то ставить необязательно.

Ответить

GoTo GoTo 16.04.2012 13:14:31

Так правильно? for () { document.write(); document.write(); document.write(); }

Ответить

Admin Admin 16.04.2012 13:16:49

Да, если Вы хотите, чтобы document.write() в каждой итерации выполнялся по 3 раза.

Ответить

star05 star05 18.05.2012 17:11:57

Добрый день! Решил вашу задачу, однако при работе данного скрипта при сравнении двух чисел, если одно из них двузначное - то сравнивается первая цифра этого числа, а не само число. Таким образом при задании ряда 2,7,8,12,9 выдается максимальное число 9, а при ряде 2,3,6,8,91 выдает максимаьлное 91. Вот код (с выводом промежуточных результатов): <script language="javascript" type="text/javascript"> var arr = new Array(); for (i = 0; i < 5; i++) arr[i] = prompt("!Введите " + (i + 1) + "-ое число"); document.write(arr+ " //" + arr.length + "<br />" ); function max(arr) { var max = arr[0]; for (i = 1; i < arr.length; i++){ document.write(arr[i] + " "); document.write(max + " "); if (arr[i] > max) max = arr[i]; document.write(max + "<br />"); } return max; } document.write("<br />"+max(arr)); </script>

Ответить

Admin Admin 18.05.2012 18:09:47

Для этого надо использовать функцию Number(), о которой будет рассказываться в следующих уроках после этого задания, поэтому посмотрите их (как я понял, Вы про курс "Создание и раскрутка сайта от А до Я").

Ответить

fred fred 01.08.2012 17:20:13

Молодец, что решил. Но еще больший молодец, что выложил. Уверен, что найдутся многие, кому это будет интересно. Разумеется, Русакова этим не удивишь. И продвинутые пользователи такие статейки не читают. А для начинающих – такие комментарии большое подспорье. Что не понравилось – на экран выводится всякая хрень. Я взял на себя смелость добавить несколько комментариев, которые наглядно демонстрируют процесс поиска. Вот откомментированный скрипт. <script language="javascript" type="text/javascript"> var arr = new Array(); for (i = 0; i < 5; i++) arr[i] = prompt("Введите " + (i + 1) + "-ое число"); document.write("Создан массив: "+"<strong>"+arr.join(",&nbsp;")+"</strong><br>" ); document.write("<i>Выбираем максимальное значение элемента массива.</i><br><br>"); function max() { var max = arr[0]; //Создается новая переменная, Которой присваиватеся значение первого символа массива. for (i = 1; i < arr.length; i++){ //Цикл выбирает для сравнения последующее число, начиная со второго. document.write("Значение последующего элемента массива - "+ arr[i]+"<br>"); document.write("Сравнение идет с числом - "+max + "<br> "); if (arr[i] > max) max = arr[i]; //Сравнивается предыдущий элемент найденным наибольшим. Полученный максимум вводится в новую переменную document.write( "Для дальнейшего рассмотрения выбирается число "+max + ", как имеющее большую величину.<br><br>"); } return max; } document.write("<br />Максимальное значение элемента в массиве равно - <strong>"+max(arr)+"</strong>"); </script> Только при его запуске нужно учитывать сделанное замечание. Иначе выведется ерунда. Типа, «из двух чисел 9 и 49 выбираем 9, как имеющее большее значение»

Ответить

katushka katushka 02.12.2012 19:52:43

Большой соблазн, посмотреть и скопировать "готовый код", ну вот надо ли это делать.Лучше самостоятельно голову поломать, так что убегаю с данной статьи до тех пор пока сама не разберусь

Ответить

leka leka 25.09.2012 02:01:36

Добрый вечер! Михаил подскажите пож. если надо один массив с введёнными даными хранить, а другой заполнять с клавиатуры , как бы дополнение к первому массиву. Как лучше это представить, что б понятней было привожу код var vopros = new Array(); var otvet = new Array(); alert ('При ответе на вопросы используйте "да" или "нет"'); vopros [0] = "В древнегреческих мифах назывался 'океаном' река обтекающая всю землю?"; vopros [1] = "По мнению древних римлян, экватор уравнивал земной шар?"; vopros [2] = "Является ли люстра достопримичательностью Большого театра, которую прозвали хрустальным облаком?"; vopros [3] = "Придумал для изготовления денег монетный станок Леонардо де Винчи?"; vopros [4] = "Сакэ - это белое сухое вино?"; for (var i=0; i<vopros.length; i++) { var a = prompt (vopros[i], otvet.unshift([i])); if (otvet[i] == "да") { otvet[i] = "верно"; alert ("верно"); } else if (otvet[i] == "нет") { otvet[i] = "не верно"; alert ("не верно"); } } for (var i=0; i<vopros.length; i++) { document.write (vopros[i]+ "\t" + ":" + "\t" +otvet[i]+ "<br />" + "<br />"); } и выходит, что значения второго массива почему то заполняются цифрами

Ответить

Admin Admin 25.09.2012 16:16:34

Вы сами записываете в массив ответов цифры, а потом пытаетесь сравнивать их со строками "да" и "нет". А вот переменная 'a', в которую записывается ответ вообще не используется.

Ответить

leka leka 25.09.2012 21:04:28

спасибо

Ответить

Margo Margo 10.12.2012 00:31:15

а я решила=) сама=) Все корректно работает.Только я немного задание изменила..У меня не конкретно 5 чисел,а столько чисел,сколько ввел ползователь...и из них выбирается максимальное. var mas = new Array(); a = prompt ('vvedite kol elementov v massive'); for (var i = 0; i < a; i++) mas[i] = prompt ('vvedite '+(i+1)+'-ii element'); document.write(' <br/>'); for (var i = 0; i < mas.length; i++) document.write(mas[i]+' '); function poisk(){ for (var i = 0; i < a; i++) { if (mas[i] < mas[i+1]) continue ; else { var k = mas[i]; mas[i] = mas[i+1]; mas[i+1] = k;} } document.write(mas[i]+' '); } document.write(' <br/>'); poisk();

Ответить

Bagi Bagi 03.03.2016 04:07:19

Margo, понимаю, много лет прошло, но если ты еще здесь бываешь, то расшифруй пожалуйста вот эту часть своего кода { var k = mas[i]; mas[i] = mas[i+1]; mas[i+1] = k;} Что то не могу понять зачем здесь переменная "к" и какое действие это условие обрабатывает? Михаил если вы сможете ответить, то был бы рад?

Ответить

neo321654 neo321654 04.06.2013 07:22:46

Сделал с тремя цифрами, знаю что надо делать циклами,т.к. код плохой, но есть ошибка которую не могу понять,вот код <script language = "javascript"> var arr = new Array(); for (i = 0; i < 3; i++) arr[i] = prompt("Введите " + (i + 1) + "-ое число"); function func(a) { if (a[0] > a[1] && a[0] > a[2]) document.write(a[0]) else if (a[1] > a[2])document.write(a[1]); else document.write(a[2]); } func(arr); </script> Если первое число большое, а второе меньше третьего->отображается третье, в чём дело.

Ответить

Admin Admin 04.06.2013 11:14:24

Функцию Number() надо использовать для преобразования строк из prompt в числа. И дальше, если это сразу проблему не решит, вот это: http://myrusakov.ru/javascript-finderror.html

Ответить

bwolf bwolf 19.11.2013 00:47:52

Ответ на задачку: с алертами всё понятно, пример есть в Вашем уроке, далее пользователь ввел данные, работаем с массивом. Считаю этот код гораздо проще предложенных выше из которых я честно говоря мало что понял :) Введенные числа на примере массива MyMass: //5 разных чисел var MyMass=[12,18,22,56,2]; //сортировка чисел по возростанию (Эту строку я подсмотрел в Гугл) MyMass.sort(function(a,b){return a - b}); //Вывод последнего элемента массива с самым большим числом. Отталкивался от длины массива, чтобы в случае чего можно было применить к массивам с большим количеством элементов: document.write(MyMass[MyMass.length -1]);

Ответить

bwolf bwolf 19.11.2013 00:56:07

Либо можно было в строке с сортировкой чисел заменить "а - b" на "b - a", тогда числа сортировались бы в сторону уменьшения и самое большое число в массиве было бы первым, тогда последняя строка кода была бы document.write(MyMass[0])... да так даже проще :)

Ответить

namik21 namik21 31.08.2014 15:59:55

prompt всегда возвращает строковое значение , чтоб значение было числом надо просто перед prompt поставить знак "+" , например var x = + prompt("введите число");//x число......... var x =prompt("введите число");//без "+" x - строка///// кстати Михаил , не могли бы вы сделать так чтоб комменты сортировались по дате последние -сверху , думаю так могло быть лучше

Ответить

vikulya2601994@mail.ru vikulya2601994@mail.ru 26.03.2015 12:18:00

<script language = "javascript"> var arr = new Array (); for (i=0;i<5;i++) arr[i]=prompt("Введите " + (i+1) + "-ое число"); for (i=0;i<arr.lenght;i++) document.write(arr[i]); function maxArray() { var max=0; for (i=0;i<5;i++) if (arr[i]>max) max=arr[i]; document.write (max); } maxArray(); </script>

Ответить

ivanoved ivanoved 27.10.2016 16:37:28

У Викули код прекрасно работает, если поставить + перед prompt, хотя в коде синтаксическая ошибка:в arr.lenght - надо t и h местами поменять. И что странно, если меняешь - то код перестает работать. Почему???

Ответить

Iguar Iguar 23.05.2015 15:02:47

Не понимаю, написал вручную код из последнего примера: var arr = new Array(); for (i = 0; i < 5; i++) arr[i] = prompt("введите " + (i + 1) + "-ое число"); for (i = 0; i < arr.lenght; i++) document.write(arr[i]); -- не выводит на страницу массив. Копирую код с этой страницы -- выводит. Все глаза просмотрел, вроде коды идентичные, так почему ж мой не работает?

Ответить

ivanoved ivanoved 27.10.2016 16:30:39

Iguar,увас набрано: arr.lenght, а надо arr.length

Ответить

int int 18.06.2015 20:13:12

new Array(6).join(' ').match(/\s/gi).map(function(i,v){ document.write(i=prompt()); }); Создает объект и сразу удаляет после выполнения.

Ответить

OMYT OMYT 18.10.2015 16:07:30

Что-то тут ребята всё усложняют слишком с решением задачи. Разве не проще сделать так: var num = new Array(); for (i = 0 ; i < 5 ; i++) { num[i] = prompt("Введите " + (i + 1) + "-ое число"); } function maxNum(array) { return Math.max.apply(null, array); } console.log(maxNum(num));

Ответить

Bagi Bagi 03.03.2016 02:43:48

Рахмет Михаил Русаков за уроки! Три дня убил на то, чтобы выполнить задание, но вроде получилось... Михаил, если в моем коде все правильно, то дай знать, пожалуйста? Правда я вместо 5 элементов в массиве использовал 3. Вот код: <script type="text/javascript"> var arr = new Array(); for (i = 0; i < 3; i++) { arr[i] = +prompt("введите " + (i + 1) + "-ое число"); } function max (arr) { var max = ""; if ((arr[0] > arr[1]) && (arr[0] > arr[2])) {max = arr[0];} else if (arr[1] > arr[2]) {max = arr[1];} else {max = arr[2];} document.write (max); } max (arr); </script>

Ответить

Bagi Bagi 03.03.2016 03:18:54

А вот чтобы при вводе не числовых значений (т.е. любых символов кроме чисел) выводило об этом сообщение, то надо функцию изменить на следующую: function max (arr) { var max = ""; if ((arr[0] > arr[1]) && (arr[0] > arr[2])) {max = arr[0];} else if ((arr[1] > arr[2]) && (arr[1] > arr[0])) {max = arr[1];} else if ((arr[2] > arr[1]) && (arr[2] > arr[0])) {max = arr[2];} else if ((arr[0] == arr[1]) && (arr[0] > arr[2])) {max = arr[0];} else if ((arr[0] == arr[2]) && (arr[0] > arr[1])) {max = arr[0];} else if ((arr[1] == arr[2]) && (arr[1] > arr[0])) {max = arr[1];} else if ((arr[0] == arr[1]) && (arr[1] == arr[2])) {max = arr[0];} else alert ("одно из введенных значений не числовое!"); document.write (max); }

Ответить

Liliya Liliya 15.05.2016 17:34:38

var arr=new Array; for(i=0;i<5;i++){ arr[i]=prompt("Введите число"); } for(i=0;i<arr.length;i++){ document.write(arr[i]); var max=arr.sort(function(a,b){return(a-b)}); document.write(max+"<br>"); } Михаил,не пойму почему вроде бы сортирует,но выдает это 5 раз,что не так?

Ответить

Adja Adja 31.10.2017 18:48:59

ой, как много всякого написано и я потратил где-то мин 30-40! см.ниже

Ответить

cximnik81 cximnik81 14.11.2016 18:57:42

В строках: var arr = new Array(); for (i = 0; i < 5; i++) arr[i] = prompt("Введите " + (i + 1) + "-ое число"); не указана фигурными скобками {} внутренняя часть цикла, но браузер запрашивает цифры от одного до пяти, а не шесть. Когда же я написал тоже самое сам, он запросил именно шесть. Почему так?

Ответить

EvgenDemura EvgenDemura 17.08.2017 12:59:18

Разве массив не в квадратных скобках создается?

Ответить

Gorbunko Gorbunko 17.08.2017 13:12:50

В круглых.

Ответить

EvgenDemura EvgenDemura 17.08.2017 13:16:29

https://learn.javascript.ru/array Синтаксис для создания нового массива – квадратные скобки со списком элементов внутри.

Ответить

Gorbunko Gorbunko 17.08.2017 14:51:45

Классический способ - круглые. Современный способ квадратные. Тут вообще разницы нет. Странные вопросы. http://javascript.ru/basic/array

Ответить

EvgenDemura EvgenDemura 17.08.2017 14:54:41

Вопросы от новичков очень часто странные

Ответить

Gorbunko Gorbunko 17.08.2017 16:45:59

Не знал, что Вы новичок)

Ответить

EvgenDemura EvgenDemura 17.08.2017 17:01:53

Ну, тогда не буду на вас зла держать)))

Ответить

Adja Adja 31.10.2017 18:35:45

<script type="text/javascript"> var arr=[]; for (var i = 0; i < 5; i++) { var z=prompt('Введите число:'); arr[i]=z; } document.write('Вы ввели массив: '+arr); // другое задание: function Assa() { var massiv=[]; // Такой массив, т.к. делается он быстрее, нежели Array() for (var i = 0; i < 5; i++) { var e = prompt('Введите '+i+' число:'); massiv[i] = e; } function max(massiv) { var maximum = 0; for (var i = 0; i < massiv.length; i++) { if(massiv[i]>maximum) { maximum=massiv[i]; } } document.write('Самое большое число, которое Вы ввели - это ' + maximum); } max(massiv); } Assa(); </script> /* вот где-то так) и это правильно? можно удалить подсказку! */

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.