Для чего необходимо описание массива кратко

Обновлено: 02.07.2024

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

Глоссарий по теме: массив, элемент массива, размерность массива, индекс элемента массива, сортировка.

Основная литература по теме урока:

Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2017

Дополнительная литература по теме урока:

- И. Г. Семакин, Т. Ю. Шеина, Л. В. Шестакова. Информатика и ИКТ. Профильный уровень: учебник для 11 класса. — М.: БИНОМ. Лаборатория знаний, 2012

- К. Ю. Поляков, Е. А. Еремин. Информатика. Углубленный уровень: учебник для 10 класса. В 2 ч. Ч. 2 — М.: БИНОМ. Лаборатория знаний, 2013

- Андреева Е. В. Программирование — это так просто, программирование — это так сложно. Современный учебник программирования. — М.: МЦНМО, 2015

Теоретический материал для самостоятельного изучения

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

Для решения этой достаточно простой задачи мы будем вынуждены ввести 20 имен переменных, что, естественно, очень неудобно. Но ведь чисел может быть гораздо больше, чем 20!

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

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

Элемент массива — отдельная переменная, входящая в массив.

Индекс элемента массива — номер элемента в этом массиве.

Размерность массива — количество элементов, которое содержит массив.

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

Описание массивов

В языке Паскаль массивы описываются в блоке описания переменных следующим образом:

var : array [ ] of

- — описание индексации (нумерации) элементов массива. В качестве типа индекса можно использовать любые порядковые типы;

- — тип величин, непосредственно составляющих массив.

Приведем несколько примеров описаний:

  1. varday: array [1..365] of integer; — массив, состоящий из 365 целых чисел, которые пронумерованы от 1 до 365;
  2. vartem: array [0..11] of real; — массив, состоящий из 12 вещественных, пронумерованных от 0 до 11;
  3. var ocenka: array [–2..2] of char; — массив, состоящий из 5 символьных переменных с номерами от -2 до 2:
  4. const n=10; var slovo: array [1..n] of string; — n строковых величин, пронумерованных от 1 до n;

Для того, чтобы обратиться к элементу массива, нужно записать имя массива и в квадратных скобках индекс нужного элемента, например, day[100].

Рассмотрим основные приемы работы с массивами.

Заполнение одномерного массива значениями

Задать элементам массива значения мы можем:

— вводя значения с клавиатуры;

— случайным образом из некоторого диапазона;

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

Для начала договоримся, что мы имеем дело с массивом из 10 натуральных чисел (хотя тип элементов в данном случае значения не имеет).

Вывод элементов массива на экран

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

Воспользуемся вторым и третьим способами, рассмотренными выше:


Теперь перейдем к задачам обработки массивов.

Вычисление суммы элементов массива

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


Следующая группа задач очень часто встречается нам в реальной жизни. Это задача поиска в массиве. Например, поиск нужного слова в словаре, поиск времени отправления нужного поезда в расписании и т. д.

В программировании поиск — одна из наиболее часто встречающихся задач вычислительного характера.

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

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

Поиск в массиве элемента, удовлетворяющего некоторому условию

Например, требуется найти в массиве элемент, значение которого равно значению переменной p, или сообщить, что такого элемента в массиве нет.

Мы построим алгоритм, идея которого следующая:


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

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

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

Введем дополнительную переменную max, которой присвоим значение, равное значению элемента массива a[1]. Теперь будем сравнивать все элементы, начиная со 2-го, с max, и если найдем больший элемент, то присвоим его значение переменной max. Конечное значение этой переменной и будет значением наибольшего элемента массива.


Поиск максимального (минимального) среди всех элементов массива, удовлетворяющих некоторому условию

Допустим, нужно найти наибольшее среди всех четных чисел, входящих в массив произвольных натуральных чисел.

Прием, которым мы воспользовались в задаче 5, здесь может привести к ошибке. Например, на первом месте в массиве будет стоять НЕЧЕТНОЕ число, которое окажется больше всех четных. Здесь переменной max лучше присвоить начальное значение, заведомо меньшее всех элементов массива. Например, если наш массив составлен из натуральных чисел, то присвоить max значение -2. Если после окончания программы значение max останется таким же, это будет означать, что в массиве нет четных чисел. Если же они будут, max изменит значение.

Сдвиг элементов массива

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

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


Удалим из него элемент с индексом i=4, т. е. a[1]=a[1], a[2]=a[2], a[3]=a[3], a[4]=a[5], a[5]=a[6], a[6]=a[7]. А вот для последнего элемента a[7] новое значение взять неоткуда. Он сохранит свое значение. Получим:


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

Программа удаления элемента из массива на языке Паскаль может выглядеть следующим образом:


Сложнее обстоит дело со вставкой элемента внутрь массива. Как мы сказали, при вставке все элементы, расположенные справа от места вставки, сдвигаются вправо. Последнему же элементу сдвигаться некуда, и он пропадет. Чтобы этого не произошло, нужно увеличить размерность массива на 1. Но учесть это надо при описании массива. Второй важный момент заключается в том, что сдвиг значений мы будем производить справа налево до заявленной позиции вставки:


Реверс массива

Реверс массива — это перестановка его элементов в обратном порядке: первый элемент становится последним, а последний — первым.


Из примера видно, что местами меняются 1-й элемент с N-м, второй — с (N–1)-м и т. д. Замечаем, что сумма индексов элементов, участвующих в обмене, равна N+1, поэтому элемент с номером i должен меняться местами с (N+1–i)-м элементом.

Теперь разберемся с организацией цикла. Если мы организуем цикл по всем элементам, то получим:


Все вернулось в исходное состояние, потому что реверс выполнился дважды. Чтобы этого не произошло, нужно остановить процесс обмена на середине массива, т.е. на элементе с индексом (N div 2).


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

Сортировка — один из наиболее распространенных процессов обработки данных.

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

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

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

