Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пахамович В.И., Бодюков Е.В., Павлов В.В.




ComEl.cs

Trigger.cs

Registr.cs

Element.cs

Program.cs

Fird

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Second

{

class Program

{

public static List<ComEl> CM = new List<ComEl>();

public static List<Trigger> TR = new List<Trigger>();

public static List<Registr> RG = new List<Registr>();

 

static void Main(string[] args)

{

RG.Add(new Registr());

RG.Add(new Registr());

RG.Add(new Registr());

TR.Add(new Trigger());

TR.Add(new Trigger());

TR.Add(new Trigger());

CM.Add(new ComEl(6));

char Key;

do

{

Console.Clear();

Console.WriteLine("\t\tЛабораторная работа № 2");

Console.WriteLine("\n1. Использование класса: \"Комбинационный элемент\" ");

Console.WriteLine("\n2. Использование класса: \"Память\" ");

Console.WriteLine("\n3. Использование класса: \"Регистр\" ");

Console.WriteLine("\n4. Выход из приложения");

Key = Console.ReadKey(true).KeyChar;

switch (Key)

{

case '1':

{

First();

break;

}

case '2':

{

Second();

break;

}

case '3':

{

Fird();

break;

}

}

}

while (Key!= '4');

}

// Реализация методов класса ComEl

public static void First()

{

//ComEl r = (ComEl)ArrElem[0];

char Key;

do

{

Console.Clear();

Console.WriteLine("\t\t\tКласс: \"Комбинационный элемент\"");

Console.WriteLine("\n1.Задать значения на входах.");

Console.WriteLine("\n2.Получить значение со входа.");

Console.WriteLine("\n3. Получить значение с выхода.");

Console.WriteLine("\n4. Вернуться в меню.");

Key = Console.ReadKey().KeyChar;

switch (Key)

{

case '1':

{

Console.Clear();

Console.WriteLine("Введите значения на входах в формате ХХХХХХ, (0 - false, 1 - true):\n");

String buf;

buf = Console.ReadLine();

bool[] tmp = new bool[CM[0].QtyInP];

try

{

for (int i = 0; i < CM[0].QtyInP; i++)

if (buf[i] == '0')

tmp[i] = false;

else tmp[i] = true;

if (CM[0].SetInp(tmp))

Console.WriteLine("Значения успешно установленны!");

else

 

Console.WriteLine("Ошибка при установки значений!");

Console.ReadKey();

}

catch (Exception e)

{

Console.WriteLine("Ошибка:" + e.Message);

}

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

break;

} // end case 1

case '2':

{

Console.Clear();

bool Error, Value;

do

{

Console.WriteLine("Введите номер входа(от 0 до " + (CM[0].QtyInP - 1).ToString() + "):");

String In = Console.ReadLine();

if (In.Length > 1)

Console.WriteLine("Неверная разрядность числа!");

else

try

{

int a = Convert.ToInt32(In);

Value = CM[0].GetValue(a, out Error);

Console.WriteLine("Значение на выходе " + a + ": " + Value);

}

catch (Exception e)

{

Console.WriteLine("Ошибка:" + e.Message);

}

} while (Console.ReadKey().Key!= ConsoleKey.Escape);

break;

}

case '3':

{

Console.Clear();

Console.WriteLine("Значение на выходе элемента(" + CM[0].NameP + "): " + CM[0].Result().ToString());

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

break;

}

 

}

}

while (Key!= '4');

 

} //End First

// Реализация методов класса Триггер(Память)

public static void Second()

{

char Key;

do

{

Console.Clear();

Console.WriteLine("\t\t\tКласс: \"Память\"");

Console.WriteLine("\n1.Задать значения на входах Т - триггера.");

Console.WriteLine("\n2.Получить значение со входа Т - триггера.");

Console.WriteLine("\n3. Получить значение с выхода Т - триггера.");

Console.WriteLine("\n4. Проверка метода Equals.");

Console.WriteLine("\n5. Вернуться в меню.");

Key = Console.ReadKey().KeyChar;

 

switch (Key)

{

case '1':

{

Console.Clear();

Console.WriteLine("Введите значение на входах в формате ХХ (0 - false, 1 - true;), \nпервый Х - значение на входе установки, второй Х - значение на входе сброса:");

string buf;

bool[] tmp2 = new bool[TR[0].QtyInP];

try

{

buf = Console.ReadLine();

for (int i = 0; i < TR[0].QtyInP; i++)

if (buf[i] == '0')

tmp2[i] = false;

else

tmp2[i] = true;

 

if (TR[0].SetValue(tmp2))

{

Console.WriteLine("Значения на входах успешно установленны!");

}

else

Console.WriteLine("Ошибка! Значения на входах не установленны!");

}//end try

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

}

Console.WriteLine("Для продолжения нажмите любую клавишу...");

break;

}

case '2':

{

Console.Clear();

bool Error, Value;

do

{

Console.WriteLine("Введите номер входа (0 - вход установки, 1 - вход сброса):");

String buf = Console.ReadLine();

try

{

int In = Convert.ToInt32(buf);

Value = TR[0].GetValue(In, out Error);

if (!Error)

Console.WriteLine("Значение на входе: " + Value.ToString());

else

Console.WriteLine("Входа с таким номером ен существует!");

}

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

}

Console.WriteLine("Для выхода в главное меню нажмите Escape.");

}

while (Console.ReadKey().Key!= ConsoleKey.Escape);

break;

}

case '3':

{

Console.Clear();

TR[0].Calculate();

Console.WriteLine("Значение на прямом выходе:" + TR[0].GetOut().ToString());

Console.WriteLine("Значение на инверсном выходе:" + TR[0].GetNOut().ToString());

Console.ReadKey();

break;

}

case '4':

{

Console.Clear();

Console.WriteLine("Введите значение на входе первого триггера в формате ХХ (0 - false, 1 - true;), \nпервый Х - значение на входе установки, второй Х - значение на входе сброса:");

string buf;

bool[] tmp2 = new bool[TR[1].QtyInP];

try

{

buf = Console.ReadLine();

for (int i = 0; i < TR[1].QtyInP; i++)

if (buf[i] == '0')

tmp2[i] = false;

else if (buf[i] == '1')

tmp2[i] = true;

 

if (TR[1].SetValue(tmp2)) //&& (f == false))

{

Console.WriteLine("Значения на входах успешно установленны!");

}

else

{

Console.WriteLine("Ошибка! Значения на входах не установленны!");

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

}

}//end try

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

}

TR[1].Calculate();

Console.WriteLine("Значение на выходе первого триггера:" + TR[1].GetOut());

 

// Второй триггер

Console.WriteLine("Введите значение на входе второго триггера в формате ХХ (0 - false, 1 - true;), \nпервый Х - значение на входе установки, второй Х - значение на входе сброса:");

try

{

buf = Console.ReadLine();

for (int i = 0; i < TR[2].QtyInP; i++)

if (buf[i] == '0')

tmp2[i] = false;

else if (buf[i] == '1')

tmp2[i] = true;

 

if (TR[2].SetValue(tmp2))

{

Console.WriteLine("Значения на входах успешно установленны!");

}

else

{

Console.WriteLine("Ошибка! Значения на входах не установленны!");

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

}

}//end try

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

}

TR[2].Calculate();

Console.WriteLine("Значение на выходе второго триггера: " + TR[2].GetOut());

 

switch (TR[1].CompareTo(TR[2]))

{

case 0: Console.WriteLine("\nЗначения на выходе равны"); break;

case 1: Console.WriteLine("\nЗначения на выходе первого триггера больше чем у второго!"); break;

case -1: Console.WriteLine("\nЗначения на выходе первого триггера меньше чем у второго!"); break;

}

Console.WriteLine("Для выхода нажмите любую клавишу...");

Console.ReadKey();

break;

}

} //end switch

 

} while (Key!= '5');

 

}

 

 

