Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практичні алгоритмізація дл студ.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
6.12 Mб
Скачать

Лабораторна робота №12. Тема: Використання множин.

Мета: Навчитись застосовувати на практиці використання множин в мові програмування паскаль

Теоретичні відомості

Множинний тип даних нагадує тип даних, що перераховує. В той же час, множина - набір елементів, не організованих в порядку дотримання. У математиці множина - будь-яка сукупність елементів довільної природи. Поняття великої кількості в програмуванні значно вужчий математичного поняття.

Визначення. Під множиною в Паскале розуміється кінцева сукупність елементів, що належать деякому базовому типу.

Як базові типи можуть використовуватися: типи даних, що перераховують, символьний і байтовий типи або діапазонні типи на їх основі.

Такі обмеження пов'язані з формою представлення великої кількості в мові і можуть бути зведені до того, що функція Ord для використовуваного базового типу має бути в межах від 0 до 255.

Множина має зарезервоване слово set of і вводиться наступним описом

Type

< ім'я типу > = set of < ім'я базового типу >;

Var

< ідентифікатор,.. >:< ім'я типу >;

Розглянете приклади опису великих кількостей :

Type

SetByte = set of byte; {множина 1, визначене над типом byte}

SetChisla = set of 10 .. 20; {множина 2, визначене в діапазоні від 10 до 20

Symbol = set of char; {множина, визначена на безлічі символів}

Month = (January, February, March, April, May, June, July, August, September, October, November, December);

Season: set of Month; {тип великої кількості, визначений на базі типу, що перераховує, Month}

Var

Letter, Digits, Sign : Symbol {множествa, визначені над символьним типом}

Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season;

Index: SetChisla=[12, 15, 17];

Operation: set of (Plus, Minus, Mult, Divid);

Param: set of 0.9=[0, 2, 4, 6, 8];

Для змінних типу великої кількості в пам'яті відводиться по 1 біту під кожне можливе значення базового типу. Так, під змінні Letter, Digits, Sign буде відведене по 256/8=32 байти. Для змінної Winter, базовий тип якої (Month) має 12 елементів, потрібно 2 байти, причому другою використовується тільки наполовину. Якщо множина містить якийсь елемент, то пов'язаний з ним біт має значення 1, якщо немає - 0.

Хід роботи

Завдання 1. Надрукувати малi голоснi латинськi лiтери, якi зустрiчаються в текстi в алфавітному порядку.

Program pr1;

Type Liter=set of 'a'..'z';

Var Golosni:Liter; t:string; i,n:integer; c:char;

Begin

Write('Введiть текст'); ReadLn(t);

Golosni:=[];

n:=Length(t);

for i:=1 to n do

if t[i] in['a','o','i','e','u','y'] then

Golosni:=Golosni+[t[i]];

WriteLn('У текст входять голоснi лiтери');

for c:='a' to 'z' do

if c in Golosni then write(c,' ');

End.

Результати роботи програми:

Введiть текст Computer

У текст входять голоснi лiтери

e o u

Завдання 2. Надрукувати цифри 6, 3, 2, 9, якщо вони зустрiчаються в текстi в порядку вказаному в умові задачі.

Написати висновок та оформити звіт по роботі. Закріпити його скріншотими.