Множество - структурированный тип данных презентация

Содержание

Множеством (SET) называется совокупность однотипных элементов, рассматриваемых как единое целое. Каждый объект в множестве называется элементом множества. Элементы множества не пронумерованы и не упорядочены. Множество должно состоять из порядковых элементов,

Слайд 1Множества
Множество - это структурированный тип данных


Слайд 2 Множеством (SET) называется совокупность однотипных элементов, рассматриваемых как единое целое.
Каждый

объект в множестве называется элементом множества.
Элементы множества не пронумерованы и не упорядочены. Множество должно состоять из порядковых элементов, и их число не должно превышать 255.
Действия могут выполняться только над множеством в целом. С отдельным элементом множества нельзя производить какие-либо действия.

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


Слайд 3Конструктор множества
Значения множества задаются с помощью конструктора множества
Пример задания множеств с

помощью конструктора:
[ 3, 4, 7, 9, 12] – множество из пяти целых чисел;
[ 1 . . 100 ] –множество целых чисел от 1 до 100;
[ ‘a’, ‘b’, ‘c’ ] – множество из трех символов a, b, c;
[ ‘ a ’ . . ‘ z ’ , ‘ ? ’ , ‘ ! ‘ ] – множество из всех строчных латинских букв, а также знаков ? и !.
Символ [] обозначает пустое множество, не содержащее никаких элементов.


Слайд 4Не имеет значения порядок записи элементов множества внутри конструктора.
Например,
[ 1,

2, 3 ]и [ 3, 2, 1 ] – эквивалентные множества.

Каждый элемент множества учитывается только 1 раз.
Например,
[ 1, 2, 3, 4, 2, 3, 4, 5] и [1..5] эквивалентны.


Слайд 5Пример описания переменных множественного типа:
Var : Set Of
Например:
A,

D : Set Of Byte ;
B : Set Of ‘a’ . . ‘z’ ;
C : Set Of Boolean ;
Set (с англ. набор, множество, совокупность, ряд )

Слайд 6Множественная переменная получает значение в результате выполнения оператора присваивания следующего формата:

переменная> : = <множественное выражение>

Например:
А := [ 50, 100, 150, 200] ;
B := [ ‘ m ’, ‘ n ’, ‘ k ’] ;
C := [ True, False] ;
D := A;

Т.е. нельзя вводить значение в множественную переменную оператором ввода и выводить оператором вывода.



Слайд 7Операции над множествами
Пересечение: Те и только те элементы, которые принадлежат одновременно

А и В
Объединение: Те и только те элементы, которые принадлежат хотя бы одному из множеств А и В
Разность: Те и только те элементы множества А, которые НЕ принадлежат В


Слайд 8Объединением двух множеств А и В называется множество, состоящее из элементов

, входящих хотя бы в одно из множеств А или В
Пример:
[ 1, 2, 3, 4] + [ 3, 4, 5, 6] [ 1, 2, 3, 4, 5, 6]

Разностью двух множеств А и В называется множество, состоящее из элементов множеств А, не входящих в множество В.
Пример:
[ 1, 2, 3, 4] - [ 3, 4, 5, 6] [ 1, 2]

Пересечением двух множеств А и В называется множество, состоящее из элементов , одновременно входящих и в множество А, и в множество В.
Пример:
[ 1, 2, 3, 4] * [ 3, 4, 5, 6] [ 3, 4 ]


Слайд 9Операции отношения над множествами
Результат – логическая величина True или False


Слайд 10Операции вхождения устанавливает связь между множеством и величиной, тип которой совпадает

с базовым типом множества
Операция вхождения записывается в виде:
X In M
где М – множество;
Х - величина данного типа.


Слайд 11Задача
Опишите множество М[1..25]. Сделайте его пустым. Заполните множество целыми числами с

клавиатуры 10 элементами.

program Vvod_Mno;
var
M : set of 1..25;
X, I : integer; { I – порядковый номер элемента множества, Х – элемент множества}
begin
M := []; {M - пустое множество}
for I:= 1 to 10 do
begin
Write('Введите ',I,' -й элемент множества ');
Readln(X);
M:= M+[X];
end;
Writeln (M);
end.

Ответ:
Введите 1 -й элемент множества 3
Введите 2 -й элемент множества 3
Введите 3 -й элемент множества 2
Введите 4 -й элемент множества 4
Введите 5 -й элемент множества 5
Полученное множество {5,4,3,2}


Слайд 12program Mn;
var
d1, d2, d3, d : set of 0..9;
begin

d1 := [2,4,6,8];
d2 := [0..3,5];
d3 := [1,3,5,7,9];
d := d1 + d2;
writeln(d);
d := d + d3;
writeln(d);
d := d - d2;
writeln(d);
d := d * d1;
writeln(d);
end.

Задача
Даны множества :
d1 - заполнено четными числами 2, 4, 6, 8;
d2 – заполнено числами 0, 1,2,3,5;
d3 – заполнено нечетными числами 1, 3, 5, 7, 9
После этого над множествами выполнены операции объединения, разности и пересечения

Ответ:
[8,6,5,4,3,2,1,0]
[9,8,7,6,5,4,3,2,1,0]
[6,4,9,8,7]
[6,4,8]


Слайд 13Задача
Требуется написать программу, которая в зависимости от числа (количества лет)добавляет правильное

окончание. (10 лет; 21 год; 32 года)

Алгоритм решения задачи: 
Слово "год" добавляется ко всем числам, последняя (или единственная) цифра которых равна 1. "Года" для оканчивающихся на 2, 3, 4. Во всех остальных случаях используется слово "лет". Числа 11, 12, 13, 14 (или имеющие такой остаток от деления на 100) имеют "окончание" лет.
Для того, чтобы определить, на какую цифру заканчивается число, надо найти остаток от его деления на 10.


Слайд 14Задача
Program Mn_1;
var let, let11, god, goda: set

of byte;
age, n: byte;
begin
let := [0,5,6,7,8,9];
let11 := [11,12,13,14];
god := [1]; //goda := [2,3,4];
write('Введите количество лет: ');
readln(age);
if (age in let11) or (age mod 100 in let11) then {переменная age имеет вхождение во множество let11 или …..}
writeln(age, ' лет')
else begin
n := age mod 10;
if n in let then
writeln(age, ' лет')
else
if n in god then
writeln(age, ' год')
else
writeln(age, ' года ')
end; readln; end.

Слайд 15Задача Mn_1. Дана символьная строка. Определите в ней количество знаков препинания

(. - , * : ! ?).
Program Mn_1;
var S: String;
i, k: Byte;
begin
readln (S);
k:=0;
for i:= 1 to Length (S) do
if S[i] in ['.', '-', ',', ';',':','!','?'] {если S [i] элемент строки имеет вхождение во множество…}
then k := k+1;
writeln ('Число знаков препинания равно ', k,'.');
end.
Ответ:
Море - это солнце, счастье, здоровье! Правда?
Число знаков препинания равно 5.

Слайд 16program Mn_;
var m : set of char;
s : string;

i : byte;
begin
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);
end.

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

Задача

Ответ. Введите строку: Основы алгоритмизации и программирования
Основы алгритмзцпя


Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика