Янв
15th

Урок 20. Описание массива

Урок из серии: “Язык программирования Паскаль

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

type
   <имя типа> = array [<нижний индекс>..<верхний индекс>] of <тип компонента>;
var
  <идентификатор> : <имя типа>;

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

var
  <идентификатор> : array [<нижний индекс>..<верхний индекс>] of <тип компонента>;

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

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

var myarray : array [1..n, 1..m] of integer ;

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

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

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

type myarray = array[1..30] of integer
var m1: mas;

Напомним, что раздел типов  начинается со служебного слова type, после этого идет имя нового типа и его описание. Между именем типа и его описанием ставится знак “равно” (в разделе переменных между именем переменной и её описанием ставится двоеточие).

Тогда:

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

array – служебное слово (в переводе с английского означает “массив”, “набор”);

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

Of – служебное слово (в переводе с английского – “из”);

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

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

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

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

var m1: array[1..30] of integer;

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

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

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

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

 

 

Поделиться с друзьями


Оставить комментарий или два