Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 7 Массивы.doc
Скачиваний:
2
Добавлен:
02.11.2018
Размер:
215.04 Кб
Скачать

8

Лекция 7

7.0. Массивы

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

Каждый элемент массива однозначно определяется именем и индексом (номером элемента в массиве).

Индексы массива принадлежат целочисленному типу.

Массив может быть:

  • одномерным a[ i ] ( i – номер элемента)

  • двумерным b[i,j] ( i –номер строки , j – номер столбца)

Массив заданный математически имеет вид:

- одномерный A := (1, 5, 8, 3, 4, 2, 7, 0)

- двумерный B ( 3 – строки и 2 – столбца )

Массив, объявленный в среде Lazarus:

- одномерный Arr1 [ 1..8 ],

- двумерный Arr2 [ 1..3, 1..2 ].

Формат объявления одномерного массива:

<Имя>=array [<нижний индекс . . верхний индекс>] of <тип>;

где: Имя – имя массива;

array – зарезервированное слово языка, обозначающее объявление массива;

нижний индекс и верхний индекс – целые константы, определяющие диапазон изменения индекса элементов массива;

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

Примеры объявления массивов:

type

Matrix=Array[1 . . 3, 1 . . 2 ] of Real; //Тип - двумерный массив

// вещественных чисел состоящий из 3 строк и 2 столбцов

A=Array [1 . . 8 ] of Real; //Тип - массив из 8 вещественных чисел

или

var

S : Array [ ' a ' . . ' z ' ] of Char ; //одномерный массив S символьного типа

или

const

B : Array[1..6] of integer=(1,5,3,-2,0,3); // одномерный массив из 6 целых чисел

При работе с массивами необходимо помнить об ограничении на размер общей памяти под переменные (64 Кбайт).

Общая память под переменные  64 Кбайт.

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

Например:

const

N=12; //число команд

SN=50; //предельная длина названия команды

var

team: array[1 . . N] of string[SN];

При обращении к элементу массива, надо указать его имя и номер элемента в квадратных скобках:

. . .

team[ 1 ] := ’CSK’;

S:=S+A[2];

. . .

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

Формат объявления массива с инициализацией:

<Имя>=array [<нижний индекс . . верхний индекс>] of <тип>= (список);

//одномерный массив

<Имя>=array [<нижний индекс . . верхний индекс>строк,

<нижний индекс . . верхний индекс>столбцов,] of <тип>= (список);

//двумерный массив

Например:

program Example1;

uses

SysUtils;

var

Team: array[1..5] of string[10]=('Zenit', 'Dinamo', 'Spartak', 'Rotor', 'CSK');

А: array[1..4,1..4] of integer=((0,2,4,6),(2,9,6,3),(4,7,5,8), (1,6,5,7));

. . .

Количество элементов списка инициализации должно соответствовать размерности массива. Иначе компилятор выведет сообщение об ошибке.

Локальный массив (в процедуре) можно инициализировать во время выполнения программы в цикле.

Например:

for i :=1 to 10 do

begin

Writeln( 'Vvedite', i, 'element massive  А' );

Readln( А [ i ] ); //ввод элемента массива А

end;

Операции, производимые над элементами массива, полностью определяются типом этих элементов.