ПОИСК
Это наилучшее средство для поиска информации на сайте
Алгоритм работы программы
из "Интерпретирующая система обработки экономической информации "
Программа начинает работу. с чтения управляющей карты, в которой указывают имя входного файла — 5 байт, имя выходного файла — 5 байт, имя внешнего заказа — 5 байт (если заказ размещен на перфокартах, имя заказа указывается 00000), длина записи входного файла в байтах — 5 байт, длина записи выходного файла в байтах — 5 байт и режим работы программы — 1 байт. [c.33]Во всех режимах работы программы в случае обнаружения ошибок в заказе трансляция продолжается до конца, но обработка входного файла по сформированному алгоритму не производится, и программа заканчивает свою работу. Трансляция заказа осуществляется в момент его чтения. Укрупненная блок-схема трансляции приведена на рис. 2.1. [c.33]
Для наглядности в блок-схеме отражены только основные принципы трансляции. [c.33]
Трансляция заказа производится следующим образом. В программе предусмотрены два поля индексное поле Ра, в котором размещаются адреса текстовых полей в порядке их следования в заказе, и текстовое поле Pi, в котором размещаются признаки операторов и текстовые константы, заданные непосредственно в операторах заказа. Текстовые константы размещаются в поле Р в порядке их следования в заказе. [c.33]
Считывание очередной записи заказа при трансляции осуществляется в текстовое поле В. [c.33]
В блоке 1 осуществляется ввод управляющей карты и открытие. файла заказа. [c.33]
В блоке 2 читается очередная запись файла заказа, которая размещается в поле В. [c.33]
В блоке 3 определяется, является ли считанная запись меткой конец заказа . Если считанная запись является меткой конец заказа , то управление передается на блок 17. [c.33]
В блоке 4 определяется, является ли считанная запись меткой дополнительного блока. [c.33]
В блоке 6 определяется, является ли считанная запись меткой частного блока. [c.33]
В блоке 8 определяется, является ли считанная запись оператором проверки условия. [c.33]
В блоке 10 определяется, является ли считанная запись оператором переноса текстовых полей. [c.35]
В блоке 12 определяется, является ли считанная запись оператором занесения текстовых полей. [c.35]
В блоке 14 определяется, является ли считанная запись оператором записи в выходной файл. [c.35]
Управление на блок 16 передается в том случае, если считанная запись не является ни оператором, ни меткой. В этом случае факт ошибки фиксируется, и трансляция продолжается. [c.35]
При передаче управления на блок 18 определяется, были ли в процессе трансляции обнаружены ошибки. Если ошибки были, то программа заканчивает свою работу. Если ошибок не было, то организуется переход на открытие входного и выходного файлов. [c.35]
В индексном поле Р2 формируются абсолютные адреса, необходимые для выполнения операторов. Кроме адресов, непосредственно заданных в операторах, дополнительно формируются адреса для осуществления переходов от одного дополнительного блока к другому, от одного частного блока к другому, а также переход к началу следующего сегмента. [c.35]
Информация из поля входной записи записывается в выходной файл. [c.36]
Из сказанного следует, что необходимым условием формирования выходной записи является выполнение общих условий поиска и условий одного из дополнительных блоков. [c.36]
Вернуться к основной статье