![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 15.11.2010
Сообщений: 15
|
![]()
"Моделирование работы конечного детерминированного автомата"
Конечный автомат-абстрактная вычислительная машина с конечной памятью. конечный автомат задается набором (Q, q0, F, E, б) Q-конечное множество состояний автомата; q0-начальное состояние автомата, принадлежащее Q; F-множество финальных состояний, подмножество Q; E-допустимый входной алфавит(конечное множество допустимых входных символов), из которого формируются строки, считаемые автоматом; б-функция переходов состояний автомата. Автомат начинает работу в состоянии q0, считывая по одному символу входной строки. Считанный символ переводит автомат в новое состояние из Q в соответствии с функцией переходов. Если по завершении считывания входного слова (цепочки символов) автомат оказывается в одном из допускающих состояний, то слово "принимается" автоматом. В этом случае говорят, что оно принадлежит языку данного автомата. В противном случае слово "отвергается". Другие способы описания. Диаграмма состояний (или иногда граф переходов)-графическое представление множества состояний и функции переходов. Таблица переходов-табличное представление функции б. Обычно в такой таблице каждой строке соответствует одно состояние, а столбцу-один допустимый входной символ. В ячейке на пересечении строки и столбца записывается действие, которое должен выполнить автомат, если в ситуации, когда он находился в данном состоянии на входе он получил данный символ. Детерминированность. Детерминированным конечным автоматом называется такой автомат, в котором для каждой последовательности входных символов существует лишь одно состояние, в которое автомат может перейти из текущего. вот решение: Program Avtovat; const G : array[1..5,1..5] of Integer = ((2,3,4,5,1), (3,4,5,0,2), (4,2,1,2,3), (5,1,2,0,4), (2,0,5,1,4) ); var BeginState,CurState : Integer; EndState : array[1..2] of Integer; s : String; i : Integer; begin //s:='13343'; // Входная последовательность принадлежит языку автомата //s := '1334'; // конечное состояние 2 - не входит в набор финальных состояний //s := '13352'; // невозможный переход BeginState := 1; // Начальное состояние EndState[1] := 4; EndState[2] := 5; // Конечное состояние writeln ('Входная последовательность: ',s); CurState := BeginState; for i := 1 to Length(s) do begin write ('Было ',CurState,' '); CurState := G[StrToInt(s[i]),CurState]; writeln('подано ',s[i],' Стало ',CurState); if CurState = 0 then // 0 - переход невозможен begin writeln('Данная последовательность не принадлежит языку автомата'); Exit; end; end; if CurState in [4..5] then writeln('Данная последовательность принадлежит языку автомата') else writeln('Данная последовательность не принадлежит языку автомата'); end. В принципе, как сказал преподователь, смысл есть, но ему не нравиться что таблица забита заранее...лучше бы ее вводить из файла. Он сказал, что надо будет в эту таблицу добавить в каждый элемент не только новое состояние, но еще и новый символ. Тогда элементами таблицы будут уже не integer, а record sost:integer; sym:char end; нужно использовать процедуры и функции. Для ввода, вывода и для других вещей. Основная программа не должна быть захламлена непонятными второстепенными операторами. Но я не могу понять чего он хочет( |
![]() |
![]() |
![]() |
#2 | ||||||
Форумчанин
Регистрация: 04.05.2010
Сообщений: 495
|
![]() Цитата:
![]() Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948 |
||||||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 15.11.2010
Сообщений: 15
|
![]()
спасибо большое) 2-ой раз спасаешь)
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 15.11.2010
Сообщений: 15
|
![]()
Насчет преподов ты прав)
Последний раз редактировалось Леська17; 09.12.2010 в 20:36. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
"Моделирование работы конечного детерминированного автомата" | Леська17 | Помощь студентам | 7 | 19.05.2016 19:53 |
Моделирование работы конечного детерминированного автомата | jewel | Помощь студентам | 3 | 25.11.2010 13:05 |
Реализация конечного автомата на с++ | AnRo | Помощь студентам | 0 | 17.11.2010 13:49 |
Лексический анализатор азбуки Морзе в виде конечного автомата | MrBrain | Помощь студентам | 1 | 08.11.2010 10:23 |
моделирование работы светофора на перекрестке | люля | Фриланс | 10 | 24.03.2009 09:41 |