і
МИКРОКОНТРОЛЛЕРЫ
(
2. В программе хранится табли-
ца описания автомата, а програм-
ма, определенным образом обраба-
тывая ее, моделирует поведение
автомата в соответствии с правила-
ми, заложенными в этой таблице
(такие программы обозначаются в
программистской литературе об-
щим термином
интерпретаторы).
Попытаемся в учебных целях
сделать наш “торшер” как тем, так
и другим способом. Прежде чем на-
чинать писать программу, всегда
полезно сначала написать и прора-
ботать ее алгоритм. Для представ-
ления алгоритма существует мно-
жество способов (начиная от блок-
схем), но мы воспользуемся для
этого простейшим способом - язы-
ком, близким к естественному, ко-
торый, на взгляд автора, должен
быть легко понятен читателю.
Реализация наш его автомата
по эи/КсЬ-технологии может быть
описана так:
пусть со сто яние_автом ата = О
выбор
(со сто ян и е_ав то м ата)
{ ко гд а равно 0 :
если "П о тя н уть З а в е р е в о ч ку "
то
{ п усть с о с то я н и е _ а в то м а та = 1
"Вклю чить л ам по чку"
}
ко гд а равно 1:
если "О тп ус ти ть в е р е в о ч ку " то
(п у с т ь с о с то я н и е _ а в то м а та = 2
}
ко гд а равно 2:
если "П о тя н у ть з а в е р е в о ч ку " то
(п у с т ь с о с то я н и е _ а в то м а та = 3
"О тклю чить л ам по чку"
}
ко гд а равно 3:
если "О тп ус ти ть в е р е в о ч ку " то
(п у с т ь с о с то я н и е _ а в т о и а т а = О
}
>
повторить сначала с выбора
Для описания вто-
рого способа реали-
зации - интерпрета-
тора
автом ата,
-
предположим, что в
программе имеется
таблица следующего
вида (таблица 3).
В этом случае ин-
терпретатор автома-
та реализуется следу-
ющим образом:
Таблица 3
Номер текущ его
состояния автомата
Ожидаемый
терминальный
символ
Номер нового
состояния евтомате
Действие, которое
надо выполнить
0
“Потянуть за
веревочку”
1
“Включить лампочку”
1
“Отпустить веревочку”
2
“Ничего не делать"
2
“Потянуть за
веревочку”
3
“Отключить лампочку”
3
“Отпустить веревочку”
0
“Ничего не делать"
пусть со сто ян и е_ав то м ата = О
ваять первую с тр о ку таблицы
если со сто ян не_авто м ата с о в п а д а е т с н о м е р о м _теку щ е го _с о с то я н я я _а в то м ата и з с тр о ки таблицы
И пришедший терминальны й
символ
со в п а д а е т
с
ожядаемым_термияальяым_сямволом
из
стр о ки
таблицы то
(пусть со сто ян и е_ав то м ата = я о м е р _ я о в о го _с о с то я н я я _а в то м ата и з с тр о ки таблицы
выполнить д е я с тв я е_ ко то р о е_ я ад о _ в ы п о л н я ть ,
зап и са н н о е в с т р о к е таблицы
начать все сн ач ал а с пер вой с тр о ки таблицы
}
иначе взять следующую с т р о к у таблицы и повто рить о б р аб о тку
когда таблица з а к о н ч и т с я ,
н а ч а ть пер еб ор снова с первой с тр о ки таблицы
Радиолюбитель - 0 8 /2 0 0 5 |
\
47
предыдущая страница 45 Радиолюбитель 2005-08 читать онлайн следующая страница 47 Радиолюбитель 2005-08 читать онлайн Домой Выключить/включить текст