Аватар для lilubanana
64 / 1 / 2
Регистрация: 25.04.2014
Сообщений: 125

Создать и вывести на экран матрицу, заполненную случайными числами

06.07.2015, 12:02. Показов 25716. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
Помогите, пожалуйста решить задачу, все данные необходимо вывести в таблицу #matrix

вот все что смогла реализовать

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
var arr = [];
for (var i = 0; i < 9; i++) {
    var matrix = getRandom();
    arr.push(matrix);
    document.write(arr[i] + '<br>');
 
}
 
function getRandom(){
    var min = 0;
    var max = 9;
    return Math.floor(Math.random()*(max-min))+min;
}
Добавлено через 15 минут
Обращаю внимание, это многомерный массив. В массиве содержатся два элемента - подмассивы ,каждый с тремя элементами
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.07.2015, 12:02
Ответы с готовыми решениями:

Создать и вывести на экран матрицу 2 x 3, заполненную случайными числами из [0, 9]
Создать и вывести на экран матрицу 2 x 3, заполненную случайными числами из

Сформировать матрицу n*m, заполненную случайными числами
Сформировать на экране матрицу n*m, заполненную случайными числами(используя функцию rnd).

Транспонировать матрицу 3x3 , заполненную числами в диапазоне -3,5.1,5. Вывести на экран исходную и транспонированную матрицы
Транспонировать матрицу 3 , заполненную числами в диапазоне -3,5..1,5. Вывести на экран исходную и транспонированную матрицы Добавлено...

10
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
06.07.2015, 16:15
lilubanana,

HTML5
1
<table id="matrix"></table>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
(function () {
    var table = document.createDocumentFragment();
    
    var arr = [];
    for (var i = 0; i < 2; i++) {
        var tr = document.createElement('tr');
        arr[i] = [];
        for(var j = 0; j < 3; j++) {
            var td = document.createElement('td');
            td.innerHTML = arr[i][j] = getRandom();
            tr.appendChild(td);
        }
        table.appendChild(tr);
    }
    document.getElementById('matrix').appendChild(table);
 
    function getRandom(){
        var min = 0;
        var max = 9;
        return Math.floor(Math.random()*(max-min))+min;
    }
})();
https://jsfiddle.net/9Lhv65nu/
2
 Аватар для lilubanana
64 / 1 / 2
Регистрация: 25.04.2014
Сообщений: 125
06.07.2015, 21:01  [ТС]
спасибо!

сделала так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var globalArr = [];
var rowArr = 2;
var colArr = 3;
 
for (var i = 0; i < rowArr; i++) {
    var row = [];
    for(var j = 0; j < colArr; j++){
        var random = getRandom();
        row.push(random);
    }
    globalArr.push(row);
}
function getRandom(){
    var min = 0;
    var max = 9;
    return Math.floor(Math.random()*(max-min))+min;
}
теперь все это надо как-то вывести в таблицу

Добавлено через 2 минуты
whiteapps, у вас все так классно получается!
но я пока не могу понять до конца ваши решения((
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.07.2015, 21:43
lilubanana, умоляю, скажи, почему ты не взяла ПОЛНОСТЬЮ рабочий код, который тебе дали?!
0
 Аватар для lilubanana
64 / 1 / 2
Регистрация: 25.04.2014
Сообщений: 125
06.07.2015, 21:49  [ТС]
Sergio Leone, хочу понять как это делается и сделать это
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.07.2015, 21:54
lilubanana, так почему бы не разобрать тот код, что тебе дали?
он не сложный: простой и красивый!

Если тебе в нём что-то непонятно, спроси, тебе расскажут.
я, например, такой код написать не могу, тямы не хватает, но оценить и объяснить - вполне способен!
1
 Аватар для lilubanana
64 / 1 / 2
Регистрация: 25.04.2014
Сообщений: 125
06.07.2015, 22:03  [ТС]
Sergio Leone, вот сижу и разбираю)
вижу что этот код пока слишком крут для меня. тут использованы различные методы, которые упрощают выполнение кода, но они еще мне не знакомы.

мне задание дано для того, что разобраться, понять саму логику выполнения. т.е. надо написать может и не такой красивый код, но зато показывающий мое понимание работы...
0
2511 / 1132 / 582
Регистрация: 07.06.2014
Сообщений: 3,286
06.07.2015, 22:13
Цитата Сообщение от lilubanana Посмотреть сообщение
мне задание дано для того, что разобраться, понять саму логику выполнения. т.е. надо написать может и не такой красивый код, но зато показывающий мое понимание работы...
вот смотри, ты понимаешь, что полученные в массиве случайные числа надо вывести в HTML документ?
Если да, то какой HTML код для вывода своей таблицы ты проектируешь?

вот, например, в случае кода, написанного whiteapps, матрица в HTML коде будет выглядеть так:
HTML5
1
<table id="matrix"><tr><td>5</td><td>0</td><td>2</td></tr><tr><td>2</td><td>6</td><td>1</td></tr></table>
цифры, разумеется случайные и каждый раз будут другие.
но сам HTML код будет такой.

а ты какой HTML код хочешь получить в своём скрипте?
1
 Аватар для whiteapps
414 / 379 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
07.07.2015, 00:59
Лучший ответ Сообщение было отмечено whiteapps как решение

Решение

lilubanana,

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
(function () {
    /* createDocumentFragment создает фрагмент документа, но он не будет сразу же вставлен на страницу
        благодаря этому, мы не будем совершать множество операций, по вставке на страницу строк и ячеек,
        а соберем нужный нам фрагмент, и за один раз вставим все нужные элементы 
        совершить одну вставку  гораздо быстрее и эффективнее, так как при каждом изменение страницы, браузер вынужден перерисовывать ее полностью
    */
    var table = document.createDocumentFragment();
    
    var arr = [];
    for (var i = 0; i < 2; i++) {
       /*на каждой интерации первого цикла создаем строку tr */
        var tr = document.createElement('tr');
 
        arr[i] = [];
        for(var j = 0; j < 3; j++) {
       /*на каждой интерации второго цикла создаем ячейку td */
            var td = document.createElement('td');
 
       /* вносим данные в ячейку */
            td.innerHTML = arr[i][j] = getRandom();
 
       /* готовую ячейку с данными добавляем в строку */
            tr.appendChild(td);
        }
 
       /* когда строка заполнена, добавляем ее в созданный нами фрагмент */
        table.appendChild(tr);
    }
/* когда все данные заполнены, ищем на странице элемент с id=matrix
в нашем случае это таблица
и записываем в нее наш фрагмент */
    document.getElementById('matrix').appendChild(table);
 
    function getRandom(){
        var min = 0;
        var max = 9;
        return Math.floor(Math.random()*(max-min))+min;
    }
})();
используемые методы
https://developer.mozilla.org/... ppendChild
https://developer.mozilla.org/... ateElement
https://developer.mozilla.org/... /innerHTML
https://developer.mozilla.org/... ntFragment
3
 Аватар для lilubanana
64 / 1 / 2
Регистрация: 25.04.2014
Сообщений: 125
07.07.2015, 09:47  [ТС]
Sergio Leone, я вообще думала полностью верстку создать "на лету" в коде, т.е. без внесения разметки в html файл
как-то так:

JavaScript
1
2
3
4
5
6
var table = '<table>';
for (var i = 0; i < rowArr; i++) {
    table += '<tr>';
 
    table += '</tr>';
}

whiteapps, спасибо большое за подробное объяснение

Добавлено через 1 час 17 минут
сделала так

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var rowArr = 2;
var colArr = 3;
 
var table = '<table class="blablabal">';
 
for (var i = 0; i < rowArr; i++) {
    table += '<tr>';
    for(var j = 0; j < colArr; j++){
        table += '<td>' + getRandom() + '</td>';
    }
    table += '</tr>';
}
table += '</table>';
$('body').append(table);
 
 
function getRandom(){
    var min = 0;
    var max = 9;
    return Math.floor(Math.random()*(max-min))+min;
}
1
Модератор
 Аватар для Thisman
771 / 352 / 142
Регистрация: 17.07.2013
Сообщений: 992
07.07.2015, 10:00
lilubanana, JQ ради одной строки подключаете?)

Уже коли есть JQ, то используйте "по полной";

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var rowArr = 2;
var colArr = 3;
 
var table = $('<table class="blablabal">');
 
for (var i = 0; i < rowArr; i++) {
    var tr = $('<tr>');
    for(var j = 0; j < colArr; j++){
        var td = $('<td>').text( getRandom() );
        tr.append(td);
    }
    table.append(tr);
}
 
$('body').append(table);
 
 
function getRandom(){
    var min = 0;
    var max = 9;
    return Math.floor(Math.random()*(max-min))+min;
}
Доказательства, что работает
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.07.2015, 10:00
Помогаю со студенческими работами здесь

Получить матрицу размера n*m, заполненную случайными действительными числами от 0 до 25
Получить матрицу размера n*m, заполненную случайными действительными числами от 0 до 25. Указать элементы с наибольшим значением в...

Заполнить исходную матрицу случайными числами из диапазона от -50 до 50. Вывести матрицу на экран
Заполнить исходную матрицу случайными числами из диапазона от -50 до 50. Вывыести матрицу на экран. Помогите пожалуйста.

Создать и вывести на экран матрицу типа char, заполненную заданными символами
Сформировать двумерный массив A, содержащий символ «*» в соответствии с варианта; размерность массива n задается пользователем

Заполнить матрицу случайными числами и вывести на экран
Составить программу,заполняющую двумерный массив,состоящий из 8 строк и 10 столбцов случайными числами,и выводящую его на экран в форме...

Заполнить матрицу случайными числами и вывести на экран максимальный элемент
Написать матрицу 3х5 заполнить ее датчиком случайных чисел, вывести на экран, а потом вывести на экран максимальный элемент матрицы, а так...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru