Cтраница 3
В схеме программы каждый оператор представляет собой определенную группу команд программы. Для упрощения схемы программы желательно, чтобы каждый оператор содержал максимальное число команд. В то же время совокупность команд каждого отдельного оператора обладает единым функциональным назначением. По своему функциональному назначению различаются операторы счета, логические операторы и операторы управления. [31]
На схеме программы обработки документа Товарно-транспортная накладная ( рис. 6.3) тонкими вертикальными линиями выделены шаги каретки пишущей машинки ЭФА. Утолщенные вертикальные линии отделяют друг от друга графы формируемого на машине документа. Для записи условных обозначений команд, номеров программных каналов, примера заполнения документа на бланке отводятся горизонтальные зоны. [32]
Приведенные выше схемы программ являются основными схемами программ простейших циклических процессов. Аналогичные схемы программ могут отличаться наличием или отсутствием операторов формирования Ф, местом ч в программе операторов управления и логических операторов. Как правило, оператор формирования имеется в каждой программе и часто стоит в ее начале. Логическое условие, обеспечивающее циклический процесс, может стоять перед оператором счета, тогда в конце программы помещается команда безусловной передачи управления началу программы. [33]
Графическое представление схемы программы и ее информационных связей делает гораздо более понятным эффект перестановки операторов программы в примере 7 ( рис. 1.3, в): сократив маршруты передачи значений от результатов к аргументам, мы разгрузили информационные связи и сократили их ширину до двух, что, кстати, в отличие от программ. [34]
В языке схем программ отсутствуют недетерминированные действия и добавлен оператор перехода на метку. Поэтому схемы программ определяют только детерминированные вычисления. [35]
Интерпретация J схемы программы S определяется выбором информационной области W, присваиванием начальных значений используемым символам переменных и сопоставлением функциональным и предикатным символам конкретных функций и предикатов соответствующей арности на W. ОСТАНОВ, либо вырабатывается значение val ( S, У), равное значению переменной, указанной в выполненном операторе ОСТАНОВ. [36]
Некоторые блох - схемы программ для ЭВМ приведены в приложении. [37]
Как видно, схема программы получилась довольно сложной. Дополни тельное ее усложнение связано с учетом двух особых случаев: когда цепочка пуста и когда группа повторяющихся символов встречается в конце строки. [38]
Приведенные пример и схема программы показывают также, как следует программировать распечатку красивой таблицы. [39]
Отправным понятием теории схем программ является понятие функциональной эквивалентности. Две схемы функционально а к в и в а л е н т и ы, если для любой интерпретации соответствующие программы вычисляют одинаковые функции. [40]
Вопрос разрешимости эквивалентности схем программ тесно связан с существованием упрощающих алгоритмов. Если проблема эквивалентности разрешима, то в принципе существует алгоритм для сведения схемы к простейшей ( в некотором смысле) возможной форме. В разделах 4 и 5 мы показываем, что для почти всякого разумного - понятия эквивалентности между машинными программами оба вопроса: об эквивалентности и о неэквивалентности пары схем не являются частично разрешимыми. Здесь под частичной разрешимостью понимается рекурсивная перечислимость, а именно: отношение г ( а, Ъ) частично разрешимо, но не разрешимо, если существует алгоритм для порождения списка всех пар ( а, Ь), таких, что г ( а, Ъ) выполняется, но не существует алгоритма, перечисляющего все такие пары, для которых г ( а, Ь) не выполняется. Отсюда следует, что не существует оптимизирующих алгоритмов для полного сведения схемы &, так сказать, к кратчайшей возможной форме. Фактически, как будет показано, таких алгоритмов не существует даже в случае строго ограниченных классов схем. Доказательства используют некоторые свойства многоголовочных автоматов; последние рассматриваются в разд. [41]
Возможность дальнейшего усложнения схем программ циклических процессов с кратными циклами очевидна. [42]
При программировании вручную схему программы составляют, исходя из схемы решающего логарифма. Затем каждый элементарный оператор схемы программы, пользуясь методом символических адресов, представляют в виде некоторой последовательности команд. При этом каждый раз, когда необходимо написать команду условного или безусловного перехода к оператору, составление которого еще невозможно, для обозначения ячеек, которые будут хранить этот еще несоставленный оператор, вводят новые символические адреса. [43]
На рис. 3.7 приведена схема программы на языке Ада для ответственной за беседу части задачи В. [44]
Логическая схема алгоритма и схема программы могут быть выполнены как в укрупненной, так и в детальной форме. При изображении этих схем используется набор символов, определяемых ГОСТ 19.701 - 90 Единая система программной документации. [45]