Существует много различных алгоритмов сортировки. Мы рассмотрим некоторые из них на примере сортировки массива целых чисел в порядке неубывания (a[i] 2 , где n — число элементов в массиве.

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

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

Массивы могут быть числовыми и символьными, а также одно– и многомерными.

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

Трехмерный массив – это стопка матриц одного размера. Значение каждого элемента такого массива определяется номерами (индексами) страницы в стопке, а также строки и столбца на этой странице. Необходимо иметь в виду, что в языке PASCAL индексы могут выражаться константами, переменными и арифметическими выражениями. Таким образом размерность массива выражается количеством индексов, которое необходимо указать для определения каждого элемента этого массива:

для одномерного массива один индекс, например:

для двумерного два индекса, например:

для трехмерного три индекса, например:

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

Все элементы массивов в программах используются со своими индексами, которые записываются после имени массива в квадратных скобках и (если их несколько) разделяются запятыми:

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

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

Описание может осуществляться двумя способами: как в разделе типов (Type), так и в разделе переменных (Var).

Например, массив Х, состоящий из 20 вещественных чисел с индексами от 1 до 20; может быть описан так:

Type X=array[1..20] of real;

Var X: real;

Var X:array[1..20] of real;

Общий вид описания в разделе var:

A: array[T12. Tк] of тип;

где А– имя массива; Т12. Тk – типы индексов; тип – это тип элементов массива. Служебные слова array. of real можно перевести как “массив из вещественных чисел”. Аналогично определяются массивы из других чисел, символов и т.п.

Например, массив фамилий студентов академгруппы из 25 человек может быть описан так:

Var Fam: array[1..25] of string[20];

В этом описании запись string[20]; означает, что массив состоит из строковых данных, длинной не более 20 символов (букв) каждое.

Рассмотрим еще один пример: пусть в программе необходимо работать с матрицей М из целых чисел:

В данном случае элементы массива имеют тип integer. Массив двумерный; первый индекс–номер строки изменяется в пределах от 1 до 3; второй индекс–номер столбца изменяется от 1 до 4. Описание этого массива выглядит так:

м: array[1..3,1..4] of integer;

Задав конкретные значения индексов, можно выбрать определенный элемент этого массива. Например, оператор n:=m[2,3] присвоит величине n значение, стоящее на пересечении 2–й строки и 3–го столбца, т.е. число 42. Аналогично, оператор

выполнит сложение чисел 10+19.

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

Например, фрагмент программы:

Type mas=array[1..100] of real;

Var x,y,z: mas;

Описывает три одномерных массива вещественных чисел с количеством элементов до 100 шт. в каждом с именами х, y, z. Описание же этих массивов в разделе Var потребуют три строки:

Var x: array[1..100] of real;

y: array[1..100] of real;

z: array[1..100] of real;

Наконец, необходимо иметь в виду, что в описаниях массивов диапазон изменения индексов может быть большим, чем тот, что реально будет использоваться в программе. Так каждый из описанных выше массивов х, y, z в программе может состоять из любого числа элементов от 1 до 100, но не один не может иметь более 100 элементов.

Далее в данном пособии рассматриваются задачи, связанные с обработкой одно– и двумерных числовых массивов.

ВВОД И ВЫВОД МАССИВОВ

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

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

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

Пример 1.2. Ввести массив целых чисел l (к=1,2. 10) с одновременным выводом их для проверки.

program Vvod 1;

Var l: array[1..10] of integer;

Begin

writeln ('Массив исходных данных')

for k:=1 to 10 do

Begin

read (l[k]); write (l[k]);

end;

Пример 2.2. Ввести матрицу R(3,4)

Обозначим i – номер строки матрицы, j – номер столбца. Тогда общий элемент матрицы обозначится ri,j. При вводе элементов матрицы с клавиатуры по строкам необходимо после прочтения последнего элемента строки переходить к новой строке. Для этого удобно использовать комбинацию операторов read и readln.

program Vvod 2;

Var r:array[1..3,1..4] of real;

Begin

for i=1 to 3 do

Begin

for j=1 to 3 do read(r[i,j]);

end;

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

Begin

for j:=1 to 4 do

Begin

for i=1 to 2 do read(r(i,j));

end;

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

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

Пример 2.3. Ввести одномерный массив Vec: 8.2 4.9 9.7 6.3 3.1,

а также матрицу Маt

В данном случае ввод может быть выполнен в разделе описания констант:

program Vvod 3;

Const Vec: array[1. 5] of real=(8.2,4.9,9.7,6.3,3.1);

Mat: array[1..3,1..4] of integеr=((10,20,30,40),

Begin

В дальнейшем в программе обращения к элементам описанных массивов будут обычными: Vес[i], Mat[i,j] и т.п. Общее правило использования констант типа массив таково: после описания массива и знака = числовые значения его элементов записываются в скобках через запятую, для двумерных массивов элементы каждой строки записываются в отдельных скобках.

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

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

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

Пример 2.4. Записать в текущий каталог, в файл с именем fd (файл данных) массив y состоящий из 50 вещественных чисел:

Var fd: file of real;

y: array[1..50] of real;

Begin

for k:=1 to 50 do writeln(fd,y[k]);

End.

По этой программе при наборе на клавиатуре каждого очередного числа y оно будет записываться под соответствующим номером в файл с именем fd. В этом фрагменте переменными(зависящими от выбора программиста) являются: имя файла – fd, имя массива – y; число элементов в нем –50, обозначение индекса – к, и место нахождения формируемого файла – запись 'fd' в операторе аssign. Все остальные записи являются стандартными. Поясним кратко смысл основных из них.

Запись fd: file оf real; объявляет переменную fd файлом, состоящим из вещественных чисел.

Оператор assign связывает файл, программное имя которого fd,с местом его расположение и именем, под которым он записывается на этом месте. В приведенном примере assign(fd,'fd') означает, что файл с именем fd записывается под тем же именем в текущий каталог. Оператор assign в данном случае мог бы выглядеть и так, например:

Это означало бы, что имя файла в программе fd, а его имя в текущем каталоге masdat. Если же, мы хотим записать этот файл в корневой каталог диска а: под именем, скажем, fajl.dat, то оператор assign следует представить в виде:

Иными словами в апострофах оператора assign записывается путь к месту нахождения формируемого файла и его имя на этом месте. Оператор rewrite (fd); открывает файл для записи, оператор close (fd) закрывает его.

При необходимости вызова в программу массива, записанного в виде файла, выполняется аналогичная по смыслу группа операторов.

Пример 2.5. Ввести массив а из 150 целых чисел, записанный файлом в каталоге DANNYE на диске A:, под именем mas.dat.

program Vvod_5;

Var f: file of integer;

a: array[1..150] of integer;

Begin

for n:=1 to 150 do read (f,a[n]);

Здесь f – программное имя файла (разумеется произвольное); оператор Reset(f) открывает этот файл для чтения, все остальные операторы рассмотрены выше.

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

В предыдущем уроке мы ввели понятие структурированных данных.

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

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

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

Когда возникает необходимость использовать массивы?

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

Мы будем вынуждены ввести 30 имен переменных, что, естественно, очень неудобно. Как быть?

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

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

Определим еще несколько понятий, связанных с массивами.

Элемент массива — отдельная переменная, входящая в массив.

Размерность массива — количество индексов, по которым определяется положение элемента в массиве.

Индексы элемента массива — совокупность номеров, определяющих его местоположение в массиве.

Чтобы лучше понять, что такое размерность массива, сравним их с таблицами.

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

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

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

Переходим к изучению массивов.

Описание массива

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

При описании массива используется зарезервированное слово array (массив), указываются диапазон изменения для индексов и тип компонентов массива.

Способ 1. Описание массива с определением типа.

Способ 2. Описание массива без определения типа.

Двумерный массив описывается так же, как и одномерный. Различие состоит в том, что вы должны указать диапазон для двух индексов массива — положение каждого элемента массива A[i, j] определяется номером строки и номером столбца.

Например, описание двумерного массива натуральных чисел размера N x М может быть задано следующей строкой:

Вернемся к нашей задаче. У нас 30 целых чисел, выделим для них 30 ячеек, объединим их общим именем А.

A Имя А — это общее имя для всех элементов. Элементы массива — это числа, их 30
1 25
2 64
3 27
29 53
30 89

Опишем одномерный массив из 30 целых чисел для этой задачи следующим образом:

myarray — это имя нового типа;

[1..30] — в квадратных скобках указывается номер первого элемента, затем, после двух точек, номер последнего элемента массива, в этом примере первый элемент имеет номер 1, а последний — номер 30;

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

Так как каждый элемент имеет свой номер, то к каждому элементу можно обращаться непосредственно. Для того чтобы получить доступ к i-му элементу этого массива, необходимо записать: A[i] — сначала имя массива, а в квадратных скобках указывается номер элемента, к которому обращаемся, — i.

Например, обращаемся к первому элементу массива А — А[1], а к пятому — А[5].

Тот же самый массив может быть задан и при определении соответствующей переменной:

Особенность языка Паскаль

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

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

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

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

Описание массива в Паскале

Что такое массив? Это ячейки памяти с однотипными данными, расположенные последовательно.

Что такое массив

Каждая ячейка имеет номер, т. е. индекс, но все они находятся под общим названием переменной. Индекс ячейки указывает на ее компоненты, которые там находятся.

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

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

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

А[1..10] – массив с именем А и размером 10;

ST[1..R], R = 7 – массив с именем ST, состоящий из 7 элементов.

Прежде чем использовать массив, его нужно описать.

Описание массива

Вот примерная схема:

var : array [ макс_знач_индекса>] of ;

Например: var a: array [1 .. 10] of integer.

Вместо того, чтобы объявлять отдельные переменные, такие как N o 1, N o 2, . и N o 100, вы задаете только одну переменную. Определенный компонент в хранилище доступен по индексу.

Самый низкий адрес имеет первый компонент, а самый высокий адрес – последний.

Количество компонентов может быть разным.


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

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

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

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

Пример ввода одномерного массива в Паскале:

Ввод одномерного массива в Паскаль


Двумерные и многомерные массивы

Размерность массивом может быть разной.

Двумерные хранилища и многомерные – это наборы, в которых хранятся переменные во втором или n-м измерении, имеющие n * m мест хранения.

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

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

Пример двумерного массива

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

В Паскале эта декларация записывается как единый блок:

TYPE DayType = INTEGER;

DayNames = (Sun, Mon, Tue, Wed, Thu, Fri, Sat);

WeekType = ARRAY [DayNames] OF DayType;

MonthType = ARRAY [1..6] OF WeekType;

Тип MonthType также может быть записан как:

TYPE MonthType = ARRAY [1..6] OF

ARRAY [DayNames] OF DayType;

Можно записать с использованием ярлыка, как:

Тип MonthType = ARRAY [1..6, DayNames] OF DayType;

DayNames = (Вс,Пн,Вт,Ср,Чт,Пт,Сб);

WeekType = ARRAY [DayNames] OF DayType;

MonthType = ARRAY [1..6] OF WeekType;

Задание двумерного массива


Как задать массив в Паскале

Массивы применяются в качестве обычных матриц для сбора и хранения типизированных компонентов.

Ввести его можно с клавиатуры, вручную, набирая каждый элемент, или использовать циклы: For i:=1 to 20 do read (a[ i ]);

Реализуется он с помощью функции Random:

For i:=1 to 10 do a[ i ]:=random(100);

Вывод, ввод массива в Паскале

Вывод

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

Пример: For i:=1 to 10 do write (a[ i ], ‘ ‘);

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


Заключение

Итак, задача матрицы – ускорение действий. Конечно, если дело касается только 5 переменных, можно обойтись и без нее. А как быть, если речь идет о 100 или 1000 переменных. Нужно вбивать вручную каждый элемент для ввода и еще столько же для вывода?

Решение очевидно: лучше не забрасывать информатику 9-го класса и научиться работать в Паскале. Это полезно, если вы хотите хранить большие объемы данных для последующего использования в программе.


Читайте также: