Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
6
Структурированные типы
Любая переменная или константа структурированных типов всегда имеет несколько компонентов. К ним можно отнести:
Массивы организуются, когда приходится иметь дело с набором данных одного типа и одинакового смыслового содержания. Такой набор, имеющий общее для всех своих элементов имя, называется массивом. Элементы массива пронумерованы и обратиться к любому из них можно, указав его индекс (номер). Количество индексов массива называют его размерностью, а количество допустимых значений каждого индекса его диапазоном. Описать массив можно в разделе описаний типов 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
Множества
Множества это набор однотипных, логически связанных друг с другом объектов. Количество элементов, входящих в множество, может меняться в пределах от 0 до 256. Множество, не содержащее элементов, называется пустым. Именно непостоянство количества элементов отличает множество от массива. Описать множество можно, как в раздел TYPE, так и в раздел VAR
S : SET OF A..Z
X : SET OF 0..9
Два множества считаются эквивалентными тогда, когда все их элементы одинаковы, причем порядок следования элементов во множестве не имеет значения. Если все элементы одного множества входят также и в другое, то говорят о включении первого множества во второе. Пустое множество включается в любое другое.
Пусть имеется одинаковое описание трех множеств:
S1,S2,S3: SET OF 0..9.
В программе этим множествам присваиваются следующие значения:
S1 : = [1,2,3]
S2 : = [3,2,1]
S3 : = [2,3]
Здесь множества S1, S2 эквивалентны, а множества S3 включено в S2, но не эквивалентно ему.
Если переменная S описана как S : SET OF 1..3, то она может принимать значения:
[1,2,3]
[1,2]
[1,3]
[2,3]
[1]
[2]
[3]
[].
Множества языка Паскаль обладает свойствами математических множеств. Над ними возможны следующие операции:
3 IN S4 возвращает значение TRUE, а 2*2 IN S4 возвращает FALSE.
Чтобы добавить в множество какой-нибудь элемент, можно либо объединить его с множеством, состоящим из этого единственного элемента, либо использовать процедуру INCLUDE.
VAR
CH : CHAR;
BEGIN
CH := A;
S := S+[A];
INCLUDE(S,CH);
Для исключения элемента из множества используют операцию разности S := S[CH] или процедуру EXCLUDE (S, CH).
Рассмотрим работу программы MNOGESTV.PAS
Записи
Этот тип данных содержит определенное число элементов полей и представляет собой смесь разных типов. Чтобы можно было ссылаться на любой компонент записи, поля именуются. Объявление структуры записи производится в разделе описания типов TYPE или переменных VAR.
VAR
< имя_записи > : RECORD
< список полей >
END
В описании указывают имя каждого поля и его тип:
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