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