public static void Fird()

{

char Key;

do

{

Console.Clear();

Console.WriteLine("\tКласс \"Регистр\"");

Console.WriteLine("\n1.Задать значения на входах регистра.");

Console.WriteLine("\n2.Получить значение с заданного выхода регистра.");

Console.WriteLine("\n3.Получить значение на выходе регистра.");

Console.WriteLine("\n4. Проверка метода Equals.");

Console.WriteLine("\n5. Вернуться в меню.");

Key = Console.ReadKey().KeyChar;

 

switch (Key)

{

case '1':

{

Console.Clear();

Console.WriteLine("Установление значений на входе 10 Т-триггеров.");

Console.WriteLine("Введите 20 цифр (0 - false, 1 - true),\n каждая из которых будет задавать значение для одного из триггеров");

String buf;

bool[] tmp1 = new bool[20];

try

{

buf = Console.ReadLine();

for (int i = 0; i < 20; i++)

if (buf[i] == '0')

tmp1[i] = false;

else

tmp1[i] = true;

if (RG[0].SetValue(tmp1))

{

Console.WriteLine("Значения успешно установленны!");

for (int i = 0; i < 20; i++)

Console.WriteLine(tmp1[i]);

}

else

{

Console.WriteLine("Ошибка! Значения не установленны!");

for (int i = 0; i < 20; i++)

Console.WriteLine(tmp1[i]);

}

}

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

}

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

break;

}

case '2':

{

Console.Clear();

bool Error, Value;

 

do

{

Console.WriteLine("Введите номер выхода регистра(от 0 до 9):");

String buf = Console.ReadLine();

if (buf.Length > 1)

Console.WriteLine("Триггер с таким номером не существоет");

else

try

{

int a = Convert.ToInt32(buf);

Value = RG[0].GetOut(a, out Error);

if (!Error)

Console.WriteLine("Значение у выбраного триггера на выходе: " + Value.ToString());

else

Console.WriteLine("Триггер С таким номером не существует!");

}

catch (Exception e)

{

Console.WriteLine("Ошибка! " + e.Message);

}

Console.WriteLine("Для выхода нажмите ESC, для повтора нажмите любую клавишу...");

} while (Console.ReadKey().Key!= ConsoleKey.Escape);

break;

}

case '3':

{

Console.Clear();

Console.WriteLine("Значение регистра: " + RG[0].Result());

Console.WriteLine("Для продолжения нажмите любую клавишу...");

Console.ReadKey();

break;

}

case '4':

{

Console.Clear();

Console.WriteLine("Установление значения на входе 10 Т-триггеров.");

Console.WriteLine("Введите 20 цифр (логические 1 или 0) каждая из которых будет означать значение на входе. Лишние символы не учитываются");

String tmp;

bool[] tmp2 = new bool[20];

try

{

bool f = false;

tmp = Console.ReadLine();

for (int i = 0; i < 20; i++)

if (tmp[i] == '0')

tmp2[i] = false;

else if (tmp[i] == '1')

tmp2[i] = true;

else { f = true; break; }

if ((RG[1].SetValue(tmp2) && (f == false)))

Console.WriteLine("Значения на входе регистра установлены.");

else

{

Console.WriteLine("Ошибка при установлении значений на входе.");

Console.WriteLine("Для выхода нажмите любую клавишу...");

Console.ReadKey(true);

break;

}

}

catch (Exception e)

{

Console.WriteLine("Ошибка: " + e.Message);

Console.WriteLine("Для выхода нажмите любую клавишу...");

Console.ReadKey(true);

break;

}

 

RG[1].Result();

Console.WriteLine("Значение второго регистра = " + RG[1].Result());

 

Console.WriteLine("\nЗадайте значения для второго регистра.\n");

// второй регистр

try

{

bool f = false;

tmp = Console.ReadLine();

for (int i = 0; i < 20; i++)

if (tmp[i] == '0')

tmp2[i] = false;

else if (tmp[i] == '1')

tmp2[i] = true;

else { f = true; break; }

if ((RG[2].SetValue(tmp2) && (f == false)))

Console.WriteLine("Значения на входе регистра установлены.");

else

{

Console.WriteLine("Ошибка при установлении значений на входе.");

Console.WriteLine("Для выхода нажмите любую клавишу...");

Console.ReadKey(true);

break;

}

}

catch (Exception e)

{

Console.WriteLine("Ошибка: " + e.Message);

Console.WriteLine("Для выхода нажмите любую клавишу...");

Console.ReadKey(true);

break;

}

 

RG[2].Result();

Console.WriteLine("Значение второго регистра = " + RG[2].Result());

 

switch (RG[1].CompareTo(RG[2]))

{

case 0: Console.WriteLine("\nЗначения на выходе равны"); break;

case 1: Console.WriteLine("\nЗначения на выходе первого регистра больше чем у второго"); break;

case -1: Console.WriteLine("\nЗначения на выходе первого регистра меньше чем у второго"); break;

}

Console.WriteLine("\nДля выхода нажмите любую клавишу...");

Console.ReadKey(true);

break;

}

}

} while (Key!= '4');

}

}

}


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Second

