Информационные технологии

Меню

Реклама
Похожие статьи:

Популярные записи

1

  • Множества

    Paskal позволяет оперировать тремя множествами, как тремя типами данных. Для определения типа множество используется выражение:

    Set Of простой тип

    1 Например, описание вида :

    Type

    Char Set = set of 'A'. 'Z'

    Определяет тип множество, значениями которого являются множества символов - букв, а элементами множества - символы - латинские буквы от А к Z.

    2 Описания вида

    Type

    Number Set = set of 0.50 определяет тип множество, а членами множества - целые числа, которые находятся в пределах от 0 до 50.

    3 Пустое множество является элементом всех типов множеств.

    4 Примеры описаний типов множество:

    Type

    Symbol Set = set of ' '.' ';

    Colour = WHITE, BLUE, RED;

    Colour Set = set of Colour;

    T1 = set of 0.9

    Var

    C: colour; Col Set : Colour Set;

    T: inteper;

    TSet: T1

    В данном случае значением переменной Т может быть любая цифра от 0 до 9, а значением переменной TSet - произвольная совокупность цифр от 0 до9.

    5 Над множествами в Р допустимые 4 операции;

    § 'единение "+" Объединение множеств - это множество, которое содержит все элементы этих множеств без повторений.

    § Пересечение " " Пересечение множеств - это множество, которое состоит из элементов, которые являются общими для всех множеств.

    § Разница " - " Разницей множеств Но и В есть множество, которое состоит из элементов, которые есть в А, но нет в В.

    § Операция in.

    Операция in позволяет определить или принадлежит элемент множеству, или нет. Первым операндом, размещенным слева от слова in, является выражение базового типа то есть типу, которому должны принадлежать все члены множества. Второй операнд, который находится справа in, должен иметь тип множество.

    Например: Red in [RED, WHITE] - результат true

    8 in [0.3, 6, 9] - результат false.

    7 В Р. программе множество задается в виде списка элементов, заключенного в [ ]. В [ ] может быть 1 или больше элементов, а может не быть ни одного пустое множество. В качестве элемента может использоваться const, переменная, выражение, значение которого принадлежит базовому типу, а также паре элементов, разделенных двумя точками интервал значений.

    8 В Р. можно использовать инструкции присвоения следующих выражений :

    ColSet: = [WHITE, RED];

    ColSet: = [ ];

    TSet: = [1, 7, 5];

    TSet: = [1.5, 8];

    TSet: = [8 mod 4, 15 div 5].

    9 При работе с множествами можно использовать операция сравнения :

    =, , =, =

    Операции "=" и " " позволяют проверить, уровни два множества, или нет. С помощью oпераций " =" и " =" можно определить, является ли одно множество подмножественным другой.

    Пример:

    [RED, WHITE] = [ RED, GREEN] - резкльтат false

    [RED] = [RED, WHITE] - результат true.

    Операции в порядке уменьшения приоритета размещаются так:

    +

    In, =, , =, = ривноприоритетни операции

    Пример №1 Из файла Input вводится текст, который содержит символы от знака "+" к левой квадратной скобке " [ ". Распечатать символы текста в порядке кода ASCII из символов, которые встречаются повторно, выводить только один.

    Program Sort Input, Output;

    Var

    S: char;

    Sets: set of '+' [';

    I: '+'.'[';

    Begin

    Sets: = [ ];

    Read S

    While not Eof do begin

    While not Eoln do

    begin

    Sets: = Sets + [S];

    Read S

    end

    Readln

    End

    For I : = '+' to '[' do

    If I in Sets

    Then Write I else; writeln end.

    Пример №2 Написать программу, которая печатает все простые числа из отрезка 2.N действуя по методу "решета Ератосорена"

    "Решето Ератосорена"

    Program Rach;

    Coust

    N = 15

    Var

    S: set of 2.N

    {начальное множество чисел}

    i, k: integer;

    Begin

    S: = [2.N];

    for i: = 2 to N do

    if i in Sthen begin

    writeln i;

    {виводимо менее всего из элементов S}

    {забираем из S числа, крайние и}

    for k: = 1 to N div i do

    S: = S - [ki];

    end {if }

    End.

    Внутреннее представление множеств

    Знакомство с внутренним представлением множеств поможет нам понять особенности и ограничения, свойственные этому типу данных.

    Все значения множества представляются в памяти последовательностями битов одинаковой длины. За каждое значение базового типа "отвечает" один бит. Если множество вмещает некоторый элемент, в "ответственном" за него бите хранится 1, если не вмещает - хранится 0.

    Пример.

    Var X : set of 1.15;

    Внутреннее представление Х

    X: = [ ]; 000.0.000.0.000.0.000.

    011010000000000

    X: = [2, 3,5];

    X: = [1.15]; 111111111111111

    Операции над множествами возводятся к "поразрядныx" логических операций над последовательностью битов, например объединение множеств используется путем "поразрядного" логического добавления битов.

    X: = [2, 3, 5]; 011010000000000

    Y: = [3, 5, 7, 8]; 0010101.10000000

    Z: = X+Y; 01101.0110000000

    "Поразрядные" операции входят в набор команд процессора ЭВМ, потому выполняются быстро.