Множества
Массивы
Массивы организуются, когда приходится иметь дело с набором данных одного типа и одинакового смыслового содержания. Такой набор, имеющий общее для всех своих элементов имя, называется массивом. Элементы массива пронумерованы и обратиться к любому из них можно, указав его индекс (номер). Количество индексов массива называют его размерностью, а количество допустимых значений каждого индекса – его диапазоном. Описать массив можно в разделе описаний типов 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’
Два множества считаются эквивалентными тогда, когда все их элементы одинаковы, причем порядок следования элементов во множестве не имеет значения. Если все элементы одного множества входят также и в другое, то говорят о включении первого множества во второе. Пустое множество включается в любое другое.
Пусть имеется одинаковое описание трех множеств:
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]
[].
Множества языка Паскаль обладает свойствами математических множеств. Над ними возможны следующие операции:
|
|
· Пересечение множеств (*). Результат содержит элементы, общие для обоих множеств. Например для множества S4:=[0..3,6] и S5:=[3..9] их пересечение S4*S5 содержит один элемент [3,6].
· Объединение множеств (+). Результат содержит элементы первого множества, дополненные недостающими элементами второго множества: S4+S5 содержит [0,1,2,3,4,5,6,7,8,9].
· Разность множеств (-). Результат содержит элементы из первого множества, которые не принадлежат второму: S4-S5 содержит [0,1,2], S5–S4 cодержит [4,5,7,8,9].
· Проверка эквивалентности (=). Результат равен TRUE, если оба множества эквивалентны. Записывается: S4=S5.
· Проверка неэквивалентности (<>). Результат равен TRUE, если оба множества неэквивалентны. Записывается: S4<>S5.
· Проверка вхождения (<=). Результат равен TRUE, если первое множества включено во второе. Записывается: S4<=S5.
· Проверка вхождения (>=). Результат равен TRUE, если второе множество включено в первое.
· Проверка принадлежности (IN). В этой операции первый элемент – выражения, а второй – множество того же типа. Результат равен TRUE, если выражение имеет значение, принадлежащее множеству.
3 IN S4 возвращает значение TRUE, а 2*2 IN S4 возвращает FALSE.
Чтобы добавить в множество какой-нибудь элемент, можно либо объединить его с множеством, состоящим из этого единственного элемента, либо использовать процедуру INCLUDE.