{

class Element: IComparable

{

string Name;

int QtyIn;

int QtyOut;

 

//Конструктор без параметров

public Element()

{

}

//Конструктор задающий имя и кол-во вх, вых =1

public Element(String Name)

{

this.Name = Name;

QtyIn = 1;

QtyOut = 1;

}

//Конструктор задающий значение всех полей

public Element(String Name, int QtyIn, int QtyOut)

{

this.Name = Name;

this.QtyIn = QtyIn;

this.QtyOut = QtyOut;

}

//Свойство Name(только чтение)

public string NameP

{

get

{

return Name;

}

}

//Свойство QtyIn

public int QtyInP

{

get

{

return QtyIn;

}

set

{

if (value > 0) QtyIn = value;

else QtyIn = 0;

}

}

//Свойство QtyOut

public int QtyOutP

{

get

{

return QtyOut;

}

set

{

if (value > 0) QtyOut = value;

else QtyOut = 0;

}

}

 

//переопределение метода equals

public override bool Equals(object obj)

{

// Если параметр равен нулю, то возвращается ложь

if (obj == null)

{

return false;

}

 

// Если параметр не может быть приведен к типу Element возвращаем ложь.

Element p = obj as Element;

if ((System.Object)p == null)

{

return false;

}

return (Name == p.Name) && (QtyIn == p.QtyIn) && (QtyOut == p.QtyOut);

}

 

//метод hashCode у одинаковых объектов должен быть одинаковым:

public override int GetHashCode()

{

return Name.GetHashCode() ^ QtyIn.GetHashCode() ^ QtyOut.GetHashCode();

}

 

 

//реализация интерфейса IComparable

public virtual int CompareTo(object obj)

{

Element temp = (Element)obj;

// сравниваем по числу входов

if (this.QtyIn > temp.QtyIn) return 1;

if (this.QtyIn < temp.QtyIn) return -1;

return 0;

}

 

//переопределение операторов сравнения

public static bool operator ==(Element a, Element b)

{

return a.Equals(b); // возращает либо тру либо фалсе

}

 

public static bool operator!=(Element a, Element b)

{

return!a.Equals(b);

}

 

public static bool operator <(Element a, Element b)

{

return (a.CompareTo(b) < 0);

}

 

public static bool operator >(Element a, Element b)

{

return (a.CompareTo(b) > 0);

}

 

public static bool operator <=(Element a, Element b)

{

return (a.CompareTo(b) <= 0);

}

 

public static bool operator >=(Element a, Element b)

{

return (a.CompareTo(b) >= 0);

}

}

}


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Second

