Const
n = 5;
Type
mas = array[1..n] of integer;
Var
a: mas;
i: byte;
Begin
writeln(‘введите элементы массива’);
for i:=1 to n do readln(a[i]);
writeln(‘вывод элементов массива:’);
for i:=1 to n do write(a[i]:5);
end.
Определить переменную как массив можно и непосредственно при ее описании, без предварительного описания типа массива, например:
var a,b,c: array[1..10] of integer;
Если массивы a и b описаны как:
Var
a = array[1..5] of integer;
b = array[1..5] of integer;
то переменные a и b считаются разных типов. Для обеспечения совместимости применяйте описание переменных через предварительное описание типа.
Если типы массивов идентичны, то в программе один массив может быть присвоен другому. В этом случае значения всех переменных одного массива будет присвоены соответствующим элементам второго массива.
Вместе с тем, над массивами не определены операции отношения. Сравнивать два массива можно только поэлементно.
Так как тип, идущий за ключевым словом of в описании массива, — любой тип Паскаль, то он может быть и другим массивом. Например:
Type
mas = array[1..5] of array[1..10] of integer;
Такую запись можно заменить более компактной:
Type
mas = array[1..5, 1..10] of integer;
Таким образом возникает понятие многомерного массива. Глубина вложенности массивов произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничена, однако не может быть более 65520 байт.
Работа с многомерными массивами почти всегда связана с организацией вложенных циклов. Так, чтобы заполнить двумерный массив (матрицу) случайными числами, используют конструкцию вида:
for i:=1 to m do
for j:=1 to n do a[i,j]:=random(10);
Для красивого вывода матрицы на экран используйте такой цикл:
for i:=1 to m do begin
for j:=1 to n do write(a[i,j]:5);
writeln;
end;
Строки
Строковый тип данных
Для обработки строковой информации в Паскале введен строковый тип данных. Строкой в Паскале называется последовательность из определенного количества символов. Количество символов последовательности называется длиной строки. Синтаксис:
var s: string[n];
var s: string;
n — максимально возможная длина строки — целое число в диапазоне 1..255. Если этот параметр опущен, то по умолчанию он принимается равным 255.
Строковые константы записываются как последовательности символов, ограниченные апострофами. Допускается формирование строк с использованием записи символов по десятичному коду (в виде комбинации # и кода символа) и управляющих символов (комбинации ^ и некоторых заглавных латинских букв).
Пример:
‘Текстовая строка’
#54#32#61
‘abcde’^A^M
Пустой символ обозначается двумя подряд стоящими апострофами. Если апостроф входит в строку как литера, то при записи он удваивается.
Переменные, описанные как строковые с разными максимальными длинами, можно присваивать друг другу, хотя при попытке присвоить короткой переменной длинную лишние символы будут отброшены.
Выражения типа char можно присваивать любым строковым переменным.
В Паскале имеется простой доступ к отдельным символам строковой переменной: i-й символ переменной stзаписывается как st[i]. Например, если st — это ‘Строка’, то st[1] — это ‘С’, st[2] — это ‘т’, st[3] — ‘р’ и так далее.
Над строковыми данными определена операция слияния (конкантенации), обозначаемая знаком +. Например:
a := ‘Turbo’;
b := ‘Pascal’;
c := a + b;
В этом примере переменная c приобретет значение ‘TurboPascal’.
Кроме слияния над строками определены операции сравнения ,=,,=. Две строки сравниваются посимвольно, слева направо, по кодам символов. Если одна строка меньше другой по длине, недостающие символы короткой строки заменяются символом с кодом 0.
Массивы. Описание, ввод и вывод элементов массива