Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
на печать.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
103 Кб
Скачать
☆

Операции над множествами:

  • Отношения (=,<>,>=,<=)

[1,2,3,4]=[4,3,2,1] - TRUE

[1..3]=[1,2,3] – TRUE

[1,2,3]<>[4,3,2,1] – TRUE

[1..3]<>[1..5] – TRUE

[1,2,3,4]>=[1,2] – TRUE

[1..3]>=[1..2] – TRUE

[1,2] <=[1,2,3,4]– TRUE

  • Объединение множеств (+) – множество, состоящее из элементов обоих множеств

[1,2,3]+[1,4,5]=[1,2,3,4,5]

[‘a’..’d’]+[‘e’..’z’]=[‘a’..’z’]

  • Пересечение множеств (*) – множество, состоящее из элементов одновременно входящих множеств

[1,2,3]*[1,2,5,6,7]=[1,2]

[‘a’..’z’]*[‘b’..’r’]=[‘b’..’r’]

  • Разность множеств (-) – множество, которое содержит элементы первого множества, не входящие во второе множество

[1,2,3,4]-[1,3,4]=[2]

[‘a’..’z’]-[‘d’..’z’]=[‘a’..’c’]

  • Проверка принадлежности множеству

2 in [1,2,3] – TRUE

‘a’ in [‘b’..’z’] – FALSE

Добавить новый элемент во множество можно следующими способами:

      • При помощи операции объединения a:=a+[5]

      • При помощи процедуры include(m,a), где m – множество, a-переменная.

include(a.5)

Исключить элемент из множества можно следующими способами:

      • a:=a-[5]

      • При помощи процедуры exclude(m,a), где m – множество, a-переменная.

exclude(a.5)

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

program MnStr;

uses crt;

var m : set of char;

s : string;

i : byte;

begin

clrscr;

write('Строка: ');

readln(s);

m :=[];

i := 1;

while i <= length(s) do

if s[i] in m then delete(s, i, 1)

else begin m:=m+[s[i]]; i := i + 1 end;

writeln(s);

readkey;

end.

  1. Определение типа запись. Правила работы с записями

Запись – это структура данных, состоящая из фиксированного числа разнотипных компонентов, называемых полями записи.

Задать тип можно следующим образом:

Type Anketa1=Record

FIO:String[50];

Pol:Char;

Dat:String[6];

Adres:String[50];

Curs:1..5;

Grip:1..10;

Strip:Real;

End;

Var Student,Student1:Anketa1;

Поля записи могут иметь любой тип, в частности сами могут быть записями.

В программе могут использоваться массивы записей.

Например: Var Student:Array[1..10]of Anketa1;

Можно определить константу типа запись, определив значение каждого из полей.

Например: Const St:Anketa1=(FIO:’Иванов’, Pol:’м’, и т.д);

К каждому элементу записи можно обратиться следующим образом: <имя переменной>.<имя поля>

Student.fio;

Обращение к записи в целом, а не только к ее отдельным элементам, допускается только в операторе присваивания, если они одинакового типа: Student:=Student1;

Однократно присваивать значение удобно при помощи обычного оператора присваивания Student.curs:=4

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

With <переменная типа запись> do <оператор>

Так же в Pascal можно описать тип запись, содержащий несколько вариантов структуры. Записи такого типа называются записями с вариантами, они являются средством объединения похожих, но не идентичных по форме записей.

Пример: В массиве хранятся данные об учениках класса: фамилия, имя, отчество, адрес (улица, дом, квартира) и домашний телефон (если есть). Вывести список учеников, до которых нельзя дозвониться.