Понедельник, 29 Апреля 2024, 05.18.52
Приветствую Вас Гость

Всё о Паскале

Меню сайта
реклама
Наш опрос
Оцените мой сайт
Всего ответов: 239
Целый тип Логический Символьный Тип-диапазон Перечисляемый Массивы Записи

Массивы

Массивы в Турбо Паскале во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа(структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:
  type
      digit = array [0..9] of Char;
      matrix = array [Byte] of Single;
  var
      m : matrix;
      d : digit;
      i : Integer;
  begin
      m[17] := ord(d[i-1])/10;
  end.

Описание типа массива задается следующим образом:
      <имя типа> = ARRAY [ <сп.инд.типов> ] OF <тип>

Здесь:
      <имя типа> — правильный идентификатор;
      ARRAY, OF — зарезервированные слова (массив, из);
      <сп.инд.типов> — список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, — требование синтаксиса;
      <тип> — любой тип Турбо Паскаля.
В качестве индексных типов в Турбо Паскале можно использовать любые порядковые типы, кроме LONGINT и типов-диапазонов с базовым типом LONGINT.

Определить переменную как массив можно и непосредственно при описа- нии этой переменной, без предварительного описания типа массива, например:
  var
      a,b : array [1..10] of Real;
Обычно в качестве индексного типа употребляется тип-диапазон, в котором задаются границы изменения индексов. Так как фрагмент <тип>, идущий за словом OF, — любой тип Турбо Паскаля, то он может быть, в частности, и другим массивом, например:
  type
      mat = array [0..5] of array [-2.. 2] of array [Char] of Byte;

Такую запись можно заменить более компактной:
  type
      mat = array [0. . 5, -2. .2, Char] of Byte;

Глубина вложенности структурированных типов вообще, а следовательно, и массивов — произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива, как уже говорилось, не может быть больше 65 520 байт. В памяти ПК элементы массива следуют друг за другом так, что при переходе от младших адресов к старшим наиболее быстро меняется самый правый индекс массива. Если, например, имеется массив

  var
      а : array [1..2,1..2] of Byte;
  begin
      a[1,l]:=1;
      a[2,l]:=2;
      a[l,2]:=3;
      a[2,2]:=4;
  end.
то в памяти последовательно друг за другом будут расположены байты со значениями 1, 3, 2, 4. Это обстоятельство может оказаться важным при использовании стандартной процедуры копирования памяти MOVE. В Турбо Паскале можно одним оператором присваивания передать все элементы одного массива другому массиву того же типа, например:
  var
      а,Ь : array [1..5] of Single;
  begin
      a := b;
  end.

После этого присваивания все пять элементов массива А получат те же значения, что и в массиве в. Однако над массивами не определены операции отношения. Нельзя, например, записать
      if a = b then . . .

Сравнить два массива можно поэлементно, например:
  var
      а,Ь : array [1..5] of Single;
      eq : Boolean;
      i : Byte;
  begin
      eq := True;
      for i := 1 to 5 do
        if a[i] <> b[i] then eq := False;
      if eq then ...
  end.

Форма входа
Календарь новостей
«  Апрель 2024  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930
Поиск
Друзья сайта
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0