Розв’язування задач на одновимірні масиви
У даній темі наведено приклади розв’язування задач на одновимірні масиви на мові JavaScript. Тема розкриває базові операції зі створення масиву, виділення пам’яті для масиву, обробки масиву, виведення масиву.
Зміст
- 1. Ввід та обробка введених чисел з клавіатури. Формування масиву. Проведення обчислень
- 2. Реверсування масиву
- 3. Стиснення масиву. Вилучення від’ємних елементів з масиву
- 4. Розділення масиву на 2 частини
- 5. Об’єднання двох масивів
- 6. Сортування масиву рядків методом вставки
- Споріднені теми
Пошук на інших ресурсах:
1. Ввід та обробка введених чисел з клавіатури. Формування масиву. Проведення обчислень
Умова задачі. З клавіатури вводяться числа. Кінець вводу – число 0. Сформувати одновимірний масив введених чисел. Обчислити суму та середнє арифметичне елементів масиву.
Розв’язок.
Для вводу та обробки чисел найкраще підійде цикл do-while.
// Одновимірні масиви. Розв'язок задач. // Задача. З клавіатури вводяться числа. // Сформувати масив введених чисел. // Обчислити суму та середнє арифметичне елементів масиву. // 1. Оголошення пустого масиву var A = [] // 2. Ввід чисел в циклі та формування масиву var num do { num = prompt("num = ") if (num!=0) A += parseFloat(num) // додати число до масиву } while (num!=0); // 3. Вивести введений масив A document.write("A:<br>") for (var i=0; i<A.length; i++) document.write(A[i]+" ") document.write("<br><br>") // 4. Обчислити суму елементів масиву var sum = 0 for (var i=0; i<A.length; i++) sum += parseFloat(A[i]) // 5. Обчислити середнє арифметичне елементів масиву var avg = sum / A.length // 6. Вивести суму та середнє арифметичне document.write("sum = " + sum + "<br>") document.write("avg = " + avg + "<br>")
Результат
A: 8 5 6 4 1 sum = 24 avg = 4.8
⇑
2. Реверсування масиву
Умова задачі. Дано одновимірний масив цілих чисел розмірністю n елементів. Масив вводиться з клавіатури. Сформувати новий масив, в якому елементи розміщуються у зворотньому порядку.
Розв’язок.
// Одновимірні масиви. Розв'язок задач. // Задача. // Сформувати реверсований масив. // 1. Оголошення масивів var A1 = [] // вихідний масив var A2 = [] // результуючий масив // 2. Задати кількість елементів у масиві A1 A1.length = prompt("n = ") // 3. Ввести елементи масиву A1 в циклі for (var i=0; i<A1.length; i++) A1[i] = prompt("A1[" + i + "] = ") // 4. Вивести n і масив A1 document.write("n = " + A1.length + "<br>") document.write("A1:<br>") for (var i=0; i<A1.length; i++) document.write(A1[i]+" ") document.write("<br>") // 4. Сформувати реверсований масив A2 for (var i=A1.length-1; i>=0; i--) A2[A1.length-i-1] = A1[i]; // 5. Вивести масив A2 document.write("A2:<br>") for (var i=0; i<A2.length; i++) document.write(A2[i] + " ") document.write("<br>")
Результат
n = 5 A1: 3 4 1 8 7 A2: 7 8 1 4 3
⇑
3. Стиснення масиву. Вилучення від’ємних елементів з масиву
Умова задачі. Задано масив розмірністю n. Масив вводиться з клавіатури. Реалізувати стиснення масиву, вилучивши з нього всі від’ємні елементи.
Розв’язок. Одним з можливих розв’язків цієї задачі є створення нового масиву, який не містить від’ємні елементи.
// Одновимірні масиви. Розв'язок задач. // Задача. Задано масив розмірністю n. // Стиснути масив, вилучивши з нього всі від'ємні елементи. // 1. Оголошення масивів var A1 = [] // вихідний масив var A2 = [] // результуючий масив // 2. Задати кількість елементів у масиві A1 A1.length = prompt("n = ") // 3. Ввести елементи масиву A1 в циклі for (var i=0; i<A1.length; i++) A1[i] = prompt("A1[" + i + "] = ") // 4. Вивести n і вихідний масив A1 document.write("n = " + A1.length + "<br>") document.write("A1:<br>") for (var i=0; i<A1.length; i++) document.write(A1[i]+" ") document.write("<br>") // 4. Сформувати стиснений масив A2 var j = 0 // поточна кількість елементів в масиві A2 for (var i=0; i<A1.length; i++) if (A1[i]<0) A2[j++] = A1[i] // 5. Вивести масив A2 document.write("A2:<br>") for (var i=0; i<A2.length; i++) document.write(A2[i] + " ") document.write("<br>")
Результат
n = 8 A1: 1 -2 3 -4 5 -6 7 -8 A2: -2 -4 -6 -8
⇑
4. Розділення масиву на 2 частини
Умова задачі. Дано одновимірний масив завдовжки n. Розділити його на дві частини так, щоб в одній частині були додатні елементи, а в іншій частині були від’ємні елементи.
Розв’язок.
// Одновимірні масиви. Розв'язок задач. // Розділення масиву на частини // 1. Оголошення масивів var A = [] // вихідний масив var B = [], C = new Array() // результуючі масиви // 2. Задати кількість елементів у масиві A A.length = prompt("n = ") // 3. Ввести елементи масиву A в циклі for (var i=0; i<A.length; i++) A[i] = prompt("A[" + i + "] = ") // 4. Вивести n і вихідний масив A1 document.write("n = " + A.length + "<br>") document.write("A:<br>") for (var i=0; i<A.length; i++) document.write(A[i]+" ") document.write("<br>") // 4. Сформувати масиви B, C, // масив B - додатні елементи, масив C - від'ємні елементи. var nb = 0 // поточна кількість елементів у масиві B var nc = 0 // поточна кількість елементів у масиві C for (var i=0; i<A.length; i++) if (A[i]>=0) B[nb++] = A[i]; else C[nc++] = A[i]; // 5. Вивести масив B document.write("B:<br>") for (var i=0; i<B.length; i++) document.write(B[i] + " ") document.write("<br>") // 6. Вивести масив C document.write("C:<br>") for (var i=0; i<C.length; i++) document.write(C[i] + " ") document.write("<br>")
Результат
n = 9 A: -1 2 -3 4 -5 6 -7 8 -9 B: 2 4 6 8 C: -1 -3 -5 -7 -9
⇑
5. Об’єднання двох масивів
Умова задачі. Задано два одновимірних масиви A1 та A2, елементи яких є випадкові цілі числа в інтервалі [-10; +10]. Об’єднати ці два масиви у третій масив, в який спочатку ввійдуть елементи першого масиву, а потім другого, зберігаючи свою першопочаткову послідовність.
Розв’язок.
// Одновимірні масиви. Розв'язок задач. // Об'єднання масивів B = A1 + A2 // 1. Оголошення масивів та їх ініціалізація випадковими значеннями var A1 = new Array(), A2 = new Array() // вихідні масиви var B = [] // результуючий масив // 2. Задати кількість елементів у масиві A1 A1.length = prompt("A1.length = ") // 3. Задати кількість елементів у масиві A2 A2.length = prompt("A2.length = ") // 4. Заповнити масиви A1, A2 випадковими числами в інтервалі [-10; 10] for (var i=0; i<A1.length; i++) A1[i] = parseInt(-10 + Math.random()*(10-(-10)+1)) for (var i=0; i<A2.length; i++) A2[i] = parseInt(-10 + Math.random()*(10-(-10)+1)) // 5. Вивести масив A1 для контролю document.write("A1:<br>") for (var i=0; i<A1.length; i++) document.write(A1[i] + "\t") document.write("<br><br>") // 6. Вивести масив A2 для контролю document.write("A2:<br>") for (var i=0; i<A2.length; i++) document.write(A2[i] + "\t") document.write("<br><br>") // 7. Сформувати результуючий масив B // Сформувати довжину масиву B B.length = A1.length + A2.length // Записати елементи масиву A1 for (var i=0; i<A1.length; i++) B[i] = A1[i] // Записати елементи масиву A2 for (var i=0; i<A2.length; i++) B[A1.length + i] = parseInt(A2[i]) // 8. Вивести масив B document.write("B:<br>") for (var i=0; i<B.length; i++) document.write(B[i] + " ") document.write("<br>")
Для заданих n1 = 9, n2 = 7 програма видала наступний результат
A1: 0 -9 3 4 -6 6 1 -9 5 A2: -3 -6 10 -3 -1 6 6 B: 0 -9 3 4 -6 6 1 -9 5 -3 -6 10 -3 -1 6 6
⇑
6. Сортування масиву рядків методом вставки
Умова задачі. Задано масив рядків розмірністю n. Посортувати елементи масиву у зростаючому порядку (“a”, “b”, “cd”, …).
Розв’язок.
// Одновимірні масиви. Розв'язок задач. // Сортування масиву рядків методом вставки. // 1. Оголошення масиву рядків var A = new Array() // 2. Ввести розмірність масиву n var n = prompt("n = ") // 3. Виділити пам'ять для масиву рядків A.length = n // 4. Цикл формування масиву рядків for (var i=0; i<n; i++) { A[i] = prompt("A[" + i + "] = ") } // 5. Вивести масив A для контролю document.write("A:<br>") for (var i=0; i<A.length; i++) document.write(A[i] + "<br>") document.write("<br><br>") // 6. Цикл сортування методом вставки for (var i=0; i<A.length-1; i++) for (var j=i; j>=0; j--) if (A[j]>A[j+1]) { // обміняти місцями var t = A[j] A[j] = A[j+1] A[j+1] = t } // 7. Вивести посортований масив A document.write("-----------------------------<br>") for (var i=0; i<A.length; i++) document.write(A[i]+"<br>") document.write("<br>")
Результат
A: kd fcw aet tqw ew abcd wer oiww xlsdk ----------------------------- abcd aet fcw kd oiww tqw ew wer xlsdk
⇑
Споріднені теми
- Одновимірні масиви. Створення масиву. Властивість length. Формування масиву
- Двовимірні масиви. Масиви в масивах. Тривимірні масиви
- Розв’язування задач на двовимірні масиви
⇑