Массивы «ARRAY»

Ноябрь 7, 2009 / Автор AlexR / Рубрики Статьи, Учебник по паскалю / Комментировать

Краткие теоретические сведения

Массивы используются для хранения большого количества данных. Существую несколько видов массивов:

1.      Одномерный (Вектор)

2.      Двумерный (Матрица)

3.      Трехмерный (Кубический)

4.      Многомерный

В программах чаще всего используют массивы первых двух видов.

0 1 2 3 4 5 n-1
3 4 7 21 4.5 [э]

[э] — какой-либо элемент

На данном рисунке изображен одномерный числовой массив (назовем его A), состоящий из n элементов. Следует обратить внимание, что индекс элементов начинается с нуля.

0 1 i-1
0 4 11 [э]
1 24.5 78 [э]
j-1 [э] [э] [э] [э]

На этом рисунке изображен двумерный числовой массив из ixj элементов (назовем его B). Чаще используется квадратная матрица, где i=j=n, иначе обозначаемая nxn.

Примечание: На данных примерах массивов A и B, я указал наиболее часто используемые и более понятные виды массивов, с которыми намного легче работать. На самом деле индексы начала и конца массива могут задаваться пользователем на усмотрение, о чем будет говориться далее.

Можно провести аналогию массивов и переменных. Имя массива обозначается так же, как и имя переменной, за исключением индексов, стоящих в квадратных скобках, например: для первого одномерного массива: A[1] он будет равным 4, — для второго массива: B[0,1] он будет равным 24.5, — и так далее. Массивы, как и переменные, могут быть разного типа: числового (целого, вещественного…), строкового, символьного и другого.

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

Описывать массивы можно, как и через блок описания переменных «Var», через блок описания констант «Const», так и с помощью блока описания типов «Type». Рассмотрим два первых метода описания (последний способ можно найти, перейдя по ссылке).

Общий вид описания в блоке «Var»:

Var <имя массива>: array [тип индекса в кв. скобках] of <тип элементов>=[(элементы)];

Часто не указывают тип индекса, а задают тип промежутками, например: [1..10,-5..5]. Пример:

Var massiv: array [1..10,-5..5] of real;

Таким образом, мы создали двумерный массив «massiv» со строками с индексами от i=1,2,…, 10 и со столбцами с индексами j=-5,-4,…,5.

В PascalABC. NET вводится следующее наименование таких массивов — статические.  Как видно из общего вида данные массивы можно изначально заполнить какими-либо элементами, которые затем можно будет изменить в течение программы. При этом индексами могут быть не только цифры, но и буквы, например: [‘a’..’z’] или [d1..d5].

Общий вид описания в блоке «Const»:

Const <имя массива>=array [тип индекса в кв. скобках] of <тип элементов> = (элементы);

Пример:

Сonst massivc = array [0..2,0..2] of integer = ((2,4,7),(10,23,-54));

Можно копировать содержимое массивов из одного в другой, но только при условиях, что:

1.      Массивы одного типа

2.      Массивы одинакового размера,

воспользовавшись оператором присваивания: m1:=m2;

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

Пример:

Задача: создать массив и заполнить данный массив с клавиатуры.

program arr;
var table: array [0..4, -2..2] of integer;
    i,j: byte;
begin
  for i:=0 to 4 do
    for j:=-2 to 2 do begin
      write ('Введите элемент с индексами (',i,',',j,'):');
      readln(table[i,j])
    end
end.

Другие примеры можно найти на сайте, в частности «Перемножение квадратных матриц».

Вернуться к оглавлению

Комментарии закрыты.