Планирование уроков на учебный год (по учебнику К.Ю. Полякова, Е.А. Еремина, полный углублённый курс, по 4 часа в неделю)



Уроки 92 - 94
Иерархия классов
(§50. Иерархия классов)




Содержание урока

Классификации

Иерархия логических элементов

Базовый класс

Классы-наследники

Модульность

Сообщения между объектами

Вопросы и задания

Задачи


Сообщения между объектами


Когда логические элементы объединяются в сложную схему, желательно, чтобы передача сигналов между ними при изменении входных данных происходила автоматически. Для этого можно немного расширить базовый класс TLogElement, чтобы элементы могли передавать друг другу сообщения об изменении своего выхода.

Для простоты будем считать, что выход любого логического элемента может быть подключён к любому (но только одному!) входу другого логического элемента. Добавим к описанию класса два поля и один метод:

Поле FNextEl хранит ссылку на следующий логический элемент, а поле FNextln — номер входа этого следующего элемента, к которому подключён выход данного элемента. С помощью общедоступного метода Link можно связать данный элемент со следующим:

Нужно немного изменить методы setln1 и setln2: при изменении входа они должны не только пересчитывать выход данного элемента, но и отправлять сигнал на вход следующего

Условие FNextElOnil означает «если следующий элемент задан». Если он не был установлен, значение поля FNextEl будет равно nil и никакие дополнительные действия не выполняются.

С учётом этих изменений вывод таблицы истинности функции И-НЕ можно записать так (операторы вывода заменены многоточиями):

Обратите внимание, что в самом начале мы установили связь элементов И и НЕ с помощью метода Link (связали выход элемента И с первым входом элемента НЕ). Далее в теле цикла обращения к элементу НЕ нет, потому что элемент И автоматически сообщит ему об изменении своего выхода.

Следующая страница Вопросы и задания



Cкачать материалы урока






Наверх