12.07.2015 Views

Отсюда можно скачать отчет в формате PDF (670 Kb) - Кафедра ...

Отсюда можно скачать отчет в формате PDF (670 Kb) - Кафедра ...

Отсюда можно скачать отчет в формате PDF (670 Kb) - Кафедра ...

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Шаблон функции, реализующей а<strong>в</strong>томат. Заменить "_i_" на номер а<strong>в</strong>томата.void A_i_( int e ){int y_old = y_i_ ;// Протоколиро<strong>в</strong>ание запуска а<strong>в</strong>томата.#ifdef A_i__BEGIN_LOGGINGlog_begin( "A_i_", y_old, e ) ;#endifswitch( y_i_ ){case 0:// Выз<strong>в</strong>ать <strong>в</strong>ложенные а<strong>в</strong>томаты.// Про<strong>в</strong>ерить усло<strong>в</strong>ия на дугах и петлях,// <strong>в</strong>ыполнить переход и дейст<strong>в</strong>ия на дуге или петле.break ;...case n:// Выз<strong>в</strong>ать <strong>в</strong>ложенные а<strong>в</strong>томаты.// Про<strong>в</strong>ерить усло<strong>в</strong>ия на дугах и петлях,// <strong>в</strong>ыполнить переход и дейст<strong>в</strong>ия на дуге или петле.break ;default:#ifdef A_i__ERRORS_LOGGINGlog_write( LOG_GRAPH_ERROR,"Ошибка <strong>в</strong> а<strong>в</strong>томате A_i_: неиз<strong>в</strong>естный номер состояния!", 0 ) ;#endif} ;// Если состояние не изменилось - за<strong>в</strong>ершить <strong>в</strong>ыполнение функции.if( y_old == y_i_ ) goto A_i__end ;// Протоколиро<strong>в</strong>ание перехода <strong>в</strong> а<strong>в</strong>томате.#ifdef A_i__TRANS_LOGGINGlog_trans( "A_i_", y_old ) ;#endifswitch( y_i_ ){case 0:// Произ<strong>в</strong>ести акти<strong>в</strong>изацию <strong>в</strong>ложенных <strong>в</strong> но<strong>в</strong>ое состояние а<strong>в</strong>томато<strong>в</strong>.// Выполнить дейст<strong>в</strong>ия <strong>в</strong> но<strong>в</strong>ом состоянии.break ;...case n:// Произ<strong>в</strong>ести акти<strong>в</strong>изацию <strong>в</strong>ложенных <strong>в</strong> но<strong>в</strong>ое состояние а<strong>в</strong>томато<strong>в</strong>.// Выполнить дейст<strong>в</strong>ия <strong>в</strong> но<strong>в</strong>ом состоянии.break ;} ;// Протоколиро<strong>в</strong>ание за<strong>в</strong>ершения работы а<strong>в</strong>томата.A_i__end: ;#ifdef A_i__END_LOGGINGlog_end( "A_i_", y_i_, e ) ;#endif} ;48После реализации графа переходо<strong>в</strong> текст функции принеобходимости должен корректиро<strong>в</strong>аться для обеспечениябеспо<strong>в</strong>торности опроса <strong>в</strong>ходных переменных. Это поз<strong>в</strong>оляетрешить проблему "риска", заключающуюся <strong>в</strong> том, что еслипри про<strong>в</strong>ерке усло<strong>в</strong>ий на исходящих из <strong>в</strong>ершины дугах одна и

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!