JavaScript. Розв’язування задач на двовимірні масиви

Розв’язування задач на двовимірні масиви


Зміст


Пошук на інших ресурсах:

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, якщо

де i, j = 1, 2, …, 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

 


Споріднені теми