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

Множество представляет собой некоторую неупорядоченную совокупность элементов, которая является подмножеством допустимых значений определенного порядкового типа, именуемого базовым. В качестве базового типа могут использоваться простые типы: стандартные (кроме действительных и целых), перечисляемый и ограниченный.

Например, в математике – множество фигур на плоскости: прямоугольник, круг, ромб, квадрат и т.п. К множествам в математике применимы следующие операции:

- объединение множеств: С = АÈВ. Каждый элемент множества С является элементом либо множества А, либо множества В;

- пересечение множеств: С = АÇВ. Каждый элемент множества С является элементом множества А и В одновременно;

- разность множеств: С = А\В. Каждый элемент множества С является элементом множества А, но не множества В.

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

1) {круг, ромб} È {круг, квадрат} = {круг, ромб, квадрат}

2) {круг} Ç {круг, ромб, квадрат} = {круг}

3) {круг, ромб, квадрат}\{круг, квадрат} = {ромб}

Объявление множества производится следующим образом:

Type ИмяМножества = set of базовый тип;

Пример:

Type Год = set of 1880..2001;

Буква = set of 'A'..'M';

В языке Паскаль операции над множествами обозначаются так:

"+" – объединение множеств;

"*" – пересечение множеств;

"-" – вычитание множеств;

"=", "<>" – проверка множеств на равенство или неравенство (множество А равно множеству В, если каждый элемент множества А является элементом множества В и наоборот);

"<=", ">=" – проверка множеств на включение (множество А включено в множество В (А<=В или В>=А), если все элементы множества А являются также элементами множества В. Результат операции в этом случае может принимать одно из значение: True или False);

In – проверка на принадлежность элемента множеству: С in A – проверка принадлежности элемента множества С множеству А.

Пример.

Имеются три множества символьного типа:

Y1 = {'A', 'B', 'D', 'R', 'M'}

Y2 = {'R', 'A', 'H', 'D'}

Y3 = {'A', 'R'}

Сформировать новое множество: X = (Y1ÇY2)È(Y1\Y2). Вывести на печать новое множество и проверить, включено ли множество Y3 во множество Х.

Program p12_1;

Var

Y1, Y2, Y3: set of Char;

C: Char;

Begin

Y1:=['A', 'B', 'D', 'R', 'M'];

Y2:=['R', 'A', 'H', 'D'];

Y3:=['A', 'R'];

{Формирование и печать множества}

X:=(Y1*Y2) + (Y1-Y2);

Write ('Множество Х=');

For c:= 'A' to 'R' do

if C in X Then Write(C);

Writeln;

{Проверка включения множества Y3 в Х}

if Y3 <= X

then Writeln('Y3 включено в Х')

else Writeln('Y3 не включено в Х');

End.

Записи

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

Формат записи:

ИмяЗаписи = record

ИмяЭлемента1: тип1;

ИмяЭлемента2: тип2;

...

ИмяЭлементаn: типn;

End;

Пример объявления записи:

Type

ДатаРождения = record

Год: integer;

Месяц: 1..12;

День: 1..31;

End;

Пример записи: Составим ведомость – список учащихся с их оценками вида:

№ п/п Фамилия И.О. Оценка
  Андреев С.Н. 5 3 4
  Кузнецов И.Г. 5 5 5
  Шишкин А.А. 4 4 5

Каждая строка в этой ведомости состоит из отдельных элементов – данные различного типа:

а) порядковый номер – целое десятичное число;

б) Фамилия И.О. – массив символов;

в) оценки – массив целых чисел.

Эти данные можно объединить в одну группу и считать записью. Запись в целом и отдельные ее элементы обозначаются именами, например, такими:

В – имя всей записи; N – порядковый номер; ФИО – фамилия, имя, отчество; Оценка – оценки.

Обращение к элементу записи в программе выполняется с помощью составного имени, которое содержит имя записи и имя элемента, разделенные точкой:

ИмяЗаписи.ИмяЭлемента

Например, В.N, В.ФИО, В.Оценка

Элементы записи вместе с их описанием называются полями записи.

Для представления ведомости объявление записи выглядит так:

Type Ведомость = record

N: integer;

ФИО: string[20];

Оценка: array[1..3] of integer

end;

Var B: Ведомость;

Элемент записи используется в программе так же, как и обычная переменная. Над элементами записи можно выполнять такие же действия, как и над переменными. Например, порядковому номеру N записи В можно присвоить значение 1: B.N:=1; или найти сумму трех оценок: S:= В.Оценка[1] + В.Оценка[2] + В.Оценка[3], ввести значение Ф.И.О.: Readln(В.ФИО).

Пример.

Вычислить средний балл по каждому из трех студентов (в примере - по Андрееву).

program p12_2;

type vedomoct= record

n:integer;

FIO:string[20];

otmetka:array[1..3]of integer;

end;

var b:array [1..3]of vedomoct;

cr:real;

begin

b[1].n:=1;b[1].fio:='Андреев';b[1].otmetka[1]:=5;b[1].otmetka[2]:=3;

b[1].otmetka[3]:=4;

cr:=b[1].otmetka[1]+b[1].otmetka[2]+b[1].otmetka[3];

write('Средний балл Андреева = ',(cr/3):2:0);

readln;

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: