Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.84/64: Рейтинг темы: голосов - 64, средняя оценка - 4.84
63 / 0 / 2
Регистрация: 25.04.2014
Сообщений: 125
1

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

06.07.2015, 12:02. Просмотров 12093. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
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. Вывести на экран исходную и...

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

10
409 / 374 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
06.07.2015, 16:15 2
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/
1
63 / 0 / 2
Регистрация: 25.04.2014
Сообщений: 125
06.07.2015, 21:01  [ТС] 3
спасибо!

сделала так

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
2506 / 1127 / 582
Регистрация: 07.06.2014
Сообщений: 3,278
06.07.2015, 21:43 4
lilubanana, умоляю, скажи, почему ты не взяла ПОЛНОСТЬЮ рабочий код, который тебе дали?!
0
63 / 0 / 2
Регистрация: 25.04.2014
Сообщений: 125
06.07.2015, 21:49  [ТС] 5
Sergio Leone, хочу понять как это делается и сделать это
0
2506 / 1127 / 582
Регистрация: 07.06.2014
Сообщений: 3,278
06.07.2015, 21:54 6
lilubanana, так почему бы не разобрать тот код, что тебе дали?
он не сложный: простой и красивый!

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

мне задание дано для того, что разобраться, понять саму логику выполнения. т.е. надо написать может и не такой красивый код, но зато показывающий мое понимание работы...
0
2506 / 1127 / 582
Регистрация: 07.06.2014
Сообщений: 3,278
06.07.2015, 22:13 8
Цитата Сообщение от 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 код хочешь получить в своём скрипте?
0
409 / 374 / 220
Регистрация: 18.07.2014
Сообщений: 1,259
07.07.2015, 00:59 9
Лучший ответ Сообщение было отмечено 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
2
63 / 0 / 2
Регистрация: 25.04.2014
Сообщений: 125
07.07.2015, 09:47  [ТС] 10
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;
}
0
Модератор
770 / 351 / 142
Регистрация: 17.07.2013
Сообщений: 992
07.07.2015, 10:00 11
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;
}
Доказательства, что работает
2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.07.2015, 10:00

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

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.