ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Массив

Сообщений 1 страница 3 из 3

1

В языке хорошо бы иметь массивы, даже в максимально плохом языке. В РАЯ (из КуМир) они есть. Строки можно делать поверх массивов. Поэтому хорошо бы вообще в принципе описать, что же такое массив и поглубже, не только с точки зрения его изучения как концепции.

С точки зрения операций и идентичности массивы рассматриваются (слабо) в теории моделей:
1982, Барвайс, Часть 1. Теория моделей

Ассоциативный массив можно реализовать на базе хеш-таблицы (такой путь выбрал автор языка Тривиль, если я правильно запомнил), можно на базе деревьев (АВЛ, красно-чёрного и/или других).

«"Массив" - это структура данных, которая представляет собой упорядоченный набор элементов одного типа.»
[html]<a href="https://ru.wikipedia.org/wiki/Массив_(тип_данных)">https://ru.wikipedia.org/wiki/Массив_(тип_данных)</a>[/html]

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

[html]<a href="https://ru.wikipedia.org/wiki/Ассоциативный_массив">https://ru.wikipedia.org/wiki/Ассоциативный_массив</a>[/html]

Вообще это была плохая идея, назвать разные понятия "массив" и "ассоциативный массив" именно такими словосочетаниями, потому что в разговорном языке второе сочетание сокращается до первого (и может возникнуть путаница). Конечно есть ещё "линейный массив", "двумерный массив", вот как раз они-то и до слова "массив" и сократились раньше, чем это успели сделать ассоциативные массивы. Так или иначе, возникновение непоняток у изучающего гарантировано. А по-другому уже не сделать, иная терминология не приживётся (пример - "миварные технологии", это терминология одного автора, которая не прижилась).

Ассоциативные массивы ещё называют "словарями" - https://foxford.ru/wiki/informatika/slo … y-v-python
Но я не видел в интернете статей на тему "как сделать массив из словаря?"

Ранее по теме:
Кладка

Отредактировано Лис (2023-10-28 04:08:00)

0

2

Лис написал(а):

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

Как обычно много букоф (но это нормально,
главное это чтобы буквы не были лишними или даже бессмысленными).

Или я могу выдумать более свободную трактовку:
Массив - это структура данных переменной длины,
которая представляет собой упорядоченный набор
структур данных переменной длины.
Звучит красиво и рекурсивно,
а значит мы на правильном пути :)

0

3

Попробую объяснить верхнее понятие массива
на практическом применении такого массива.
Допустим, что индекс массива это дата,
то есть количество дней от 1 января 1970 года.

Каждый день у человека
(у того, кто ведёт или пишет этот массив)
происходит целый ряд событий.
Он записывает каждое событие в массив
последовательно по времени начала события.

При этом каждое событие он может записать как массив,
то есть как последовательность событий,
каждое из которых тоже может быть массивом.

Если события своей жизни записывать в текстовом виде,
то массив за любой период времени
будет представлять собой один текстовый файл.
Вложенность каждого элемента массива можно определять
по кол-ву пробелов от левого края до первой буквы строки
.
Содержимое этого файла можно записать в одну строку большой длины.
Или это будет последовательность байтов.

Можно ввести систему категорий.
То есть каждый пункт обзывать каким-то словом из заранее известного списка слов.
Пример:
НАЗВАНИЕ: Лис
ТИП, СУЩЕСТВО: животное, лес
или
НАЗВАНИЕ: Рыжик
ТИП, СУЩЕСТВО: кот
КОТ: млекопитающее, дом
МЛЕКОПИТАЮЩЕЕ: животное, молоко
или
НАЗВАНИЕ: NuShaman
ТИП, СУЩЕСТВО: человек
или
НАЗВАНИЕ: Каравай хлеб ржаной в нарезке
ТИП, ПРОДУКТ ПИТАНИЯ: хлеб
ПРОДУКТ ПИТАНИЯ: кулинария, рот
МАССА: 380 г
ПРОИЗВОДИТЕЛЬ: Каравай
КАЛОРИЙНОСТЬ: 206 ккал
но можно калорийность вычислять по значениям БЖУ.

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

0