{

class Registr:IComparable

{

 

Trigger[] Reg;

bool[] Input;

bool[] Qt;

 

public Registr()

{

Reg = new Trigger[10];

Qt = new bool[10];

for (int i = 0; i < 10; i++)

{

Reg[i] = new Trigger();

Qt[i] = true;

}

Input = new bool[20];

}

 

public bool SetValue(bool[] NewValue)

{

if (Input.GetLength(0) == NewValue.GetLength(0))

{

bool[] tmp = new bool[2];

NewValue.CopyTo(Input, 0);

for (int i = 0; i < Reg.GetLength(0); i++)

{

tmp[0] = Input[i * 2];

tmp[1] = Input[i * 2 + 1];

if (Reg[i].SetValue(tmp) == false)

return false;

}

return true;

}

else

return false;

}

 

public bool GetOut(int Index, out bool Error)

{

if (Index < Reg.GetLength(0))

{

Error = false;

Reg[Index].Calculate();

return Reg[Index].GetOut();

}

else

{

Error = true;

return false;

}

}

 

public String Result()

{

String res = "";

bool[] tmp = new bool[2];

for (int i = 0; i < 10; i++)

{

tmp[0] = Input[i * 2];

tmp[1] = Input[i * 2 + 1];

Reg[i].SetValue(tmp);

Reg[i].SetQt(Qt[i]);

Reg[i].Calculate();

res = res + (Convert.ToInt32(Reg[i].GetOut())).ToString();

}

return res;

}

 

//переопределение метода equals

public override bool Equals(System.Object obj)

{

// если параметр не может быть приведен к CombElem false:

Registr p = obj as Registr;

if ((object)p == null)

{

return false;

}

return (Input == p.Input) && (Qt == p.Qt) && (Reg == p.Reg);

}

 

//метод hashCode у одинаковых объектов должен быть одинаковым:

public override int GetHashCode()

{

return Input.GetHashCode() ^ Reg.GetHashCode() ^ Qt.GetHashCode();

}

 

//реализация интерфейса IComparable

public virtual int CompareTo(object obj)

{

Registr temp = (Registr)obj;

// сравниваем по выходному значению

for (int i = 0; i < this.Reg.Length; i++)

{

if (Convert.ToInt16(this.Reg[i].GetOut()) > Convert.ToInt16(temp.Reg[i].GetOut())) return 1;

if (Convert.ToInt16(this.Reg[i].GetOut()) < Convert.ToInt16(temp.Reg[i].GetOut())) return -1;

}

return 0;

}

 

 

public static bool operator ==(Registr a, Registr b)

{

return a.Equals(b);

}

 

public static bool operator!=(Registr a, Registr b)

{

return!a.Equals(b);

}

 

public static bool operator <(Registr a, Registr b)

{

return (a.CompareTo(b) < 0);

}

 

public static bool operator >(Registr a, Registr b)

{

return (a.CompareTo(b) > 0);

}

 

public static bool operator <=(Registr a, Registr b)

{

return (a.CompareTo(b) <= 0);

}

 

public static bool operator >=(Registr a, Registr b)

{

return (a.CompareTo(b) >= 0);

}

}

}

 

 


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Second

