мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
pascal:arrays [22/09/2010 13:39] ocapascal:arrays [22/09/2011 14:14] (текущий) oca
Строка 1: Строка 1:
 ===== Работа с массивами ===== ===== Работа с массивами =====
 FIXME FIXME
-Любой массив является переменной. Его особенностями является то, что+Любой массив является переменной, которая имеет внутреннюю структуру, но состоит из однотипных элементов. 
  
-1) массив,  строк(string), которые во многих отношениях являются исключением, не может относится к стандартным типам - тип массива должен либо описываться заранее, либо  описывается "неявно" при объявлении+Массив характеризуется типом элементов, их количеством элементов и способом их нумерации.
  
-2) массив имеет внутреннюю структуру, т.е. составные части, до которых можно добраться, используя стандартные средства Паскаля. +==== Одномерные массивы ====
  
-=== Примеры ===+Одномерные массивы могут использоваться для представления последовательностей однотипных объектов ограниченной длинны. В частности - для строк (символов) и линейных списков. Но могут использоваться и более сложным образом, например, для уравновешенных (симметричных) двоичных деревьев, кольцевых буферов и т.д. 
  
 +=== Примеры описания массивов ===
 +<code pascal| Примеры описания массивов>
 +var
 +  ArIntInt : array [1..10] of integer; // пронумерованный числами массив 
 +                                       // целых
 +  ArIntChr : array[ 1..10] of char;    // пронумерованный числами массив 
 +                                       // символов
 +  ArIntRea : array[ 1..10] of real;    // пронумерованный числами массив 
 +                                       // действительных (с плавающей точкой) чисел
  
 +</code>
 +
 +Нумерация должна быть сплошной и идущей в порядке возрастания
 +
 +<code pascal| Примеры неверного описания массивов>
 +var
 +  ArIntInt : array [1..5, 7..10] of integer; 
 +                                       // нет возможности пропустить одно или несколько значений 
 +
 +  ArIntInt : array [10..1] of integer; 
 +                                       // нельзя задавать нумерацию в обратном порядке 
 +
 +</code>
 +
 +
 +<code pascal| Примеры описания массивов>
 +var
 +  ArIntInt : array [1..10] of integer; // пронумерованный числами массив 
 +                                       // целых
 +  ArIntChr : array[ 1..10] of char;    // пронумерованный числами массив 
 +                                       // символов
 +  ArIntRea : array[ 1..10] of real;    // пронумерованный числами массив 
 +                                       // действительных (с плавающей точкой) чисел
 +
 +</code>
 +
 +
 +<code pascal| Неявное описание типа массива>
 +Var
 +  AI1, AI2 : array[1..20] of integer; // два массива из 20 целых чисел, занумерованных числами от 1 до 20
 + 
 +</code>
 +
 +
 +<code pascal| Явное описание типа массива>
 +
 +Type
 +  AIT = array[1..20] of integer; // Тип массивов из 20 целых чисел, занумерованных числами от 1 до 20
 +
 +Var
 +  AI : AIT;                        // Один из таких массивов 
 +</code>
 +
 +<code pascal| Динамические массивы>
 +
 +Var
 +  AD:array of integer;                        // Объявление массива
 +  
 +begin
 +   SetLength(AD,10000000);
 +end.
 +</code>