1. Описати базовий клас Елемент.
Закриті поля:
· ім'я елементу (рядок символів);
· кількість входів елементу;
· кількість виходів елементу.
Методи:
· конструктор класу без параметрів;
· конструктор, який задає ім'я і встановлює рівним 1 кількість входів і виходів;
· конструктор, який задає им’я значення всіх полів елементу.
Властивості:
· ім'я елементу (тільки читання);
· кількість входів елементу;
· кількість виходів елементу.
2. На основі класу Елемент описати похідний клас Комбінаційний, такий, що є комбінаційним елементом (двійковий вентиль), який може мати декілька входів і один вихід.
Поле - масив значень входів.
Методи:
· конструктори;
· метод, який задає значення на входах екземпляра класу;
· метод, що дозволяє опитувати стан окремого входу екземпляра класу;
· метод, що обчислює значення виходу (по варіанту завдання).
3. На основі класу Елемент описати похідний клас Пам'ять, що є тригером. Тригер має входи, відповідні типу тригера (див. далі варіант завдання), і входи установки і скидання. Всі тригери вважаються за синхронні, сам синхровхід до складу тригера не включається.
Поля:
· масив значень входів об'єкту класу, в масиві враховуються всі входи (що управляють і інформаційні);
· перебування на прямому виході тригера;
· перебування на інверсному виході тригера.
Методи:
· конструктор (за умовчанням скидає екземпляр класу);
· конструктор копіювання;
· метод, який задає значення на входах екземпляра класу;
· методи, що дозволяють опитувати стани окремого входу екземпляра класу;
· метод, що обчислює стан екземпляра класу (по варіанту завдання) залежно від поточного перебування і значень на входах;
· метод, для перевантаження операції = = .
4 . Створити клас Регістр, використовуючи клас Пам'ять як вкладений клас.
Поля:
· стан входу “Скидання” - один для екземпляра класу;
· стан входу “Установка” - один для екземпляра класу;
· масив типу Пам'ять заданої у варіанті розмірності;
· масив (масиви), що містить значення на відповідних входах елементів масиву типу Пам'ять.
Методи:
· метод, що задає значення на входах екземпляра класу;
· метод, що дозволяє опитувати стан окремого виходу екземпляра класу;
· метод, що обчислює значення нового стану екземпляра класу.
Всі поля класів Елемент, Комбінаційний і Пам'ять мають бути описані з ключовим словом рrivаtе.
У завданні перераховані тільки обов'язкові члени і методи класу. Можна задавати додаткові члени і методи, якщо вони не відміняють обов'язкові і забезпечують додаткові зручності при роботі з даними класами, наприклад, описати функції обчислення виходу/стану як віртуальні.
5. Для перевірки функціонування створених класів написати програму, що використовує ці класи. У програмі мають бути продемонстровані всі властивості створених класів.
Конкретний тип комбінаційного елементу, тип тригера і розрядність регістра вибираються відповідно до варіанту завдання:
Варіант
| Комбінаційний елемент
| Число входів
| Тригер
| Розрядність регістра
|
| И-НЕ
|
| RS
|
|
| ИЛИ
|
| RST
|
|
| МОД2-НЕ
|
| D
|
|
| И
|
| Т
|
|
| ИЛИ-НЕ
|
| V
|
|
| И
|
| RS
|
|
| ИЛИ-НЕ
|
| JK
|
|
| МОД2
|
| D
|
|
| И
|
| Т
|
|
| ИЛИ
|
| JK
|
|
| И-НЕ
|
| RS
|
|
| ИЛИ-НЕ
|
| RST
|
|
| МОД2
|
| D
|
|
| МОД2-НЕ
|
| Т
|
|
| ИЛИ-НЕ
|
| V
|
|
| И
|
| JK
|
|
| И-НЕ
|
| RS
|
|
| ИЛИ
|
| Т
|
|
| МОД2
|
| JK
|
|
| МОД2-НЕ
|
| V
|
|