Все Лекции
.pdf
Шаблоны классов
Стек (память LIFO)
Обычное множество операций над стеком:
•Push – добавить новый элемент в стек
•Pop – удалить верхний элемент из стека
•Empty – проверить, не пуст ли стек
•…
class Stack
{
// implementation int top;
int S[100]; public:
//interface Stack() : top(0) { }
void push ( int V ) { S[top++]=V; }
int pop (void) { top--;return S[top+1]; }
//other operations
...
}
10
Шаблоны классов
11
Требования на параметры настройки
12
Концепт – именованное множество требований
Нетиповые параметры шаблона
14
Автоматное программирование
•Многие
программистские задачи удобно решать с помощью методов, формализацией которых могут служить таблицы состояний и переходов.
15
Автоматное программирование
•При анализе таких методов можно применять конечные автоматы Мура.
•Состояние выходов такого автомата зависит от текущего состояния.
16
Автоматное программирование
•В качестве входных символов на практике можно рассматривать результаты проверки некоторых условий.
•Такие процедуры называют
действиями.
Автоматное программирование
•Таблицы автоматов часто также представляются в виде графов, что особенно удобно, когда не все возможные переходы между состояниями реализуемы.
•Здесь состояния идентифицируются порядковыми номерами, а воздействия - буквами
18
Автоматное программирование
•Альтернатива – автомат Мили.
•Его выходной сигнал зависит от последнего совершённого перехода, поэтому то, что будет на выходе, записывается над соответствующей стрелкой.
•В теории автомат Мили отличается тем, что результат может зависеть от выбранного перехода.
•На практике действия в таблице состояний и переходов могут ассоциироваться либо с состояниями (с вершинами графа, автомат Мура), либо с переходами (с дугами графа, автомат Мили).
19
