Массивы
END
VAR
Записи
BEGIN
VAR
S : SET OF ‘A’..‘Z’;
CH : CHAR;
S := [];
CH := ‘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