.: Menu :.
Home
Реферати
Книги
Конспекти уроків
Виховні заходи
Зразки документів
Реферати партнерів
Завантаження
Завантажити
Електронні книги


????????...

 
��������...
Множини. Опис множин, операції над множинами 


Множини. Опис множин, операції над множинами

Поняття множнин в мові ПАСКАЛЬ ґрунтується на математичному уявленні про множини:  це обмежена сукупність різних елементів. Для по¬бу¬до¬ви конкретного множинного типу використовується, перелічуваний чи ін¬тер¬вальний тип даних.  Тип елементів, з яких складається множина, називається ба¬зо¬вим типом.
Множинний тип  описується  за  допомогою  службових слів Set of, наприклад:
type  M= Set of B;
Тут М – множинний тип, B – базовий тип.
Приклад опису змінної множинного типу:
Type    M= Set of 'A'..'D';
Var    MS: M;
Приналежність змінних до множинного типу може бути визначена прямо в розділі опису змінних:
var C: Set of 0..7;
Константи множинного  типу  записуються  у виді вкладеної в квадратні дужки по¬слі-дов¬ності елементів чи інтервалів базового типу, розділених комами, наприклад:  ['A', 'C'], [0, 2, 7], [3, 7, 11..14].
Константа виду [ ] означає порожню підмножину.
Множина містить у собі набір елементів базового типу, усі підмножини даної множини, а також порожня підмножину. Якщо базовий тип, на якому будується множина, має K елементів, то число підмножин, що входять у цю множину, дорівнює 2k . Нехай є змінна Р інтервального типу: var P: 1..3;
Ця змінна може приймати три різних значення – або 1, 2, або 3.
Змінна Т множинного типу  var T: Set of 1..3; може приймати вісьмох різних значень: 
[ ] [1] [2][3][1,2][1,3][2,3] [1,2,3]
Порядок перерахування елементів базового типу в константах безладний.
Значення змінної множинного типу  може бути задане конструкцією виду [T], де T – змін¬на базового типу.
До змінного і константам множинного типу  застосовні  операції присвоювання(:=), об'єд¬нання(+), перетин(*) і різниця (-):
['A','B'] + ['A','D']     дасть  ['A','B','D']
['A'] * ['A','B','C']     дасть ['A']
['A','B','C'] - ['A','B'] дасть  ['C'].
Результат виконання  цих  операцій є величина множинного типу.
До множинних величин застосовні операції: тотожність (=), нетотожність (<>), міс¬тить-ся  в (<=), містить (>=).  Результат виконання цих операцій має логічний тип, наприклад:
['А','В'] = ['А','С']  дасть FALSE
['А','В']<>['А','С'] дасть TRUE
['В']<=['В','С']     дасть TRUE
['С','D']>=['А']     дасть FALSE.
Крім цих операцій для роботи з величинами множинного типу в мові ПАСКАЛЬ ви¬ко-ри¬стовується операція in – приналежність елемента, що перевіряється, базового типу, стоїть лі¬во¬руч від знака операції, до множини, що стоїть праворуч від знака операції. Результат ви-ко¬нан¬ня цієї операції – булевий. Операція перевірки належності елемента множині часто ви-ко¬ристовується замість операцій відношень, наприклад:

A in ['А', 'В'] дасть  TRUE,
2 in [1, 3, 6]  дасть  FALSE.

При використанні в програмах даних множинного типу виконання операцій відбувається над бітовими рядками даних.  Кожному значенню множинного типу в пам'яті ЕОМ відповідає один двійковий розряд. Наприклад, множина
['А','В','С','D'] представлена в пам'яті ЕОМ бітовим рядком 1 1 1 1.
Підмножини цієї множини представлені рядками:
['A','B','D']   1 1 0 1
['B','C']       0 1 1 0
['D']           0 0 0 1
Величини множинного типу не можуть бути елементами виведення.
У кожній  конкретній  реалізації транслятора з мови ПАСКАЛЬ кількість елементів ба-зо¬вого типу,  на якому будується множина, обмежена. У  TURBO PASCAL кількість базових еле¬ментів не повинна перевищувати 256.
Ініціалізація величин  множинного  типу виробляється за допомогою типізованих кон-стант:
const  seLit: Set of 'A'..'D'= [];
Проілюструємо застосування  даних множинного типу на прикладі.
Приклад. Скласти програму, що виконує і виводить на екран дисплея набори ви¬пад¬ко-вих чисел для гри в "Спортлото 5 з 36".
Для заповнення кожної картки спортлото необхідно одержати набір з п'яти випадкових ч謬сел. До цих чисел пред'являються дві вимоги:
–    числа повинні знаходитися в діапазоні 1..36;
–    числа не повинні повторюватися.
Program Lotto;
Var nb, k: Set of 1..36;
kol, l, i, n: Integer;
begin
Randomize;
WriteLn('Задайте kol');
ReadLn(kol);
nb:=[1..36];
for i:=1 to kol do
begin
k:=[];
for l:=1 to 5 do
begin
repeat
n:=Random(36)
until (n in nb) and not (n in k);
k:=k+[n]; Write(n:4)
end;
WriteLn
End
end.
ЗАВДАННЯ ДО РОЗВ’ЯЗАННЯ
1.    З рядка тексту вилучити символи r,m,d,w;
2.    Визначити чи виграли картки „Спортлото”, якщо вони подані масивом
array [1..5,1..20] of integer;
3.    З рядка тексту відібрати голосні літери.
4.    З масиву цілих чисел відібрати прості сформувати з них множину.
5.    З масиву дійсчних чисел відібрати цілі сформувати з них множину.

Search:
????????...

малюнки Осені

розширення exe

Тести інтелектуальних можливостей

Вплив реклами на мовлення українців

термін українське означення

закріпачення селян на українських землях

поняття про гаметофіти та спорофіти фото

центр правильного трикутника

вязання шпицями

історія та розвиток комп ютерної техніки



?????????? ????????? ????
   
Created by Yura Pagor, 2007-2010