Главная

Язык программирования Pascal

Что такое Паскаль

Запись числовых констант, переменных и выражений.

Типы данных. Операции и функции над данными разных типов.

Структура программы

Операторы присваивания, ввода и вывода

Простейшие программы

Условный оператор

Операторы цикла.

Массивы

Процедуры и функции.

Строки.

Множества

Записи

Файлы

Множества.

Множество - неупорядоченная совокупность неповторяющихся элементов одного типа, имеющих общее имя. Количество элементов множества может меняться в пределах от 1 до 255. Описание типа множество имеет вид:

< имя типа > = Set Of < базовый тип >;

Здесь <базовый тип> - это тип элементов множества, в качестве которого может использоваться любой порядковый тип, кроме Integer. (В Турбо-Паскале также кроме типов Word, Shortint, Longint).
    Для задания множества используется конструктор множества, заключенный в квадратные скобки список элементов множества, отделяемых друг от друга запятыми. Элементами могут быть константы или выражения базового типа, а также - тип-диапазон того же базового типа. Конструктор пустого множества имеет вид - [ ].

Пример 11.
Пример определения и задания множеств:

    Type
        digitChar = Set Of ‘0’ .. ‘9’;
        digit = Set Of 0 .. 9;
    Var
        s1, s2, s3 : digitChar;
        s4, s5, s6 : digit;
        . . . . . .
        s1 := [‘1’, ‘2’, ‘3’];
        s2 := [‘3’, ‘2’, ‘1’];
        s3 := [‘2’, ‘3’];
        s4 := [0. .3, 6];
        s5 := [4, 5];
        s6 := [3. .9];. . . . . .

Над множествами определены следующие операции:
 

Операция

Смысл

Пример*

Результат

*

пересечение множеств

s1*s3

[‘2’, ‘3’]

+

объединение множеств

s4+s5

[0. .6]

-

разность множеств

s2-s3

[‘1’]

=

True, если множества 

эквивалентны

s1=s2

s1=s3

True

False

<> 

True, если множества неэквивалентны

s1<>s2

s1<>s3

False

True

<=

True, если первое множество содержится во втором

s5<=s6

True

>=

True, если второе множество содержится в первом

s2>=s3

True

In

проверка принадлежности значения выражения, стоящего слева множеству, стоящему справа 

7-5 In s4

True

* - примеры приведены согласно описаниям и конструкторам множеств в примере 11.

Пример 12.
Организовать ввод элементов трех множеств A, B, C. Вычислить и напечатать множества A + B, B * C, C - A.

Program CalcSet;
Type SetChar: Set Of Char;
Var A, B, C : SetChar;
{Процедура ввода множества}
Procedure EnterSet(Var D: SetChar);
Var ch: Char;
Begin
    Writeln(‘Введите элементы множества, точка - конец ввода’);
    Read(ch);
    D:=[];
    While ch<>‘.’ Do
        Begin D := D + [ch]; Read(ch) End;
End;{EnterSet}
{Процедура вывода множества}
Procedure PrintSet(D: SetChar);
Var i: Byte;
Begin For i := 0 To 255 Do
      If Chr(i) in D Then Writeln(Chr(i))
End;{PrintSet}
Begin {Основная программа}
    Writeln(‘Введите элементы множества A’);
    EnterSet(A);
    Writeln(‘Введите элементы множества B’);
    EnterSet(B);
    Writeln(‘Введите элементы множества C’);
    EnterSet(C);
    PrintSet(A+B); PrintSet(B*C); PrintSet(C-A)
End.

 
Сайт управляется системой uCoz