Решение задач на двумерные массивы
Содержание
- 1. Создание третьей матрицы на основе двух матриц
- 2. Обработка матрицы, состоящей из строк. Определение количества строк согласно критерию
- 3. Создать матрицу на основе двух других согласно формуле
- 4. Определение содержимого двумерной таблицы согласно условию
- 5. Формирование одномерного массива на основе двумерной матрицы. Определение среднего арифметического столбца матрицы
- Связанные темы
Поиск на других ресурсах:
1. Создание третьей матрицы на основе двух матриц
Условие задачи. Заданы две матрицы чисел A и B. Размерность матриц m×n (m — количество строк, n — количество столбцов). Числа матриц формируются случайно. Сформировать матрицу C в которой каждый элемент определяется по формуле
где i = 1, 2, …, m; j = 1, 2, …, n.
Решение.
// Двумерные массивы. Решение задач. // Создание третьей матрицы на основе двух // 1. Объявление матриц и их создание var A = new Array(), B = new Array() // исходные матрицы var C = [] // результирующая матрица // 2. Ввести размерность матриц m, n var m = prompt("m = ") var n = prompt("n = ") // 3. Выделить память для ячеек матриц // 3.1. Выделить память для m строк матриц A.length = m B.length = m // 3.2. Выделить память для n столбцов в каждой строке for (var i=0; i<A.length; i++) { // Создать массив A[i] и выделить для него память A[i] = new Array() A[i].length = n // Создать массив B[i] и выделить память для него B[i] = new Array() B[i].length = n } // 4. Заполнить матрицы A, B случайными числами в интервале [min; max] var min = -10 // нижняя граница интервала var max = 10 // верхняя граница интервала for (var i=0; i<A.length; i++) for (var j=0; j<A[i].length; j++) { // Размеры массивов одинаковы, поэтому можно формировать сразу два массива A[i][j] = parseInt(min + Math.random()*(max - min + 1)) B[i][j] = parseInt(min + Math.random()*(max - min + 1)) } // 5. Вывести матрицу A для контроля document.write("A:<br>") for (var i=0; i<A.length; i++) { for (var j=0; j<A[i].length; j++) document.write(A[i][j] + " ") document.write("<br>") } document.write("<br>") // 6. Вывести матрицу B для контроля document.write("B:<br>") for (var i=0; i<B.length; i++) { for (var j=0; j<B[i].length; j++) document.write(B[i][j] + "\t") document.write("<br>") } document.write("<br>") // 7. Сформировать результирующую матрицу C // 7.1. Выделить память для матрицы C размером m*n C.length = A.length // количество строк for (var i=0; i<C.length; i++) { C[i] = [] // создать массив C[i] C[i].length = n // задать количество столбцов } // 7.2. Заполнить значениями ячейки матрицы согласно условию задачи for (var i=0; i<C.length; i++) for (var j=0; j<C[i].length; j++) C[i][j] = A[i][j]*A[i][j] + B[i][j] // 8. Вывести результирующую матрицу C document.write("C:<br>") for (var i=0; i<C.length; i++) { for (var j=0; j<C[i].length; j++) document.write(C[i][j] + " ") document.write("<br>") }
Результат
A: -1 5 -8 5 3 5 8 -3 -5 0 -5 10 0 -5 9 B: 9 -4 -9 1 -4 0 2 5 -1 6 1 -4 5 0 8 C: 10 21 55 26 5 25 66 14 24 6 26 96 5 25 89
⇑
2. Обработка матрицы, состоящей из строк. Определение количества строк согласно критерию
Условие задачи. Задана матрица A слов (строк) размером m×n. Определить, сколько строк матрицы имеют длину больше заданного k. Элементы матрицы A и m, n, k вводятся с клавиатуры.
Решение.
// Двумерные массивы. Решение задач. // Определение количества строк матрицы согласно критерию // 1. Объявление матрицы var A = new Array() // 2. Ввести размерность матрицы m*n var m = prompt("m = ") var n = prompt("n = ") // 3. Ввести k var k = prompt("k = ") // 4. Выделить память для матрицы A.length = m for (var i=0; i<m; i++) { A[i] = new Array() A[i].length = n } // 5. Цикл формирования матрицы строк for (var i=0; i<m; i++) for (var j=0; j<n; j++) { A[i][j] = prompt("A[" + i + "][" + j + "] = ") } // 6. Вывести матрицу A для контроля document.write("A:<br>") for (var i=0; i<A.length; i++) { for (var j=0; j<A[i].length; j++) document.write(A[i][j] + " ") document.write("<br>") } document.write("<br><br>") // 7. Цикл вычисления количества строк с длиной не больше k var count = 0 // результат for (var i=0; i<A.length-1; i++) for (var j=0; j<A[i].length; j++) if (A[i][j].length <= k) count++ // 7. Вывести результат document.write("-----------------------------<br>") document.write("count = " + count)
Результат
A: abcd jklmn jprstq 123456 ----------------------------- count = 2
⇑
3. Создать матрицу на основе двух других согласно формуле
Условие задачи. Дано натуральные числа m, n и матрица вещественных чисел Aij, Bij, где i = 1, 2, …, m; j = 1, 2, …, n. Вычислить значение элементов матрицы Cij, если:
Решение.
// Двумерные массивы. Решение задач. // Формирование третьей матрицы исходя из двух заданных // 1. Ввод m, n var m = prompt("m = ") var n = prompt("n = ") // 2. Объявление матриц A, B и заполнение их значениями // 2.1. Создать массивы A, B var A = [] var B = [] // 2.2. Настроить количество строк m A.length = m B.length = m // 2.3. Создать подмассивы и настроить их for (var i=0; i<A.length; i++) { // Создать подмассивы в массивах A, B A[i] = [] A[i].length = n B[i] = [] B[i].length = n } // 2.4. Ввести числа в массивы A, B for (var i=0; i<A.length; i++) for (var j=0; j<A[i].length; j++) A[i][j] = prompt("A["+i+"]["+j+"] = ") for (var i=0; i<B.length; i++) for (var j=0; j<B[i].length; j++) B[i][j] = prompt("B["+i+"]["+j+"] = ") // 3. Вывести массивы A и B document.write("A:<br>") for (var i=0; i<A.length; i++) { for (var j=0; j<A[i].length; j++) document.write(A[i][j]+" ") document.write("<br>") } document.write("<br>") document.write("B:<br>") for (var i=0; i<B.length; i++) { for (var j=0; j<B[i].length; j++) document.write(B[i][j]+" ") document.write("<br>") } document.write("<br>") // 4. Создание матрицы C и установка размеров матрицы var C = [] C.length = m for (var i=0; i<C.length; i++) { C[i] = [] C[i].length = n } // 5. Заполнение матрицы C результирующими значениями согласно формуле for (var i=1; i<=C.length; i++) for (var j=1; j<=C[i-1].length; j++) { if (i<j) C[i-1][j-1] = i*i + j - 5; else if (i==j) C[i-1][j-1] = 1 / ((i+j)*(i+j)*(i+j)); else C[i-1][j-1] = Math.sin(A[i-1][j-1])*Math.sin(B[i-1][j-1]) + Math.cos(B[i-1][j-1]) } // 6. Вывести результат document.write("C:<br>") for (var i=0; i<C.length; i++) { for (var j=0; j<C[i].length; j++) document.write(C[i][j]+" ") document.write("<br>") }
Результат
A: 1 2 3 4 5 6 B: 1 1 1 1 1 1 C: 0.125 -2 -1 -0.09652503516369604 0.015625 2
⇑
4. Определение содержимого двумерной таблицы согласно условию
Условие задачи. Дано натуральное число n. Определить количество положительных и количество отрицательных элементов таблицы A размерностью n×n, если
Решение.
// Двумерные массивы. Решение задач. // Дано натуральное число n. Определить количество положительных // и количество отрицательных элементов таблицы A // 1. Ввод n var n = prompt("n = ") // 2. Объявление таблицы A var A = [] // 3. Настроить размеры таблицы A A.length = n for (var i=0; i<A.length; i++) { A[i] = [] A[i].length = n } // 4. Сформировать таблицу A по формуле for (var i=0; i<A.length; i++) for (var j=0; j<A[i].length; j++) A[i][j] = Math.sin(i*i-j) // 5. Вывести таблицу A для контроля // с точностью 2 знака после запятой document.write("A:<br>") for (var i=0; i<A.length; i++) { for (var j=0; j<A[i].length; j++) document.write(A[i][j].toFixed(2)+" ") document.write("<br>") } document.write("<br>") // 6. Вычислить количество положительных и отрицательных элементов var n1 = 0 // количество положительных var n2 = 0 // количество отрицательных for (var i=0; i<A.length; i++) for (var j=0; j<A.length; j++) { if (A[i][j]<0) n1++ else n2++ } // 7. Вывести результат document.write("n1 = " + n1 + "<br>") document.write("n2 = " + n2 + "<br>")
Результат
A: 0.00 -0.84 -0.91 -0.14 0.84 0.00 -0.84 -0.91 -0.76 0.14 0.91 0.84 0.41 0.99 0.66 -0.28 n1 = 7 n2 = 9
⇑
5. Формирование одномерного массива на основе двумерной матрицы. Определение среднего арифметического столбца матрицы
Условие задачи. Задана матрица Aij, де i=1, 2, …, m, j = 1, 2, …, n. Создать новый одномерный массив Bi размером m, в котором элементы равны среднему арифметическому каждого столбца матрицы A.
Решение.
// Двумерные массивы. Решение задач. // Сформировать массив средних арифметических столбцов заданной матрицы // 1. Ввод m, n var m = prompt("m = ") var n = prompt("n = ") // 2. Объявление матрицы A var A = [] // 3. Настроить размеры матрицы A A.length = m for (var i=0; i<A.length; i++) { A[i] = [] A[i].length = n } // 4. Ввести матрицу A с клавиатуры for (var i=0; i<A.length; i++) for (var j=0; j<A[i].length; j++) A[i][j] = prompt("A["+i+"]["+j+"] = ") // 5. Вывести m, n для контроля document.write("m = " + m + "<br>") document.write("n = " + n + "<br>") // 6. Вывести матрицу A для контроля document.write("A:<br>") for (var i=0; i<A.length; i++) { for (var j=0; j<A[i].length; j++) document.write(A[i][j]+" ") document.write("<br>") } // 7. Создать результирующий массив B и настроить его размеры var B = [] B.length = n // количество столбцов, массив одномерный // 8. Цикл вычисления среднего арифметического и заполнение матрицы B var avg // вспомогательные переменные - среднее арифметическое for (var i=0; i<n; i++) // внешний цикл по столбцах { avg = 0; for (var j=0; j<m; j++) // вычислить сумму столбца i avg += parseFloat(A[j][i]) B[i] = avg / m } // 9. Вывести результат document.write("B:<br>") for (var i=0; i<B.length; i++) document.write(B[i].toFixed(2) + " ") document.write("<br>")
Результат
m = 2 n = 3 A: 1 2 3 4 5 6 B: 2.50 3.50 4.50
⇑
Связанные темы
- Понятие массива. Виды массивов. Создание массивов. Свойство length. Формирование массива
- Двумерные массивы. Массивы в массивах. Трехмерные массивы
- Решение задач на одномерные массивы. Примеры
⇑