Kombik.Cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Laba2_3_var_4
{
//-------Задание 2 класс - комбинационный элемент------------------------
class Kombik : Element
{
//------------1---------------------------------
private byte[] menter;//значение входов
//------------------------2----------------------
//конструктор инициализирующий массив
public Kombik(string name, int enter)
: base(name, enter)
{
menter = new byte[Enter];
}
//метод устанавливающий значение на входах
public bool SetEnter(byte ch, byte pos)
{
try
{
menter[pos] = ch;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return false;
}
return true;
}
//метод выдающий значение на входах
public object GetEnter(byte pos)
{
try
{
return menter[pos];
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
return null;
}
}
//метод вычисляющий значение на выходе (логическая "И")
public byte GetQuit()
{
byte i = 0, p=1;
do
{
if (menter[i] == 0)
{ p = 0; break; }
i++;
}
while (i != Enter);
return p;
}
//реализация интерфейса IComparable
public override int CompareTo(object obj)
{
if (GetType() == obj.GetType())
{
Kombik temp = (Kombik)obj;
if (this.menter == temp.menter)
return 0;
else return -1;
}
else
{
throw new ArgumentException("Object is not a ");
}
}
//переопределение метода equals
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
return this == (Kombik)obj;
else return false;
}
//переопределение оператора ==
public static bool operator ==(Kombik x, Kombik y)
{
if (y.GetType() == x.GetType())
return x.menter == y.menter;
else return false;
}
//переопределение оператора !=
public static bool operator !=(Kombik x, Kombik y)
{
if (y.GetType() == x.GetType())
return !(x == y);
else return false;
}
//
public override int GetHashCode()
{
return menter.GetHashCode();
}
}}
ЭКРАННЫЕ ФОРМЫ
Приложение Б
(обязательное)
Рисунок Б.1 – Главной меню приложения
Рисунок Б.2 – Ввод размерности регистра
Рисунок Б.3 – меню приложения
Рисунок Б.4 – Ввод значения на входах тригеров
Рисунок Б.5 – вывод текущих значений на выходах регистра
Рисунок Б.6 – Изменение размерности регистра
Рисунок Б.7 –Сброс значения регистра
Рисунок Б.8 – Вывод значения с определенного выхода
Рисунок Б.9 – Вычисление комбинационного элемента