Cтраница 3
Как правило, при разработке программ необходимо задавать очередность выполнения групп линейных операторов. Для этого используются специальные операторы ( называемые операторами управления), которые включаются в текст программы и содержат данные ( или правила), обеспечивающие выбор очередного оператора для выполнения. [31]
Запятая в конце выводного списка является признаком незавершенного оператора PRINT. В этом случае происходит только заполнение выводной строки, без ее вывода на экран. Очередной оператор PRINT продолжает заполнение выводной строки вслед за ранее накопленным материалом. [32]
Для хранения текущего адреса основной памяти в ходе трансляции используется счетчик адреса. Во время трансляции значение этого счетчика, обозначаемое в языке ассемблера знаком, приписывается каждой машинной команде, константе или области памяти. После трансляции очередного оператора значение счетчика адреса увеличивается на длину транслированного элемента программы. Если следующий элемент программы должен адресоваться с определенной границы, например с границы слова или двойного слова, то перед назначением ему адреса счетчик адреса устанавливается на соответствующую границу. [33]
Строки программы после этого находятся в памяти ЭВМ, но не выполняются. Для этого наберем на клавиатуре RUNNH и нажмем клавишу ВК - Программа начинает выполняться со строки с наименьшим номером. После выполнения очередного оператора переход к следующему происходит автоматически. [34]
При рассмотрении процедуры было установлено, что обращение к процедуре записывают в виде оператора. При таком обращении к процедуре осуществляется подстановка в тело процедуры фактических параметров ( по значению или по наименованию) и выполняется вычислительный процесс, описанный в теле процедуры. После этого выполняется очередной оператор, следующий за оператором обращения. [35]
Срабатывает управляющий символ после редактирования всех выводимых данных из списка оператора PRINT USING. Символ запрещает перевод строки. Это означает, что при выполнении очередного оператора печати произойдет наложение нового текста на старый. Символ - запрещает возврат каретки. Символ п запрещает оба перемещения, что приведет к продолжению печати в той же строке с прерванного места. [36]
Обычно операторы программы выполняются друг за другом в той последовательности, в которой они написаны. Это называется последовательным выполнением. Однако, как мы скоро увидим, различные операторы C позволяют программисту указать, что следующим должен выполняться не очередной оператор в тексте программы, а какой-то другой. Это называется передачей управления. [37]
В первом случае после каждого нажатия клавиши ПП из памяти вызывается очередной оператор программы по адресу, равному содержимому счетчика шагов, и на время его исполнения устанавливается флаг ФИ: F. Во втором случае при вводе директивы С / П ( Пуск) флаг ФИ: F устанавливается до считывания из программной памяти кода оператора С / П ( Стоп), после исполнения очередного оператора содержимое счетчика шагов автоматически увеличивается на единицу, из программной памяти вызывается и исполняется очередной оператор программы. [38]
В первом случае после каждого нажатия клавиши ПП из памяти вызывается очередной оператор программы по адресу, равному содержимому счетчика шагов, и на время его исполнения устанавливается флаг ФИ: F. Во втором случае при вводе директивы С / П ( Пуск) флаг ФИ: F устанавливается до считывания из программной памяти кода оператора С / П ( Стоп), после исполнения очередного оператора содержимое счетчика шагов автоматически увеличивается на единицу, из программной памяти вызывается и исполняется очередной оператор программы. [39]
Строки программы после этого находятся в памяти ЭВМ, но не выполняются. Программа начинает выполняться со строки с наименьшим номером. После выполнения очередного оператора переход к следующему происходит автоматически. [40]
При выполнении этих операторов СУБД может выявить ошибочные ситуации в исходных файлах - наличие дубликатов или отсутствие соответствующих экземпляров ( главных записей) цепей. Если возникла ошибка, СУБД не выполняет заданный ей оператор, формирует соответствующий код ошибки и таким образом сообщает программисту об аварийном завершении оператора. Поэтому после выполнения очередного оператора программист должен проанализировать наличие соответствующей ошибки ( по коду ошибки) и в случае необходимости выполнить нужные действия - напечатать сообщение об ошибке, вывести ошибочную входную запись в промежуточный файл для дальнейшего анализа и исправления. После этого программа может перейти к обработке очередной записи. [41]
Эти слова подсказывают нам, что мы, решая задачу экономии памяти, должны просмотреть операторы программы в порядке их выполнения. Тогда ( в случае линейной программы, записанной в столбик) выше очередного просматриваемого нами оператора будут операторы уже выполнившиеся, для которых мы уже как-то распорядились выбором величин, и ниже будут команды, еще не выполнившиеся. Мы не торопимся ввести новую величину для результата очередного оператора S, а смотрим на величины, обозначающие результаты операторов, стоящих выше. Что значит, что величина и, которая была результатом оператора R, еще не освободилась. Это значит, что ниже оператора S есть еще один оператор, Т, имеющий v своим аргументом. Достаточно ли точное это определение. [42]
При записи логических схем программ операторы располагаются в строку и нумеруются по порядку. Если лорядок должен быть нарушен, то после последнего ( правого) оператора ставят точку с запятой, а передачу управления обозначают стрелкой. Из логического оператора всегда должно быть два выхода, соответствующих значению логической переменной: истина - ложь. Невыполнение логического условия ( ложь) сопровождается, как правило, передачей управления очередному оператору; при выполнении условия естественная последовательность выполнения операторов изменяется. [43]
При включении питания микроЭВМ переходит в состояние анализа содержимого канала связи. Сообщение о выполнении адресованного ей оператора передается в канал связи сигналом КС: КС V OF до вывода результата в оперативную память. Это обеспечивает завершение сеанса связи и переход к следующему или запуск драйвера устройства вывода для уменьшения затрат времени. К моменту обращения к операционному стеку, драйверу индикаторного устройства или интерпретатору для выполнения очередного оператора содержимое стека будет готово к использованию. [44]
Чтобы программа была понятной человеку, а не только компьютеру, операторы надо отделять друг от друга. В языке BASIC принято очень простое правило: каждый следующий оператор начинается с новой строки. При написании программы каждая строка завершается нажатием клавиши ENTER. При переводе программы в машинный код транслятор, встретив код 13 понимает, что это конец очередного оператора. [45]