Решение задач на одномерные массивы
В данной теме приведены примеры решения задач на одномерные массивы на языке 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. Формирование массива
- Двумерные массивы. Массивы в массивах. Трехмерные массивы
- Решение задач на двумерные массивы
⇑