Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_Sistemnyy_analiz.doc
Скачиваний:
7
Добавлен:
27.09.2019
Размер:
1.12 Mб
Скачать

13. C#.Полиморфизм.Перегрузка операций и методов.

Перегруженными наз-ся два и более метода с одинаковым именем,но с разл.списками аргументов.Перегрузка.Часто бывает,что вып-ся одно и тоже действие(метод),но с разн. типами аргументов или их кол-вом.В нек.языках программ-я,чтобы решить дан.проблему приходилось описать все методы с новыми именами,в С# для этого есть перегрузка. Перегрузка операторов тесно связана с перегрузкой методов. Для перегрузки операторов исп-ся ключ.слово operator, позволяющее создать операторный метод,кот.опр-т действие оператора,связанное с его классом.Сущ-т 2 формы методов operator:одна исп-ся для унарных операторов,а другая-для бинарных.Общий же формат таков:

Здесь эл-т ор- это оператор(например "+" или "/"),кот. перегружается.Эл-т тип_возврата-это тип зн-я, возвращ-го при вып-ии зад.операции.Несмотря на то, что можно выбрать любой тип,тип возвращ-го зн-я чаще всего будет совпадать с типом класса,для кот.этот оператор перегружается.Такая корреляция облегчает исп-е перегр. оператора в выр-ях.Для унарных операторов операнд передается в эл-те операнд,а для бинарных-в эл-тах операнд1 и операнд2.Для унарных операторов тип операнда должен совпадать с классом,для кот.определен оператор.Что касается бинарных операторов, то тип хотя бы одного операнда должен совпадать с соответств-им классом.Таким образом,С#-операторы нельзя перегружать для классов, не созданных вами.Например,вы не можете перегрузить оператор "+" для типов int или string.

И последнее: параметры операторов не должны исп-ть модификатор ref или out.

14. C#.Наследование.Ограничения при наследовании.

Важнейшим св-вом ООП явл-ся наследование.Для того, чтобы показать,что класс В наследует класс A (класс B выведен из класса A),в опр-ии класса B после имени класса ставится двоеточие и затем перечисляются классы,из кот.B наследует:class<производный_класс>:<базовый_класс>

class A

{public:

A();

~A();

MethodA();};

class B : public A

{public:

B();

. . .};

Термин "наследование" озн-т,что класс B обладает всеми св-вами класса A,он их унаследовал.У объекта производного класса есть все атрибуты и методы баз.класса. Новый класс может добавить собств.атрибуты и методы.Ключ.слово public перед именем баз.класса опр-т,что внеш.интерфейс баз.класса стан-ся внеш.интерфейсом порожденного класса. Это наиболее употребляемый тип наследования.С# не поддерживает множественное наследование.Но можно объединять хар-ки поведения нескольких программных сущностей,реализовав несколько интерфейсов.Интерфейсы, выбранные для реал-ции,перечисляются после баз.класса дан.класса.Пример:класс MyClass происх-т от Control и реализует интерфейсы Foo к Bar:

class Control { } interface IFoo interface IBar { } class MyClass:Control,IFoo,IBar { } Главное здесь то,что единств.способом реал-ции чего-либо, напоминающего множественное наследование,на С# явл-ся прим-е интерфейсов.

6.Синтез цифровых схем. Триггеры. Триггер – простейшее последовательное устройство, к-ое может длительно находиться в одном из неск-ких устойчивых состояний и переходить из одного в другое. Классификация триггеров. Сформулируем принципы, на основании которых в дальнейшем будет производиться классификация триггеров. Так как триггеры являются простейшими автоматами, то независимо от способов их построения триггеры, как и автоматы, будут разделяться на три класса: *асинхронные потенциальные триггеры, в ф-ии переходов к-ых не входят операторы перехода d; *асинхронные импульсные триггеры, ф-ции переходов к-ых содержат операторы перехода d; *синхронные триггеры, к-ые являются частным случаем асинхронных импульсных триггеров (ф-ии переходов синхронных триггеров содержат только импульсный сигнал dH, где Н — тактовый сигнал). Триггеры типа Т. Синхронный Т-триггер имеет один информационный вход Т разрешения изменения состояния триггера на инверсное и описывается ф-ями переходов

Вход Т называется счетным входом триггера, т.к. при двоичном счете младший разряд числа изменяется с 0 на 1 или с 1 на 0 в каждом такте.

Триггеры типа D. Синхронный D-триггер имеет входы для подачи информационного сигнала D и тактового сигнала Н, причем значение вых.сигнала z=Q опр-ется значением сигнала D в момент изменения тактового сигнала Н с 1 на 0 (при dH = 1). При dH = 0 вых.сигнал триггера не изменяется. Составив диаграмму Вейча для функции переходов,получим:

Схема асинхронного RS-триггера доопр-ного до единицы на элементах 2И-НЕ:

На рис приведены условные графич.обозначения синхронных триггеров типов R-S и D-L, а также синхронно- асинхронного D-L/R-триггера с инверсным входом R (активный уровень сигнала R = 0). На вход С (Clock— часы) подается тактовый сигнал Н. Динамич. (импульсный) вход обозначается треугольником. При аналитич.описании триггеров считается, что изменение их состояний вызывает переход тактового сигнала с 1 на 0. Синхронные триггеры типа J-K. Этот триггер имеет два информационных входа: J — вход разрешения установки состояния Q = 1, К — вход разрешения установки состояния Q = 0 (при J = К = 1 состояние триггера изменяется на инверсное). Функция переходов J-K-триггера:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]