Массивы

END

VAR

Записи

BEGIN

VAR

S : SET OF ‘A’..‘Z’;

CH : CHAR;

S := [];

CH := ‘A’;

эти операторы эквивалентны
S := S+[‘A’];

S := S+[CH];

INCLUDE(S,CH);

 

Для исключения элемента из множества используют операцию разности S := S–[CH] или процедуру EXCLUDE (S, CH).

 

Рассмотрим работу программы MNOGESTV.PAS

 

Этот тип данных содержит определенное число элементов – полей и представляет собой смесь разных типов. Чтобы можно было ссылаться на любой компонент записи, поля именуются. Объявление структуры записи производится в разделе описания типов TYPE или переменных VAR.

 

< имя_записи > : RECORD

< список полей >

В описании указывают имя каждого поля и его тип:

 

STUD : RECORD

FAM,IM,OTCH:STRING[20];

DAY,MONTH,YEAR:WORD;

END;

 

Переменные типа запись могут участвовать в операциях присваивания, но никакие другие операции над ними выполняться не могут. Арифметические и другие операции могут выполняться только над отдельными полями записи. Для этого можно указать имя переменной-записи и после точки имя нужного поля записи:

 

A. FAM := ‘Иванов’;

READLN (A.DAY, A.MONTH, A.YEAR);

Для обращения к отдельному полю записи можно также использовать оператор присоединения WITH:

 

WITH A DO WRITE (FAM);

 

Бывают записи с фиксированными частями и с вариантными. В записи с фиксированными частями структура всех полей четко определена и в течение программы не меняется. В записи с вариантами отдельные поля могут быть фиксированными, а другие вариантными – изменять свою структуру в зависимости от выбранного варианта.

 

Рассмотрим работу программы ZAPIS.PAS

 

 

Массивы организуются, когда приходится иметь дело с набором данных одного типа и одинакового смыслового содержания. Такой набор, имеющий общее для всех своих элементов имя, называется массивом. Элементы массива пронумерованы и обратиться к любому из них можно, указав его индекс (номер). Количество индексов массива называют его размерностью, а количество допустимых значений каждого индекса – его диапазоном. Описать массив можно в разделе описаний типов TYPE:

MAS1 = ARRAY[1..14] OF REAL

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

SS : ARRAY[0..8] OF BYTE.

В квадратных скобках указывается диапазон изменения индексов. Если массив многомерный, то в описании задаются диапазоны изменения каждого индекса:

XX : ARRAY[1..10,1..15] OF WORD

или

XX : ARRAY[1..10] OF ARRAY[1..15] OF WORD.

В Турбо-Паскале любая переменная, в том числе и массив не может занимать в памяти больше 64 кб. Чтобы обратиться к элементу массива, следует указать его номер (индекс):

XX[1, K] : = SS [K+4]*5

В операторах присваивания можно использовать не только элементы массивов, но и массивы в целом. Так допустима запись XX : = B1, где XX и B1 описаны как массивы одного типа и одной размерности. Массивы можно использовать и в логических отношениях равенства (=) и неравенства (<>). Другие операции отношения (<>, <=, >=) применяются только к элементам массива. В памяти элементы массива хранятся друг за другом.

В программах обычно массивы и циклы соседствуют друг с другом.

Рассмотрим работу программы MASSIV.PAS