Персональная страничка
Диканева Тараса
Викторовича

Главная \ Преподавательское \ Программирование для начинающих

10. Массивы

Предыдущий раздел:

Следующий раздел:

10.2. Массивы

Переменная, имеющая структуру массива, является совокупностью компонент одного и того же типа. Наиболее близкие понятия из математики это вектора и числовые последовательности, где целая группа чисел обозначается одним именем, а для обращения к каждому отдельному числу последовательности используется различные индексы. Выглядеть это может, например, так: a_1, a_2, a_3, \ldots, a_n. То есть, обращаемся к конкретному элементу, например, a_3, указав имя последовательности или вектора (а) и номер (индекс) элемента (3).

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

  type
    <Имя типа-массива> = array [<тип индексов>] of <тип элементов>;

Конкретный пример:

  type
    TMassive = array [1..10] of real;

Здесь:

<Имя типа-массива> — произвольный правильный идентификатор, любое имя, которое вы захотите дать своему типу. Согласно правилам хорошего стиля имя начинается с большой буквы T (это позволяет отличать идентификаторы типов от всех прочих). Остальная часть имени придумывается в соответствии со смыслом данных, которые будут храниться в переменных этого типа и пишется с заглавной буквы (опять это не обязательное требование, но желательное с точки зрения стиля). Примеры стилистически правильных имен:

TGrades – для хранения оценок за контрольную;
TVector – для хранения координат абстрактного вектора;
TMassiv – просто массив, когда не приходится задумываться, что означают его отдельные элементы (просто куча чисел).

<тип элементов> — произвольный стандартный или ранее введенный вами тип. Если это, например, тип real, то массив – представляет собой несколько вещественных чисел.

<тип индексов> — в качестве индексов обычно используют целые числа, а в качестве типа индексов указывают так называемый тип-диапазон. Например, тип 1..10 означает, что массив будет состоять из 10-ти элементов, каждому из которых будет соответствовать индекс – целое число от 1 до 10. Нумерация элементов не обязательно должна начинаться с единицы. Например, в качестве типа можно указать –5..5. В этом случае массив будет содержать 11 элементов, первому из которых соответствует индекс –5, второму –4 и т. д.

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

  {Набор из 101 вещественного числа с индексами в диапазоне
  от 0 до 100.}
  TMassive2 = array [0..100] of real;

  {Массив, подходящий для хранения имен 20-ти человек.}
  TNames = array [1..20] of string;

  {Массив из 4294967296 (2^32) вещественных чисел. Каждая переменная 
   такого типа будет занимать в памяти 8*2^32 байт = 16 Гб, что 
   довольно много. Именно по этому рекомендуется заранее подумать, 
   сколько элементов вам реально понадобиться и использовать 
   тип-диапазон с нужным количеством возможных значений.}
  TLargeMassive = array [integer] of real;

  {Массив, значением которого будет набор из 20-ти целых чисел}
  TIntMassive = array [1..20] of integer;

После того, как описан тип, можно вводить переменные этого типа. Например:

  var
    x, y: TMassive;

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

  var
    a, b: array [1..10] of real;

Однако впоследствии (при изучении темы «Процедуры и функции») потребуется именно введение типа, так что лучше привыкать сразу и всегда пользоваться заранее описанным типом.

В описанных переменных хранятся сразу 10 вещественных значений. Индексами являются числа от 1 до 10. Для простоты индексы можно понимать как номера хранящихся в массиве чисел. Элемент массива a с индексом i обозначается как a[i]. Например, a[1] – элемент с индексом 1. Каждый элемент моно рассматривать как переменную типа real и соответственно с ней обращаться – присваивать ему значения, использовать в выражениях и т.д. Например, операторы

  a[1]:=2.5;
  readln(a[2]);
  a[3]:=2*a[2]+a[1];

запишут в 1-й элемент число 2.5, во второй то, что пользователь введет с клавиатуры, а третий элемент будет вычислен по первым двум.

Следующий раздел:

Предыдущий раздел:

2 комментария

  1. Илья

    Я ввёл им раньше константы и здесь объясняю, что в описании типа нужно писать через N, где N описано в const. Ты что думаешь?

  2. Taras

    Я думаю, это правильно.

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

Добавить комментарий