22. Структурированные типы данных. Массивы. Операции с массивами. Динамические массивы. Массивы данных


Массив данных - это... Что такое Массив данных?

 Массив данных

Массив данных [array, data file] — или информационный массив — совокупность однородных записей (т.е. наборов данных, характеризующих какой-либо объект управления, про­цесс и т.д.), рассматриваемых как одно целое и упорядоченных таким образом, что их описание (набор индексов) однозначно определяет положение каждого элемента или путь доступа к нему. (Например, картотека материалов в отделе снабжения завода). Простейшее упорядочение данных — их нумерация в виде списка (одно­мерный массив). Но обычно производственные данные представляются в виде таблиц, которые содержат данные двух видов: постоянную часть (заголовок таблицы, названия строк и столбцов) и переменную часть — собственно показатели таблицы (матрицы). Они также могут быть введены в запоминающее устройство и образовать М.д. Запись таблиц осуществляется при этом двумя способами: при первом подряд записываются все элементы матрицы, включая нулевые — их легко находить по порядковому номеру записи. При втором, чтобы сделать запись экономнее, в массив включают только значащие элементы, и каждому из них дают ин­декс, признак его места в таблице (например, номер столбца и номер строки) — это двух­мерное упорядочение массива. Применяется и трехмерное упорядочение.

В последнее время вместо слов «М.д.» чаще употребляют термин файл — от английского слова file (дело, досье).

Экономико-математический словарь: Словарь современной экономической науки. — М.: Дело. Л. И. Лопатников. 2003.

  • Маршрут обработки
  • Массовая приватизация

Смотреть что такое "Массив данных" в других словарях:

  • массив данных — Конструкция данных, компоненты которой идентичны по своим характеристикам и перечисляют как значения функции от фиксированного количества целочисленных аргументов. Примечание Количество аргументов определяет размерность массива. [ГОСТ 20886 85]… …   Справочник технического переводчика

  • Массив Данных — систематизированная совокупность однородных по структуре параметров. Словарь бизнес терминов. Академик.ру. 2001 …   Словарь бизнес-терминов

  • Массив данных — 52. Массив данных Array Конструкция данных, компоненты которой идентичны по своим характеристикам и перечисляют как значения функции от фиксированного количества целочисленных аргументов. Примечание. Количество аргументов определяет размерность… …   Словарь-справочник терминов нормативно-технической документации

  • МАССИВ ДАННЫХ — упорядоченная совокупность однородных по структуре и способу получения показателей …   Большой бухгалтерский словарь

  • МАССИВ ДАННЫХ — упорядоченная совокупность однородных по структуре и способу получения показателей …   Большой экономический словарь

  • массив (данных, программ) — — [Я.Н.Лугинский, М.С.Фези Жилинская, Ю.С.Кабиров. Англо русский словарь по электротехнике и электроэнергетике, Москва] Тематики электротехника, основные понятия EN array …   Справочник технического переводчика

  • массив данных (компьют.) — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN array …   Справочник технического переводчика

  • Базовый массив данных — информация на электронных носителях, организованная в соответствии с требованиями единого языка описания данных и представляющая собой информационную основу банка данных. См. также: Банки данных Финансовый словарь Финам …   Финансовый словарь

  • большой массив данных — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN data bulkmass data …   Справочник технического переводчика

  • непрерывный массив данных — Блоки памяти, считываемые как целое. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN longchunk …   Справочник технического переводчика

Книги

  • Много цифр: Анализ больших данных при помощи Excel, Форман, Джон. Казалось бы, термин «большие данные» понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1266 руб
  • Много цифр. Анализ больших данных при помощи Excel, Форман Джон. Казалось бы, термин «большие данные» понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1117 руб
  • Много цифр. Анализ больших данных при помощи Excel, Джон Форман. Казалось бы, термин "большие данные" понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1112 руб
Другие книги по запросу «Массив данных» >>

economic_mathematics.academic.ru

массивы. Это просто и элегантно :: SYL.ru

