Пользовательские порядковые и составные типы. Процедуры и функции
Раздел описания типов
Синтаксис
TYPE
<Имя типа 1> = <Тип 1>;
∙ ∙ ∙
<Имя типа 2> = <Тип 2>;
<Имя типа N> = <Тип N>;
Раздел описания типов размещается в описательной части программы там же, где и разделы описания переменных и констант.
Интервальный тип
Синтаксис
<Начальное значение>..<Конечное значение>
Начальное и конечное значения могут быть любого порядкового типа. Переменные интервального типа могут принимать только значения, находящиеся в указанном интервале.
Пример
TYPE
Day_of_week = 1..7;
VAR
DOW:Day_of_week;
Letter:'A'..'Z';
∙ ∙ ∙
DOW:=8; { Ошибка }
Перечислимый тип
Синтаксис
(<Имя 1>, <Имя 2>, …, <Имя N>)
Всем именам из списка присваиваются значения задаваемого перечислимого типа. Переменные перечислимых типов далее могут принимать только значения из указанного списка.
Пример
TYPE
Color = (Red,Yellow,Green,Blue);
SubColor = Yellow..Blue;
VAR
C:Color;
Size:(Small,Middle,Big);
∙ ∙ ∙
DOW:=Green;
IF Size=Big THEN Writeln('Большой');
Как и для любого из порядковых типов, для перечислимых определенны функции Pred, Succ, Ord и т.д. Например, Pred(Yellow)=Red, Succ(Green)=Blue. Порядковые номера элементов перечислимых типов начинаются с 0, т.е. Ord(Small)=0, Ord(Middle)=1 и т.д.
Тип массив
Синтаксис
ARRAY [<Тип индекса>] OF <Тип элемента>
Тип индекса может быть любым порядковым типом. Тип массив описывает в памяти последовательность переменных указанного типа элемента.
Пример
TYPE
I100=ARRAY [1..100] OF Integer; { Массив из 100
целых чисел}
VAR
A:I100;
B:ARRAY [Char] OF (Letter,Digit);
C:ARRAY [1..10] OF ARRAY [1..20] OF Real;
В приведенном примере переменная C является двумерным массивом. Многомерные массивы можно описывать проще, перечисляя в квадратных скобках типы индексов через запятую.
Пример
VAR
C:ARRAY [1..10,1..20] OF Real;
Обращение к элементам массива
<Имя массива>[<Индекс 1>][<Индекс 2>]…[<Индекс N>]
или
<Имя массива>[<Индекс 1>,<Индекс 2>,…,<Индекс N>]
Пример
A[10]:=5;
FOR Ch:='A' TO 'Z' DO B[Ch]:=Letter;
FOR Ch:='0' TO '9' DO B[Ch]:=Digit;
C[2][3]:=C[2,4]-1;
Строковый тип
Синтаксис
STRING
или
STRING[<Максимальная длина>]
Описывает переменную, которая может содержать текстовую строку. Строковые значения в языке Паскаль записываются, как и символьные, в одиночных кавычках, но могут содержать не только один, но и несколько символов, или даже не содержать ни одного символа (пустые строки). К строковой переменной можно обращаться также как к массиву. При этом строка интерпретируется как массив символов (нумеруемый с 1).
Пример
VAR
S:STRING;
S20:STRING[20]; { Строка максимальной
длины 20 символов}
∙ ∙ ∙
S:='Иванов';
IF S[4]<>'н' THEN Writeln('Ошибка');
S20:=S+' ушел в отпуск';
Writeln(S20);
Дата добавления: 2017-10-09; просмотров: 406;