Questions tagged [массивы]

Массив — тип данных в виде набора элементов, расположенных в памяти непосредственно друг за другом. Массив, в отличие от списка, является структурой с произвольным доступом при указании индекса нужного элемента.

Массивы подразделяются на типы, в зависимости от формальных признаков.

По возможности изменения размера массивы могут быть:

  1. Фиксированной длины, задаваемой на этапе создания массива (Java, C, C++, .NET)
  2. Динамическими, т.е. их размер меняется автоматически при добавлении новых элементов (PHP, JavaScript, Perl)
  3. Псевдо-динамическими, когда длину массива менять можно(без пересоздания массива), но делать необходимо самому, используя соответствующие методы (Pascal)

По допустимым значениям индексов:

  1. Индексированные. Массивы, в которых каждый элемент имеет уникальный целочисленный индекс. Индексы массива представляют непрерывную последовательность натуральных чисел, обычно начинающихся с 0 (большинство языков программирования), либо с 1 (Fortran)

  2. Ассоциативные. Массивы, где в качестве индексов(ключей) могут использоваться произвольные значения. Фактически, такие массивы представляют собой структуры, хранящие пары "ключ"/"значение". Из основных языков программирования подобные структуры данных называются массивами только в PHP. В других языках такие структуры также присутствуют, но обычно зазываются иначе: Map в Java, C++, Go; Dictionary в C#, Swift, Delphi; Hash в Ruby и т.д.

По размерности:

  1. Самый простой случай - одномерный. Это обычный массив, содержащий последовательность значений. С математической точки зрения одномерный массив примерно соответствует вектору.
  2. Многомерный. Массив? имеющий два или более индексов. С математической точки зрения двумерный массив примерно соответствует матрице, трехмерный - кубической матрице и т.д.

Обычно используются одномерные и двумерные массивы, реже - трехмерные. Массивы большей размерности используются крайне редко. Самый наглядный пример применения массивов большой размерности - разбор json в массив в PHP, что порождает конструкции вида: $json['list']['singers']['Pink Floyd']['discography']['Dark side of the Moon'][1]['author']

По строгости типизации ключей/значений:

  1. Строго типизированные. Массивы, в которых можно использовать ключи и значения строго заданных(обычно в момент их декларации) типов. Такие массивы используются в большинстве языков программирования.

  2. Нестрого типизированные. Массивы, в которых разные ключи/значения могут быть объектами/скалярами разных типов. Самый яркий пример - PHP, например, $array = [1,'first', new Date(), null, false]

Также существует обходной путь, позволяющий реализовать поведение второго типа в языках, использующих строгую типизацию. Например, в Java можно определить следующую структуру: Map<Object, Object>

8428 questions
2
votes
1 answer

Вывести всех людей в консоль, вывести средний возраст людей и имя человека с самой большой зарплатой в списке

var chislo = prompt('Введите ко-во массивов'); var massive = []; for (let i=0; i < chislo; i++) { massive.push({ date: (new Date(Math.floor(Math.random() * (d2 - d1) + d1))).toDateString(), summ:…
1
vote
2 answers

метод который возвращает true

Помогите решить задачу: написать метод который возвращает true если хоть где-то в массиве идут три числа в порядке возрастания, false если нет public static boolean threeArray(int[] array) { int count = 0; for (int i = 0; i < array.length -…
Qew
  • 17
1
vote
1 answer

Вывести произведение всех чисел массива

double[] mass = new double[5]; mass[0] = 12.4; mass[1] = 10.9; mass[2] = 24.8; mass[3] = 20.1; mass[4] = 31.9; double sum = 1; double x = 1; for(x = 1; x <= mass.length; x++) { sum = sum * x; } System.out.println(sum);
1
vote
0 answers

Вывод данных многомерного массива

Друзья, какой то страшный массив попался с непонятным для меня ["@attributes"], не получается вывести данные из массива в формате: ["date"]["time"]["amount"]["description"] Помогите, пожалуйта. {array(3) { ["@attributes"]=> array(1) { …
1
vote
0 answers

второй массив в другом порядке

import java.util.Scanner; import java.util.Random; public class Ld364rmc641 { public static void main(String[] args) { double A[]=new double[20]; double B; int K,i,n; Scanner sc = new Scanner(System.in); …
Eriks
  • 11
1
vote
1 answer

Как получить количество массива

Как можно получить Count [] то есть после regex сколько получилось массива из этого текста String fileText = "C:\\Oracle\\Middleware\\user_projects\\domains\\base_domain\\test.docx"; String fileString; File file = new…
1
vote
5 answers

Условный оператор в качестве индекса массива

Приведите пример языков программирования (если есть), где можно записать условный оператор в качестве индекса массива. Например: a[1 < 2] = 10; // a[1] -> 10 a[1 > 2] = 10; // a[0] -> 10
LinuxFan
  • 231
  • 2
  • 9
1
vote
1 answer

Как создать массив с отобранными элементами?

for (var i = 0; i < array1.length; i = i + 2) { var Result = new Array(); Result.push(array1[i]); console.log(Result); }; Подскажите, почему…
Solomko
  • 15
1
vote
1 answer

Операции над массивом

В одномерном массиве, состоящем из вещественных элементов, вычислить: Б) сумму элементов массива, расположенных между максимальным и минимальным элементами. В) произведение элементов, значения которых не вошли в интервал. Значения задавать с…
1
vote
0 answers

объединение элементов массива keras timeseriesgenerator multiple output

tf.keras.preprocessing.sequence.TimeseriesGenerator на вход принимает элементы массива series, строки: series = array([[0.30090289, 0.26909887, 0.4839495 , 0.29760977], [0.2772557 , 0.24773788, 0.40919748, 0.30150688], …
1
vote
3 answers

Помогите сформировать массив целых чисел А

Задача следующая: нужно сформировать массив целых чисел A[100] в возрастающем порядке множества М, который определяется такими правилами: 1 принадлежит М. Если х принадлежит М, то числа y=2x+1 и z=3x+1 также принадлежат M. Никакое другое число не…
0
votes
0 answers

Передача двумерного массива в аргумент функции

Изучаю С(не С++ пока) по Шильдту, дошел до указателей, далее пошли массивы. С одномерными массивами вроде все понятно, различия в синтаксисе тоже. Но как пошли двумерные массивы, то начались трудности. У меня вопрос: Как передать двумерный массив…
0
votes
1 answer

Выбрать ближайший элемент в массиве по Timestamp

Пожалуйста, подскажите. Есть массив: var Times = [ {'t':1535453166750,'descr':'Время 1'}, {'t':1535441482000,'descr':'Время 2'}, {'t':1535441482000,'descr':'Время 3'} ]; t = Время, в формате Unix Timestamp. Как можно произвести выборку, чтобы…
Sam
  • 45
0
votes
1 answer

Как сравнить число с каждым элементом массива

Есть массив {15,15,15,16,17,19,19,23}, нужно вывести пропущенные числа (18,20,21,22) Как это сделать? Сломал голову уже)
Qew
  • 17
0
votes
1 answer

Вывод последнего индекса из элементов массива

Вывести порядковый номер последнего из элементов массива А, для которого выполняется неравенство . Всегда выводит 0, в чем ошибка? #include using namespace std; int main() { const int i = 20; double A[i]; int r=0; cout << "Enter array "…
1
2 3