В программировании зачастую приходится встречаться с таким типом данных, как массивы. Это наиболее простое решение при выполнении схожих операций с большим количеством однотипных переменных. Если пытаться написать программу, которая будет включать в себя все эти данные и повторяющиеся вычисления, то целесообразнее включить в продукт структуру, называемую массивом, или же матрицей.

Общее понятие о массивах

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

Следует четко понимать, что индекс отнюдь не является содержимым ячейки. Он лишь указывает на те данные, которые содержатся в конкретной ячейке.

Определение такой структуры будет звучать следующим образом: массивы – это группа однотипных данных, имеющая собственное имя и хранящая переменные в последовательных ячейках памяти.

Существует два вида матриц: одномерная (линейная) структура и двумерный массив. Первый тип представлен в виде таблицы, в которой всего одна строка или один столбец. В конкретном случае количество индексов показывает размер матрицы.

Двумерный массив – структура, представленная в виде таблицы, в которой номер строки указывает на первый индекс, а номер столбца – на второй. Так, в матрице А (m,n) элемент массива а23 показывает, что эта переменная находится на второй строке и в третьем столбце. Причем m задает количество строк, а n – число столбцов. Различают квадратную матрицу (где число строк и столбцов одинаково) и прямоугольную.

Массивы в программировании

Мы уже выяснили, что массивы – это набор однотипных элементов. Причем тип данных должен быть одинаковым во всей таблице. В каждой структуре может быть совершенно другой тип данных: числовой, строковый, символьный.

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

  • с использованием имени типа, где первое и последнее значение является ограничителем;
  • с применением ранее объявленных констант.

Задавать структуру также можно несколькими способами. Хотелось бы заметить, что в каждом программном языке имеется свой синтаксис. Но принцип создания матрицы похож. В первом случае конкретный элемент вызывается с помощью имени переменной структуры и индекса, указываемого в квадратных скобках. В другом случае матрицу можно задать путем простого перечисления всех элементов.

Не нужно путать понятия «индекс» и «тип индекса». Первое определение указывается в разделе операторов с целью возможности обозначения конкретного элемента массива. А тип индекса используется только в разделе описания структуры. Размерность массива задается в описании. Крайне нежелательно менять количество элементов в процессе работы над программой.

Заполнять матрицы данными в программировании можно следующими способами:

  • посредством ручного ввода с клавиатуры;
  • с использованием генератора случайных чисел;
  • при объявлении массива как константы;
  • по заданной формуле.

Структуризация массива

Массивы – это структурированный тип данных. Как уже было сказано, матрица (если она двумерная) состоит из конечного числа строк и столбцов; если же она линейная - то из одной строки или одного столбца, где количество элементов также ограничено.

Пересечение строки и столбца называется ячейкой. В ней указываются конкретные переменные. Не допускается наличие различных типов данных в одной таблице. Элементы массива – это переменные с индексами (независимо от того, линейная это структура или двумерная). Индекс – это номер конкретной ячейки. Он указывает на ее положение в таблице.

Операции с массивами: сложение

Итак, массив данных что в математике, что в информатике, – набор переменных. С ним можно проводить различные операции: сложение, вычитание, транспонирование, умножение, деление.

При сложении необходимо учитывать тот факт, что размерность обеих структур должна быть одинаковой. В таком случае, если заданы матрицы А и В с размерностью MxN, то в получившейся С=А+В элементами будут c[i,j]=a[i,j]+b[i,j]. Получается, что переменные складываются поэлементно.

Операции с массивами: вычитание

Этот пункт, пожалуй, следует начать с вынесения знака «минус» из матрицы (ну или, наоборот, внесения). Бывают случаи, когда массив данных состоит из элементов, в большинстве своем отрицательных. В такой ситуации предпочтительнее будет вынести минус за пределы структуры. Для этого перед таблицей ставится отрицательный знак, а у каждого элемента знак меняется на противоположный. Ноль в данном случае соблюдает нейтралитет: у него нет положительного или отрицательного знака.

Вычитание проводится по тому же принципу, что и сложение. Из элемента первой матрицы вычитается переменная с таким же индексом из другой структуры. Ответ записывается в третьей таблице на соответствующей позиции.

Операции с массивами: умножение и деление

Кроме сложения и вычитания массив чисел можно умножать на число, перемножать две структуры между собой, делить одну на другую.

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

  • Количество столбцов первой таблицы равно числу строк второго множителя. В таком случае размерность полученной матрицы будет таковой: число строк будет равняться количеству строчек первого множителя, а количество столбцов будет равняться их числу из второго множителя.
  • Рассмотрим два множителя.
  • Поскольку число столбцов во множителе К равняется количеству строк в массиве Р, тогда проведение операции возможно. Но если поменять матрицы местами, то закон о перемене мест множителей здесь не работает. Поэтому Р х К – неверная запись. Если обе матрицы квадратные, то проведение операции возможно в обоих случаях.

Формула умножения выглядит следующим образом.

Если оба множителя двумерные, тогда следует придерживаться принципа, представленного на иллюстрации ниже.

Деление проводится по следующей формуле.Где нахождение обратной матрицы (инверсия) проводится по следующей формуле.

Транспонирование

Данная операция проводится по следующему принципу: строки становятся столбцами. Выглядит это следующим образом.

www.syl.ru

Массив Данных - это... Что такое Массив Данных?

 Массив Данных систематизированная совокупность однородных по структуре параметров.

Словарь бизнес-терминов. Академик.ру. 2001.

  • Масса-Брутто
  • Масс-Медиа

Смотреть что такое "Массив Данных" в других словарях:

  • массив данных — Конструкция данных, компоненты которой идентичны по своим характеристикам и перечисляют как значения функции от фиксированного количества целочисленных аргументов. Примечание Количество аргументов определяет размерность массива. [ГОСТ 20886 85]… …   Справочник технического переводчика

  • Массив данных — [array, data file] или информационный массив совокупность однородных записей (т.е. наборов данных, характеризующих какой либо объект управления, про­цесс и т.д.), рассматриваемых как одно целое и упорядоченных таким образом, что их описание… …   Экономико-математический словарь

  • Массив данных — 52. Массив данных Array Конструкция данных, компоненты которой идентичны по своим характеристикам и перечисляют как значения функции от фиксированного количества целочисленных аргументов. Примечание. Количество аргументов определяет размерность… …   Словарь-справочник терминов нормативно-технической документации

  • МАССИВ ДАННЫХ — упорядоченная совокупность однородных по структуре и способу получения показателей …   Большой бухгалтерский словарь

  • МАССИВ ДАННЫХ — упорядоченная совокупность однородных по структуре и способу получения показателей …   Большой экономический словарь

  • массив (данных, программ) — — [Я.Н.Лугинский, М.С.Фези Жилинская, Ю.С.Кабиров. Англо русский словарь по электротехнике и электроэнергетике, Москва] Тематики электротехника, основные понятия EN array …   Справочник технического переводчика

  • массив данных (компьют.) — — [http://slovarionline.ru/anglo russkiy slovar neftegazovoy promyishlennosti/] Тематики нефтегазовая промышленность EN array …   Справочник технического переводчика

  • Базовый массив данных — информация на электронных носителях, организованная в соответствии с требованиями единого языка описания данных и представляющая собой информационную основу банка данных. См. также: Банки данных Финансовый словарь Финам …   Финансовый словарь

  • большой массив данных — — [Л.Г.Суменко. Англо русский словарь по информационным технологиям. М.: ГП ЦНИИС, 2003.] Тематики информационные технологии в целом EN data bulkmass data …   Справочник технического переводчика

  • непрерывный массив данных — Блоки памяти, считываемые как целое. [http://www.morepc.ru/dict/] Тематики информационные технологии в целом EN longchunk …   Справочник технического переводчика

Книги

  • Много цифр: Анализ больших данных при помощи Excel, Форман, Джон. Казалось бы, термин «большие данные» понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1266 руб
  • Много цифр. Анализ больших данных при помощи Excel, Форман Джон. Казалось бы, термин «большие данные» понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1117 руб
  • Много цифр. Анализ больших данных при помощи Excel, Джон Форман. Казалось бы, термин "большие данные" понятен и доступен только специалистам. Но автор этой книги доказывает, что анализ данных можно организовать и в простом, понятном, очень эффективном и… Подробнее  Купить за 1112 руб
Другие книги по запросу «Массив Данных» >>

dic.academic.ru

Массивы данных

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

Отдельные величины, образующие массив, называются элементами массива.

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

Количество элементов в массиве называется размером массива. Массивы бывают:

Перед использованием в программе массив должен быть объявлен оператором DIM, который резервирует память.

Dim ИмяМассива (границы) [As тип]

Статические массивы

При объявлении статического массива можно указывать границы (верхнюю и нижнюю).

Пример:

DIM A(10 TO 15) одномерный массив, индексы элементов с 10 до 15

DIM B(12) одномерный массив из 13 элементов (если верхняя граница не указана, то она = 0)

DIM C(3,10) двумерный массив из 4-х строк и 11-ти столбцов

DIM N(5 TO 10, 3 TO 13) двумерный массив из 6-х строк и 11-ти столбцов

Динамические массивы

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

Для создания динамического массива следует:

  • объявить массив без указания размерности массива Dim ИмяМассива ( )

  • c помощью оператора ReDim назначить действительное число элементов массива

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

ReDim Preserve ИмяМассива (границы)

Тип массива менять нельзя.

Если необходимо освободить память, занимаемую динамическим массивом, то можно использовать оператор Erase.

Erase ИмяМассива

Память, занимаемая статическим массивом, не освобождается. Вместо этого Erase присваивает элементам массива «пустые» значения (для числовых массивов – 0, для строковых – пустая строка)

Массивы объектов

В Visual Basic разрешается определять массивы объектов (элементов управления), что весьма удобно, если в программе имеются группы объектов, действующих примерно одинаково. Такие массивы позволяют «привязывать» разные элементы управления к одной процедуре обработки события.

Существует два способа создания массива объектов:

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

  2. установить объект, изменить необходимые свойства, установить следующий объект, присвоив ему такте же имя (Name) как и у первого объекта.

Элементы массива объектов имеют одинаковые имена, различаются по индексу (Index), остальные свойства могут совпадать или отличаться. Для обращения к элементу массива объектов необходимо указать имя объекта и в круглых скобках индекс.

studfiles.net

22. Структурированные типы данных. Массивы. Операции с массивами. Динамические массивы.

Структурированные типы:

- записи;

- множества;

- файлы;

- массивы;

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

Тип-диапазон – это специальная конструкция языка Delphi, помогающая присваивать значения, лежащие в заданном диапазоне.

Объявление массива

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

Имя: array [нижний_индекс. .верхний_индекс] of тип

  • имя — имя массива;

  • array — зарезервированное слово языка Delphi, обозначающее, что объявляемое имя является именем массива;

  • нижний_индекс и верхний_индекс — целые константы, определяющие диапазон изменения индекса элементов массива и, неявно, количество элементов (размер) массива;

  • тип — тип элементов массива.

а:array[0. .2] of integer;

В общем виде объявление двумерного(прямоугольного) массива выглядит так:

Имя: array[НижняяГраница1..ВерхняяГраница1, НижняяГраница2..ВерхняяГраница2] of Тип

n: array [1..12, 1..6] of integer

Список индексных типов – это список одного или нескольких индексов. Если описывается один индексный тип, то массив линейный, если несколько, то многомерный.

При объявлении массива удобно использовать именованные константы. Именованная константа объявляется в разделе объявления констант, который обычно располагают перед разделом объявления переменных. Начинается раздел объявления констант словом const. В инструкции объявления именованной константы указывают имя константы и ее значение, которое отделяется от имени символом «равно». После объявления именованной константы ее можно использовать в программе как обычную числовую или символьную константу.

Пример:

const

c = 18;

team: array[1..c] of string[SN];

Операции с массивами

Типичными операциями при работе с массивами являются:

– вывод массива;

– ввод массива;

– поиск максимального или минимального элемента массива;

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

– сортировка массива.

Вывод массива

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

Ввод (вывод) массива

Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива.

Поиск максимального или минимального элемента массива.

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

Поиск в массиве заданного элемента

При решении многих задач возникает необходимость определить, содержит ли массив определенную информацию или нет. Задачи такого типа называются поиском в массиве. Для организации поиска в массиве могут быть использованы различные алгоритмы. Наиболее простой — это алгоритм простого перебора. Поиск осуществляется последовательным сравнением элементов массива с образцом до тех пор, пока не будет найден элемент, равный образцу, или не будут проверены все элементы. Алгоритм простого перебора применяется, если элементы массива не упорядочены.

Сортировка массива

Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке.

а[3] – обращение к элементу линейного массива.

b[1,7] – обращение к прямоугольному массиву.

Обращение к элементам массива осуществляется указанием идентификаторов массива и в квадратных скобках номеров элемента через запятую.

Динамические массивы.

В них не указываются границы индексов, однако указывается тип элементов. По умолчанию нижней границей индексов считается 0.

d: array of integer;

Для того, чтобы инициализировать количество элементов массива, используется процедура SetLength(A,n).

Параметр А – это название массива, n – это количество элементов. Если мы хотим инициализировать многомерный массив:

d: array of array of real;

Set Length (d,3)

Set Length (d[0],2)

studfiles.net

Массивы и их организация. Типы данных в массиве. Диапазон индекса. Одномерные массивы примеры.

Поиск Лекций

Массив есть упорядоченный набор переменных одинакового типа. Каждая отдельная величина называется компонентой массива. Тип компонент может быть любым, принятым в языке Паскаль, кроме файлового типа. Тип компонент называется базовым типом. Каждая компонента может быть явно обозначена с помощью имени переменной-массива, за которым в квадратных скобках следует индекс. Их тип называется типом индекса. Время, требуемое для доступа любой компоненты, не зависит от значения индекса. Поэтому о массивах можно говорить как об объектах, структура которых допускает случайный (или прямой) доступ.

Переменная массивового типа описывается в разделе описания переменных в следующей форме:

var

<идентификатор>: array[<тип индекса>] of <тип компонент>

Чаще всего в качестве типа индекса употребляется интервальный тип. Например, одномерный массив среднемесячных температур опишется так:

var

T: array[1..12] of real;

Описание массива определяет, во-первых, размещение массива в памяти, во-вторых, правила его дальнейшего употребления в программе. Последовательные элементы массива располагаются в последовательных ячейках памяти (T[1], T[2] и т.д.), причем значения индекса не должны выходить из диапазона 1...12. В качестве индекса может употребляться любое выражение соответствующего типа.

В качестве индекса может быть использовано выражение. Тип индексов может быть только интервальным или перечисляемым. Действительный и целый типы недопустимы. Индексы интервального типа, для которого ба- зовым является целый тип, могут принимать отрицательные, нулевое и положительные значения.

В операторной части программы один массив может быть присвоен другому, если их типы идентичны.

Для ввода или вывода массива в список ввода или вывода помещается переменная с индексом, а операторы ввода или вывода выполняются в цикле.

Размерность массива. Самый простой способ упорядочения –это линейное. Любой элемент массива определяется его номером-индексом элемента. Т.к. индекс в данном случае один, то массивы с таким способом упорядочивания называются одномерными. В двумерных массивах данные располагаются не в одну линию, а в несколько: в таком случае необходимо задавать два индекса: номер строки и номер столбца.

Размер массива то диапазон изменения каждого индекса. Индексы могут быть не только целыми числами, но и величинами любого порядкового типа: символами, величинами перечисляемых чисел.

Одномерные массивы

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

28)

. В математике часто используют многомерные массивы, т.е. массивы массивов. Особенно широкое распространение получили двумерные массивы. Такие массивы условно можно изобразить в виде таблицы. С информацией, представленной в виде таблицы, мы очень часто встречаемся в различных областях знаний — экономике, статистике, математике физике, химии и т.д.

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

Первый индекс — это номер строки, который изменяется только с переходом на следующую строку; второй индекс _ номер столбца. При решении экономических, статистических задач очень часто информация заносится в таблицы, в информатике каждая таблица это тоже двумерный массив.

Про матрицу, имеющую m строк и n столбцов, говорят, что она имеет размер m*n.

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

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

Перемещение по строке:

For i:=l to m do —> внешний цикл, изменяется номер строки

For j:=l to n do —> внутренний цикл, изменяется номер столбца

Перемещение по столбцу:

For j:=l to n do —> внешний цикл, изменяется номер столбца

For i:=l to m do —> внутренний цикл, изменяется номер строки

Создать такой массив не сложнее, чем одномерный. Вот пример:

var

Mas: Array[1..5, 1..5] of Integer;

Здесь создается двухмерный массив, размером в 5 строк и 5 столбцов. Сначала указывается количество строк, после - через запятую - количество столбцов.

Двумерный массив в Паскале трактуется как одномерный массив, тип элементов которого также является массивом (массив массивов). Положение элементов в двумерных массивах Паскаля описывается двумя индексами. Их можно представить в виде прямоугольной таблицы или матрицы.

Рассмотрим двумерный массив Паскаля размерностью 3*3, то есть в ней будет три строки, а в каждой строке по три элемента:

Каждый элемент имеет свой номер, как у одномерных массивов, но сейчас номер уже состоит из двух чисел – номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элементопределяется пересечением строки и столбца. Например, a 21 – это элемент, стоящий во второй строке и в первом столбце.

Для заполнения, обработки и вывода элементов двумерного массива используется структура вложенного цикла с параметром.

poisk-ru.ru

Массив - это... Что такое Массив?

В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете отредактировать эту статью, добавив ссылки на авторитетные источники. Эта отметка установлена 13 августа 2012.

Массив (в некоторых языках программирования также таблица, ряд) — набор однотипных компонентов (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). В отличие от списка, массив является структурой с произвольным доступом[1].

Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива[2][3].

Форма или структура массива — количество размерностей и размер (протяжённость) массива для каждой размерности[4], может быть представлен одномерным массивом[5].

В языке программирования APL массив является основным типом данных (при этом нуль-мерный массив называется скаляром, одномерный — вектором, двумерный — матрицей)[5].

В ряде языков программирования, например, Лисп, JavaScript, PHP, Ruby применяются также ассоциативные массивы (или хэш-массивы), в которых элементы не обязательно являются однотипными, а доступ к ним не обязательно осуществляется по индексу.

Общее описание

Массив — упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

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

Пример статического массива на языке Паскаль {Одномерный массив целых чисел. Нумерация элементов от 1 до 15} a: array [1..15] of Integer; {Двумерный массив символов. Нумерация по столбцам по типу Byte (от 0 до 255) по строкам от 1 до 5} multiArray : array [Byte, 1..5] of Char; {Одномерный массив из строк. Нумерация по типу word (от 0 до 65536)} rangeArray : array [Word] of String; Пример статического массива на С/С++ int Array[10]; // Одномерный массив целых чисел размера 10 // Нумерация элементов от 0 до 9 double Array[12][15]; // Двумерный массив вещественных чисел двойной точности // размера 12 на 15. // Нумерация по столбцам от 0 то 11, по строкам от 0 до 14

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

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

Объявление типа «массив» в языке Паскаль type TArrayType = array [0..9] of Integer; (* Объявления типа "массив" *) var arr1, arr2, arr3: TArrayType; (* Объявление трёх переменных-массивов одного типа *)

Специфические типы массивов

Динамические массивы

Динамическим называется массив, размер которого может меняться во время исполнения программы. Для изменения размера динамического массива язык программирования, поддерживающий такие массивы, должен предоставлять встроенную функцию или оператор. Динамические массивы дают возможность более гибкой работы с данными, так как позволяют не прогнозировать хранимые объёмы данных, а регулировать размер массива в соответствии с реально необходимыми объёмами. Обычные, не динамические массивы называют ещё статическими.

Пример динамического массива на Delphi byteArray : Array of Byte; // Одномерный массив multiArray : Array of Array of string; // Многомерный массив Пример динамического массива на Си float *array1; // Одномерный массив int **array2; // Двумерный массив array1 = (float*) malloc(10 * sizeof(float)); // выделение 10 блоков по sizeof(float) байт каждый array2 = (int**) malloc(16 * sizeof(int*)); // выделение 16 блоков по sizeof(int*) байт каждый. Сюда будут записаны указатели на одномерные массивы-строки for(i = 0; i < 16; i++) array2[i] = (int*) malloc(8 * sizeof(int)); // выделение 8 блоков по sizeof(int) байт каждый. Это одномерные массивы - строки матрицы. // Обращение к массиву array1[i]=5.0; // Записи эквивалентны. Первая с использованием индекса, *(array1+i)=5.0; // вторая с операцией разыменования. array2[i][j]=6; // Записи эквивалентны. Первая с использованием индекса, *(*(array2+i)+j)=6; // вторая с операцией разыменования.

Пример динамического массива на С++

float *array1; // Одномерный массив int **array2; // Многомерный массив array1 = new float[10]; // выделение 10 блоков размером типа float array2 = new int*[16]; // выделение 16 блоков размером типа указателя на int for(int i = 0; i < 16; i++) { array2[i] = new int[8]; }

Гетерогенные массивы

Гетерогенным называется массив, в разные элементы которого могут быть непосредственно записаны значения, относящиеся к различным типам данных. Массив, хранящий указатели на значения различных типов, не является гетерогенным, так как собственно хранящиеся в массиве данные относятся к единственному типу — типу «указатель». Гетерогенные массивы удобны как универсальная структура для хранения наборов данных произвольных типов. Отсутствие их поддержки в языке программирования приводит к необходимости реализации более сложных схем хранения данных. С другой стороны, реализация гетерогенности требует усложнения механизма поддержки массивов в трансляторе языка. Гетерогенный массив как встроенный тип данных присутствует в языках PHP и 1С[источник не указан 33 дня].

Реализация

Одним из способом реализации статических массивов с одним типом элементов является следующий (в Фортране порядок индексов противоположен таковому в Си[4]):

  1. Под массив выделяется непрерывный блок памяти объёмом S*m1*m2*m3…mn, где S — размер одного элемента, а m1…mn — размеры диапазонов индексов (то есть количество значений, которые может принимать соответствующий индекс).
  2. При обращении к элементу массива A[i1, i2, i3, …, in] адрес соответствующего элемента вычисляется как B+S*((…(i1p*m1+i2p)*m2+…+i(n-1)p)*mn-1+inp), где B — база (адрес начала блока памяти массива), ikp — значение k-го индекса, приведённое к целому с нулевым начальным смещением.

Таким образом, адрес элемента с заданным набором индексов вычисляется так, что время доступа ко всем элементам массива одинаково.

Первый элемент массива, в зависимости от языка программирования, может иметь различный индекс. Различают три основных разновидности массивов: с отсчетом от нуля (zero-based), с отсчетом от единицы (one-based) и с отсчетом от специфического значения заданного программистом (n-based). Отсчет индекса элемента массивов с нуля более характерен для низкоуровневых языков программирования, однако этот метод был использован в языках более высокого уровня языком программирования Си.

Более сложные типы массивов — динамические и гетерогенные — реализуются сложнее.

Достоинства

  • лёгкость вычисления адреса элемента по его индексу (поскольку элементы массива располагаются один за другим)
  • одинаковое время доступа ко всем элементам
  • малый размер элементов: они состоят только из информационного поля

Недостатки

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

См. также

Литература

  • Вирт Н. Алгоритмы и структуры данных = Algoritms and data structure. — М.: Мир, 1989. — 360 с. — ISBN 5-03-001045-9
  • Хювёнен Э., Сеппянен Й. Мир Лиспа. Введение в язык ЛИСП и функциональное программирование. В 2-х т. = Lisp-maailma: Johdatus kieleen ja ohjelmointiin / Пер. с финск. — М.: Мир, 1990. — ISBN 5-03-001935-9
  • Магариу Н. А. Язык программирования АПЛ. — М.: «Радио и связь», 1983. — 96 с.
  • Бартеньев О. В. Современный Фортран. — 3-е изд., доп. и перераб.. — М.: ДИАЛОГ-МИФИ, 2000. — 449 с.

Примечания

dic.academic.ru