Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Приклад 19.3

Приклад19.2.

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

Приклад 19.1

Перетин множин

Операція записується А*В. Результатом виконання операції є множина, що складається з елементів, які одночасно входять до кожної з двох множин.

Приклади операції перетину множин

Type charset= set of char;

Var c1,c2,c3,c4: charset;

...................

c1:=[ ‘a’,’x’,’e’];

c2:=[ ‘o’,’x’];

c3:=c1*c2;

с4:=c1*[ ‘o’,’n’];

 

Множина c3 складиметься з елемента [’x’].

Множина с4 буде порожня, тому що множини не мають однакових елементів.

Різниця множин

Операція записується А-В. Результатом виконання операції є множина, що складається з елементів першої множини, які не зустрілися у другій множині.

Приклади операції різниці множин

c1:=[ ‘a’,’t’,’e’];

c2:=c1-[ ’e’];

c3:=c1-[ ‘s’,’t’,’e’];

Множина c2 складиметься з елементів

[ ‘a’,’t’];

Множина c3 складиметься з елемента

[ ‘a’].

Порівняння множин

Множини у Паскалі можна порівнювати, використовуючи операції відношення.

Дві множини А і В рівні, якщо кожен елемент множини А є в той же час елементом множини В і навпаки.

Множина А є підмножиною множини В, якщо кожен елемент множини А присутній також і у множині В (А<=В або В>=А).

Логічна операція in

До множин може бути застосована логічна операція in, яка визначає чи належить даний елемент множині. Ця операція має вигляд:

x in A

де х - ім’я змінної порядкового типу, а А - множина.

Приклади операції різниці множин

Для заданих множин

c1:=[‘a’,’x’,’e’]; c2:=[‘x’]; c3:=[‘a’..’z’];

Логічні вирази мають результат true.

c1<>c2

c1=[‘a’,’x’,’e’]

c1>=c2

c1<=c3

‘a’ in c1

‘f’ in c3

not (‘h’ in c2).

Метод “решето Ератосфена”. Надрукувати прості числа,що належать інтервалові [2,15]. Суть метода: знаходять перше ціле число більше за 1, це – 2 –просте число і видаляються всі числа кратні йому, потім 3 – просте число і видаляються всі числа кратні йому і т.д. Схему алгоритму представлено на рис. 19.1.

program metod_eratosfena;

uses crt;

const max=55;

var

pr,pr1:set of 0..max;

c,m:integer;

BEGIN

clrscr;

pr:=[2..max]; pr1:=[];

{pr – множина всіх цілих чисел;

pr1- множина простих чисел};

for c:=2 to max do

if c in pr then

begin pr1:=pr1+[c];{додаються прості числа};

for m:=1 to (max div c) do

pr:=pr-[c*m]; {віднімаються всі числа кратні с};

end;

writeln ('Прості числа');

for c:=2 to max do

if c in pr1 then

write(c,' ');

end.

prosti chysla

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53

pr=pr-[c·m]
Кінець  
Вивед.c
cÎpr1
F
T
pr1=pr1+[c]
m=1,max\c
T
cÎpr
c=2,max
Початок  
pr= [2..max] pr=[ ]
c=2,max
F

 


Задано текст, що складається з цифр та спеціальних символів. Підрахувати кількість цифр у тексті, використовуючи множини. Схему алгоритму представлено на рис. 19.2.

program lab4;

uses crt;

var

c:char;

k:integer;

BEGIN

clrscr;

k:=0;

repeat

read(c);

if not (c in ['.',',','*','/','-','+']) then

begin

if c in ['0'..'9'] then k:=k+1;

write(c);

end;

until EOLn;

writeln(' цифр ',K);

END.

Результат

1+2.+3*5-9

12359 tcifr 5

Кінець
Вивед. k
Початок
k= 0  
cÏ[симв]
k=k+1
Вивед.c
cÎ[‘0’..’9’]
Введ.c
EOLN
F
F
T
T
T
F

 

 


Задано

type name=(Jon,Leslee,Ann,Bob,Jack);

gosti =set of name;

grup=array[name] of gosti;

Скласти програму, яка визначатиме скiльки серед людей масиву a1 таких, що були в гостях у всiх iнших.

program Byl_v_gostjah_u_vsih;

uses crt;

type

name=(Jon,Leslee,Ann,Bob,Jack);

gosti=set of name;

grup=array[name] of string;

grup1=array[name] of gosti;

const a:grup=(‘Jon’,’Leslee’,’Ann’,’Bob’,’Jack’); {Допомiжний масив, який використовується для друкування результатiв програми, так як елементи множини не можна вводити i виводити за допомогою iнструкцiй Read та Write }

 

var a1:grup1;

n,i:name;

k:integer;

begin clrscr; a1[Jon]:=[Leslee,Ann Bob,Jack];{Множина людей, якi були гостями Jon}

a1[Leslee]:=[Jon,Ann,Bob,Jack];{Множина людей, якi були гостями Leslee}

a1[Ann]:=[Jon,Bob,Jack];{Множина людей, якi були гостями Ann}

a1[Bob]:=[Jon, Leslee, Ann,Jack];{Множина людей, якi були гостями Bob}

a1[Jack]:=[Leslee, Ann,Bob];{Множина людей, якi були гостями Jack}

For n:=Jon to Jack do

begin k:=0;

for i:=Jon to Jack do begin

if n in a1[ i ] then k:=k+1; end;

if k=ord(i)then

writeln(a[n],’Був в гостях у всiх ‘);

end;

end.

<== предыдущая лекция | следующая лекция ==>
Приклад даних типу множина | Приклад 25.1
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 317; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.