Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга_мат_3_new1.doc
Скачиваний:
29
Добавлен:
17.02.2016
Размер:
1.19 Mб
Скачать

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

Поняття множини є одним із основних, фундаментальних понять математики. Існує і окремий розділ математики, який так і називається – теорія множин. У мові Паскаль множина – це довільна сукупність значень перерахованого типу. Тип множини описується наступним чином:

type < ім’я типу > = set of < тип елементів >

Але одразу відмітимо, що кількість елементів множини у мові Паскаль не може бути більшою, ніж 256. Це пов’язано з тим, що розробники компіляторів мови Паскаль наклали саме таке обмеження на дане поняття. Проте, навіть не зважаючи на це обмеження, основні властивості множин і операції над ними можна зручно використовувати при розв’язуванні багатьох задач.

Вкажемо, що при виконанні операцій над множинами у Паскалі діють наступні операції:

  • in – належність елементу множині. Звичайно використовують при перевірці умови належності множині, наприклад, нехай задано множину цифр:

cifra : set of char;

а в самій програмі на початку цю множину конкретно визначено:

cifra := [‘0’..‘9’];

Тоді перевірку належності введеного символу ch типу char на предмет належності множині цифр можна оформити як:

….

ch := readkey;

if ch in cifra then write(‘ Належить цифрам ’);

...

  • + – об’єднання множин. Якщо, наприклад множина А={1,2,3,4,5}, a B={4,5,6,7}, то в результаті виконання операції С=А+В ми отримаємо С={1,2,3,4,5,6,7}.

  • – – різниця множин. Якщо, наприклад множина А={1,2,3,4,5}, a B={4,5,6,7}, то в результаті виконання операції С=А–В ми отримаємо С={1,2,3}.

  • * – переріз множин. Якщо, наприклад множина А={1,2,3,4,5}, a B={4,5,6,7}, то в результаті виконання операції С=А*В ми отримаємо С={4,5}.

Особливості роботи з множинами

Приклад 14. Скласти програму, яка знаходить всі числа, що діляться на 6, а також всі числа що діляться на 2 або на 3.

Розв’язання: Одразу домовимось про обмеження, які ми накладемо на нашу програму. Оскільки метою є демонстрація можливостей роботи з множинами і кількість елементів обмежена типом byte, то ми і будемо шукати всі числа згаданого типу. Звичайно, задачу можна розв’язати іншим шляхом, не використовуючи поняття множин і в ній знаходити всі числа, що задовольняють умову задачі з заданого проміжку. Пропонуємо вам самостійно знайти інші способи розв’язання. Ми ж продемонструємо методи роботи з множинами.

Program p6_23;

uses crt;

Const N = 255;

var N2,N3,N6,N23 : set of byte; { множини задали як змінні }

k : integer;

begin

clrscr;

N2 := []; { Задаємо пусту множину чисел, що діляться на 2}

N3 := []; { і пусту множину чисел, що діляться на 3 }

for k :=1 to N do { в циклі розглядаємо всі числа проміжку }

begin { і якщо вони діляться на 2 або на 3 то }

{ заносимо у множину N2, якщо діляться на 2 }

if k mod 2 = 0 then N2 := N2 + [k];

{ заносимо у множину N3, якщо діляться на 3 }

if k mod 3 = 0 then N3 := N3 + [k];

end;

N6 := N2 * N3; { перетин множин – діляться на 6 }

N23 := N2 + N3; { об’єднання множин – діляться і на 2 і на 3 }

writeln(' На  6 діляться: '); { ну а далі все зрозуміло... }

for k := 1 to N do if k in N6 then write(k:4);

writeln;

writeln(' На 2 або на 3діляться: ');

for k := 1 to N do if k in N23 then write(k:4);

writeln;

readln;

end.

Завдання

Словом вважають групу символів між двома пробілами.

  1. Дано рядок. Вилучити з нього усі слова, в запису яких є букви “а”, “у”, “е”.

  2. Дано рядок. Підрахувати кількість слів у рядку. Отримати та роздрукувати множину усіх символів, що зустрічаються у тексті.

  3. Дано рядок. Підрахувати кількість слів у рядку. Отримати та роздрукувати усі розділові знаки, які є у тексті.

  4. Дано рядок. Підрахувати кількість слів у рядку. Отримати та вивести на друк усі приголосні, що є у тексті.

  5. Дано рядок. Підрахувати кількість слів у рядку. Отримати та роздрукувати усі голосні, що є у тексті.

  6. Дано рядок. Вилучити усі слова, в яких зустрічається не більше двох різних літер.

  7. Дано рядок. Підрахувати кількість слів у рядку. Обчислити суму цифр, які зустрічаються у тексті.

  8. Дано рядок. Залишити у ньому лише ті слова, в яких літери не повторюються.

  9. Дано рядок. Підрахувати кількість слів у рядку та кількість голосних літер, що зустрічаються у тексті.

  10. Дано рядок. Підрахувати кількість слів у рядку та кількість приголосних літер і розділових знаків, що зустрічаються у тексті.

  11. Дано рядок. Підрахувати кількість слів у рядку та кількість голосних літер і цифр, що зустрічаються у тексті.

  12. Дано рядок. Підрахувати кількість слів у рядку та визначити, яких літер – голосних чи приголосних – більше зустрічається у тексті.

  13. Дано рядок. Надрукувати голосні літери, які входять в кожне слово рядка.

  14. Дано рядок. Надрукувати всі приголосні літери, які не входять в жодне слово рядка.

  15. Дано рядок. Надрукувати всі голосні літери, які входять більше ніж в одне слово рядка.

  16. Дано рядок. Надрукувати приголосні літери, які входять тільки в одне слово рядка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]