{

class Trigger: Element

{

bool[] Input;

bool Out, NOut, Qt = true;

//Конструктор(по умолчанию сбрасывает экземпляр класса)

public Trigger()

: base("Триггер", 2, 1)

{

Input = new bool[2];

// 0 - вход утсановки (S)

// 1 - вход сброса (R)

Out = false;

NOut = false;

}

// Конструктор копирования

public Trigger(Trigger Prev)

{

Prev.Input.CopyTo(this.Input, 0);

this.Out = Prev.Out;

this.NOut = Prev.NOut;

}

 

//метод, задающий значения на входах

public bool SetValue(bool[] Value)

{

if (Value.GetLength(0) == Input.GetLength(0))

{

Value.CopyTo(this.Input, 0);

return true;

}

else

return false;

}

//Метод опрашивающий входы

public bool GetValue(int Index, out bool Error)

{

if (Index < Input.GetLength(0))

{

Error = false;

return Input[Index];

}

else

{

Error = true;

return false;

}

}

public bool SetQt(bool Value)

{

return Qt = Value;

}

 

//Метод вычисляющий состояние экземпляра класса на выходе

public bool Calculate()

{

if (!Input[1]) //R = 0;

{

if (Input[0] == Qt) // S = Qt

{

Out = Input[0];

NOut =!Out;

}

else

{

Out =!Input[0];

NOut =!Out;

Qt = Input[0];

}

}

else

{

Out = false;

Qt = false;

NOut = false;

}

return Out;

}

//Значение на выходе

public bool GetOut()

{

return Out;

}

//Значение на инверсном выходе

public bool GetNOut()

{

return NOut;

}

 

//переопределение метода equals

public override bool Equals(System.Object obj)

{

Trigger p = obj as Trigger;

if ((object)p == null)

{

return false;

}

return base.Equals(obj) && (Input == p.Input) && (Out == p.Out) && (NOut == p.NOut);

}

 

public override int GetHashCode()

{

return base.GetHashCode() ^ Input.GetHashCode() ^ Out.GetHashCode() ^ NOut.GetHashCode();

}

 

 

//реализация интерфейса IComparable

public override int CompareTo(object obj)

{

Trigger temp = (Trigger)obj;

// сравниваем по значению выхода

if (Convert.ToInt16(this.Out) > Convert.ToInt16(temp.Out)) return 1;

if (Convert.ToInt16(this.Out) < Convert.ToInt16(temp.Out)) return -1;

return 0;

}

 

 

public static bool operator ==(Trigger a, Trigger b)

{

return a.Equals(b);

}

 

public static bool operator!=(Trigger a, Trigger b)

{

return!a.Equals(b);

}

 

public static bool operator <(Trigger a, Trigger b)

{

return (a.CompareTo(b) < 0);

}

 

public static bool operator >(Trigger a, Trigger b)

{

return (a.CompareTo(b) > 0);

}

 

public static bool operator <=(Trigger a, Trigger b)

{

return (a.CompareTo(b) <= 0);

}

 

public static bool operator >=(Trigger a, Trigger b)

{

return (a.CompareTo(b) >= 0);

}

 

}

}


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace Second

