Часто задача может быть сведена к множеству действий, зависящих от текущего состояния программы. Такой способ решения задачи называется выбором из конечного состояния и обычно включает таблицу, описывающую выполняемые действия. Строки таблицы определяют состояние программы, а столбцы — возможные действия. Элементы таблицы описывают выполнение возможных действий, в частности имя вызываемой подпрограммы для обработки действий.
Переменными в этом случае являются текущее состояние программы и допустимое воздействие, определяемое внешней средой. Пересечение этих значений в матрице решений определяет ответное действие и новое состояние программы. Такие состояния (алгоритмы) наиболее характерны для лексического анализатора трансляторов. Решение подобных задач строится по типу модели конечного автомата.
Таблица состояний:
A | B | C | … | I | J | K | … | Y | Z | |
… | ||||||||||
N–1 | ||||||||||
N | ||||||||||
N+1 | ||||||||||
… | ||||||||||
M |