ПОИСК Статьи Рисунки Таблицы Схема решающего алгорифма из "Программирование " Встречающиеся на практике решающие алгорифмы обычно либо удовлетворяют, либо легко сводятся к алгорифмам, удовлетворяющим перечисленным условиям. Дискретный характер позволяет их расчленять на части. Элементарные предписания, определяющие условный переход, можно формулировать примерно так если выполнено условие гр, то перейти к такому-то элементарному предписанию, а в противном случае — к такому-то . Про такое элементарное предписание говорят, что оно проверяет выполнение некоторого условия г] или значение некоторого предиката с содержанием 1 3. [c.113] Первое элементарное предписание алгорифма считается входом, а элементарное предписание, определяющее нулевой процесс перехода, —выходом того элементарного оператора, которому оно принадлежит. [c.114] Возможность рассматривать дискретный алгорифм, являющийся совокупностью элементарных предписаний, как совокупность элементарных операторов, следует из того, что каждое элементарное предписание можно считать оператором. [c.114] Пусть М—совокупность нескольких элементарных операторов, входящих в состав алгорифма. Условимся говорить, что элементарный оператор, входящий в /И, имеет внешний вход, если его вход является первым элементарным предписанием алгорифма или если к нему возможен переход извне, т. е. от элементарного оператора, не принадлежащего М. Если же к данному элем.ентарному оператору предусмотрен переход только от элементарных операторов совокупности М, то будем говорить, что он имеет внутренний вход. Кроме того, будем говорить что элементарный оператор, входящий в М, имеет внутренний выход, если от него предусмотрен переход только к другим элементарным операторам, входящим в Ж. В остальных случаях будем говорить, что упомянутый элементарный оператор имеет внешний выход. [c.114] Элементарные операторы и обобщенные операторы будем называть операторами. [c.115] При разбиении алгорифма на элементарные операторы условимся элементарное предписание, определяющее нулевые основной процесс и процесс перехода, принимать за самостоятельный оператор, который будем называть оператором конца и обозначать символом Я . [c.115] Элементарные предписания, определяющие условный переход, также условимся считать самостоятельными операторами, которые будем называть логическими и обозначать символами вида Р . Остальные операторы будем обозначать символами вида. Во всех перечисленных обозначениях индекс V является натуральным числом. Символы, обозначающие операторы, в тех случаях, когда это не ведет к недоразумениям, будем для краткости называть операторами. Кроме вышеописанных символов, введем еще символ //,, который будем называть оператором начала. [c.115] Предположим, что задан некоторый решающий алгорифм, являющийся совокупностью элементарных предписаний и удовлетворяющий вышеперечисленным условиям. Объединим его элементарные предписания в элементарные операторы и перенумеруем их в каком-либо порядке. Каждому оператору. в зависимости от его особенностей, поставим в соответствие один из символов Р,, Я, или Р,, полагая V равным номеру оператора. [c.115] Затем выпишем строку символов, в которой на первом (самом левом) месте записан оператор начала, а затем в порядке номеров выписаны (слева направо) все элементарные операторы решающего алгорифма. [c.115] Полученная строка операторов вместе со стрелками, обозначающими переходы от оператора к оператору, называется схемой решающего алгорифма. [c.116] Если да, перейти к п. 2°, если нет, — к п. 3 . [c.116] При использовании описанных знаков перехода знак точка с запятой не применяется. [c.117] Перейти к следующему пункту. [c.118] Если да, перейти к п. 4°, если нет — к п. 5°. [c.118] Перейти к следующему пункту. [c.118] Если да, то перейти к п. 8°, если нет — к следующему пункту. [c.118] Применение обобщенных операторов делает схемы алгорифмов более короткими и обозримыми, но зато хуже передающими структуру алгорифма. [c.119] После расчленения решающего алгорифма на части (операторы), можно для каждой части составить программу, а затем частные программы объединить в программу решения задачи. Однако оказывается, что специфика программно-управляемой машины в ряде случаев требует включения в программу еще некоторых дополнительных участков или даже внесения изменений в схему решающего алгорифма (составленного без учета средств, с помощью которых должно быть осуществлено решение задачи), что связано, например, с необходимостью программного контроля правильности решения задачи и j. д. [c.119] Вернуться к основной статье