{

class ComEl: Element

{

bool[] Inputs;

// Конструктор

public ComEl(int CntIn)

: base("Комбинационный элемент МОД2-НЕ", CntIn, 1)

{

Inputs = new bool[CntIn];

}

// Метод задающий значения на входах

public bool SetInp(bool[] Value)

{

if (Inputs.GetLength(0) == Value.GetLength(0))

{

Value.CopyTo(Inputs, 0);

return true;

}

else

return false;

}

public bool GetValue(int Index, out bool Error)

{

if (Index < Inputs.GetLength(0))

{

Error = false;

return Inputs[Index];

}

else

{

Error = true;

return false;

}

}

public bool Result()

{

bool tmp = Inputs[0];

for (int i = 1; i < Inputs.GetLength(0); i++)

{

tmp = tmp ^ Inputs[i];

}

return!tmp;

}

 

//переопределение метода equals

public override bool Equals(System.Object obj)

{

// если параметр не может быть приведен к CombElem false:

ComEl p = obj as ComEl;

if ((object)p == null)

{

return false;

}

return base.Equals(obj) && (Inputs == p.Inputs);

}

 

//метод hashCode у одинаковых объектов должен быть одинаковым:

public override int GetHashCode()

{

return base.GetHashCode() ^ Inputs.GetHashCode();

}

 

//реализация интерфейса IComparable

public override int CompareTo(object obj)

{

ComEl temp = (ComEl)obj;

// сравниваем по числу входов

if (this.Inputs.Length > temp.Inputs.Length) return 1;

if (this.Inputs.Length > temp.Inputs.Length) return -1;

return 0;

}

 

 

public static bool operator ==(ComEl a, ComEl b)

{

return a.Equals(b);

}

 

public static bool operator!=(ComEl a, ComEl b)

{

return!a.Equals(b);

}

 

public static bool operator <(ComEl a, ComEl b)

{

return (a.CompareTo(b) < 0);

}

 

public static bool operator >(ComEl a, ComEl b)

{

return (a.CompareTo(b) > 0);

}

 

public static bool operator <=(ComEl a, ComEl b)

{

return (a.CompareTo(b) <= 0);

}

 

public static bool operator >=(ComEl a, ComEl b)

{

return (a.CompareTo(b) >= 0);

}

 

 

}

}


 

 

 

 

ЭКРАННЫЕ ФОРМЫ

Приложение Б

(обязательное)

 

 

Рисунок Б.1 – Главное меню приложения

Рисунок Б.2 – Ввод входных значений элемента

Рисунок Б.3 – Вывод значения заданного входа элемента

Рисунок Б.4 – Вывод значения на выходе элемента

Рисунок Б.5 – Ввод входных значений триггера

Рисунок Б.6 – Вывод значения заданного входа триггера

Рисунок Б.7 – Вывод значения на выходах триггера

Рисунок Б.8 – Ввод входных значений регистра

Рисунок Б.9 – Вывод значения заданного выхода регистра

Рисунок Б.10 –Вывод значения на выходах регистра

 

ПАМЯТКА

по дисциплине «ФИЗИЧЕСКАЯ КУЛЬТУРА»

для студентов 1-4 курсов

(основное отделение)




Поделиться с друзьями:


Дата добавления: 2017-02-01; Просмотров: 63; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopediasu.com - Студопедия (2013 - 2026) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.