З послідовним прийомом і видачею інформації - зсувні регістри. З паралельним прийомом і видачею інформації - паралельні регістри. У даній роботі використовується зсувний регістр, який являє собою паралельно з'єднану ланцюжок тригерів.
інкапсуляція цифровий елемент програма
Рис. 4. схема регістра.
2. Конструювання класів
Виходячи із завдання, нам потрібно створити 4 класу, пов'язаних між собою відносинами. Для зручності написання програми, будуть дані класам розмовляючі імена.
Відповідно у нас буде клас ELEMENT. Це базовий клас і єдина його обов'язок - працювати з його полем ім'я елемента" (name), а точніше змінювати його. Це модифікатор. Також клас має конструктор для створення об'єктів і деструктор для їх знищення. Крім цього, є поля зберігають в собі кількість входів і виходів елемента.
Поля Класу:
string name;- Містить в собі ім'я елемента
int AmountInput;- Число входів елемента
int AmountOutput;- Число виходів елемента
Методи Класу:
string GetName () - повертає ім'я об'єкта
int GetIn () - повертає кількість входів об'ектаGetOut () - повертає кількість виходів об'єкта
~ ELEMENT () - деструктор () - конструктор за замовчуванням
ELEMENT (string S, int K1, int K2) - конструктор зі параметраміConfigName (string S) - модифікатор імені об'ектаConfigElement (string S, int K1, int K2) - модифікатор об'єкта
Спадкоємцем класу ELEMENT виступає клас KOMBIN. Його обов'язки: працювати з вхідними значеннями - задавати, отримувати їх; працювати з вихідним значенням - генерувати його за допомогою обчислення. Клас має модифікатор, селектор, конструктор, конструктор копіювання і деструктор. Клас має безліч входів і один вихід.
Поля Класу:
int * Input;- Цілочисельний масив покажчиків на значення на входах елемента.
Методи Класу:
void SetParametres () - ф-я дозволяє задавати значення а входах елемента.
int Output () - повертає сигнал на виході об'єкта
~ KOMBIN () - деструктор () - конструктор за замовчуванням
KOMBIN (string name, int K): ELEMENT (name, K, 1) - конструктор зі параметраміConfigName (string S) - модифікатор імені об'ектаConfigElement (string S, int K1, int K2) - модифікатор об'єкта
Ще одним спадкоємцем класу ELEMENT є клас MEMORY. У його обов'язки входить: працювати з вхідними значеннями, отримувати їх; визначати стан екземпляра класу в поточний момент часу.
У класі є модифікатор, селектор, конструктор, конструктор копіювання, деструктор.
Має входи, відповідні типу JK тригера, входи установки і скидання і 2 виходи - прямий і інверсний.
Поля Класу: С - целочисленная змінна зберігає в собі значення попереднього
синхро-імпульсу.
int Input [5] - цілочисельний масив складається з 5 елементів що зберігають у собі значення на входах JK тригера.
int Quas - вихідний сигнал тригера.
int Revs - інверсний сигнал тригера.
Методи Класу: calculations () - функція займається обчислення вихідного сігнала.KoyJot () - функція обчислює співвідношення між K і J.
MEMORY () - конструктор за замовчуванням.
MEMORY (MEMORY ob, string name): ELEMENT (name, 5,2) - конструктор копіювання. (string name): ELEMENT (name, 5,2) - конструктор з параметрами. OutPut () повертає значення сигнал на виході об'єкта.
int ReJ () повертає значення на вхідному сигналі J об'єкта.
int ReK () - повертає значення на вхідному сигналі K об'єкта.
int ReMC () - повертає значення на минулого синхро-імпульсу.
int ReSS () - повертає значення на вхідному сигналі синхро-імпульсу об'єкта.
int ReS () повертає значення на вхідному сигналі S об'єкта.
int ReR () повертає значення на вхідному сигналі R об'єкта.
int RevsOutPut () - повертає значення інверсного виходу елемента.
void SetDirectParameters () - задає параметри вхідних сигналів.
void SetOJKDirectParameters (int a, int b, int ss) - аналогічно попередньому void SetORSDirectParameters (int a, int b) - аналогічно попередньому int SieRa () - функція обчислює співвідношення мі...