logo
Лекции по информационным технологиям / Лекции_2_семестр

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

Статическое описание определяет имя, размер массива и тип данных, которые в нем хранятся.

Var

Имя_массива : array [тип_индекса] of тип_данных;

Чаще всего в качестве типа индекса используется интервальный целый тип (тип-диапазон). Интервальный тип задается начальным и конечным значениями, которые разделяются двумя точками. Начальное значение задает нижнюю границу индекса, конечное значение – верхнюю границу индекса. Для одномерного массива задается одни тип диапазон, для двумерного массива через запятую указывается второй тип диапазон для задания границ второго индекса.

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

Var

A : array [1..10] of real;

B : array [1..10,1..10] of integer;

Начиная с версии Delphi4 можно использовать также и динамические массивы, когда количество элементов может меняться по ходу выполнения программы.

Динамические массивы отличаются от обычных статических тем, что для них не объявляется заранее длина – число элементов. Объявление такого массива содержит только имя и тип элементов.

Например для одномерного массива:

Var

Имя_массива : array of тип_данных;

При объявлении динамического массива место под него не отводится. Прежде чем использовать такой массив, надо задать в программе его размер процедурой SetLength. Параметры данной процедуры – имя массива и его размер. Например,SetLength(A,N); - для одномерного массива.

Замечание. При динамическом описании массивов нижняя граница индекса равна нулю.

Элементы массива можно использовать в любом выражении точно также как и значение константы или переменной. Для доступа к элементу массива следует указать имя массива с последующим числом (индексом), заключенном в квадратные скобки.

Например,

a[0]=11.2; a[1]=10.2;

a[3]=22.1; a[4]=1.1;

Y = a[0] * 2 – a[1];

При работе с массивами используются циклы с параметром. Например

{Создать массив из пяти элементов и заполнить его случайными значениями целых чисел из диапазона [-10,10]}

var

A : array of integer;

i : integer;

Begin

Setlength(A,5);

For i:=0 to 4 do

begin

{Присвоить элементу массива случайное число из отрезка [-10,10]}

A[i]:= Random(21)-10;

{Вывести элементы массива}

Edit2.Text:=Edit2.Text+' '+IntToStr(A[i]);

end;

end;

При работе с двумерными массивами используются вложенные циклы с параметром. Например

{Создать двумерный массив 3х5 и заполнить его случайными значениями целых чисел из диапазона [-100,100]}

var

A : array [1..3,1..5] of integer;

i, j : integer;

Begin

for i:=1 to 3 do

for j:=1 to 5 do

a[i,j]:= Random(201)-100;

end;

Строки

В реальных задачах часто встречаются объекты символьного типа – строки. Строка в Pascalтрактуется как последовательность символов. В состав строки могут входить буквы латинского алфавита, кириллица, цифры, всевозможные знаки, скобки, пробел и др. Каждый символ строковой величины занимает 1 байт памяти (десятичный код от 0 до 255, зафиксированный в кодовой таблицеASCII).

Количество символов в строке называется ее длиной. Длина строки может динамически изменяться от 0 до 255. Пустая строка имеет нулевую длину.

Строковая константа– последовательность символов, заключенных в апострофы. Например:

’Это строковая константа’, ’123’.

Таким образом, при использовании в выражениях строка обязательно заключается в кавычки. Два следующих друг за другом апострофа (’’), обозначают пустую строку, т.е. строку с нулевой длиной.

Строковая переменнаяописывается в разделе описания переменных:

Var

Имя_переменной : string [максимальная длина строки];

Например:

Var

Name: string[20];

St: string;

Если максимальная длина не указана, то она принимается равной 255 (по умолчанию).

Элементы строки идентифицируются именем строки с индексом, заключенным в квадратные скобки. Т.е. к любому символу в строке можно обратиться точно также, как к элементу одномерного массива по его номеру.

Например:

N[5], S[i], slovo[k+1]

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

Для хранения и обработки отдельных символов используют переменные типаchar. Значением переменной такого типа может быть любой один символ.

Например:

var

a: char;ch: char;