Cтраница 2
Длину программы на компактном входном языке можно сократить, рационально используя возможные разнообразные способы реализации одних и тех же операторов алгоритма. Следует учитывать, что уменьшение длины программы складывается из небольших уменьшений числа шагов в отдельных фрагментах, а если длина оптимизируемой программы лишь на несколько шагов превышает число ячеек программной памяти, выигрыш от сокращения длины программы и устранения необходимости использования пакета программы оказывается значительным. Если при уменьшении длины отдельных фрагментов удается устранить и операторы безусловных переходов ( что соответствует требованиям структурирования программ), то заметно сократится и время выполнения программы. [16]
Совокупность операторов и связей между ними наиболее наглядно представляется графом алгоритма, который строится как композиция вершин, соответствующих операторам алгоритма, и дуг, отображающих связи между операторами. Начальная вершина не имеет ни одного входа и имеет только один выход. Такая вершина определяет начало алгоритма. Конечная вершина имеет не менее одного входа и ни одного выхода; определяет конец алгоритма. Операторная вершина соответствует основному оператору или оператору ввода - вывода. [17]
Характерной чертой логических операторов ( в отличие от арифметических) служит то обстоятельство, что после реализации логического оператора управление передается одному из двух операторов алгоритма, в зависимости от значения признака, вырабатываемого данным логическим оператором. Другими словами, направление продолжения процесса вычислений зависит от результатов вычислений, а именно от значения признака, вырабатываемого данным логическим оператором. [18]
Исполнителем алгоритма может быть не только человек, но и автомат ( в частности, ЭВМ), содержащий устройства ввода, распознавания и выполнения операторов алгоритма. В последнем случае алгоритм решения задачи представляют программой на входном языке ( языке программирования) с определенным множеством символов алфавита, из которых в соответствии с лексическими правилами формируются слова ( операторы), распознаваемые и исполняемые ЭВМ. Допустимое множество операторов входного языка образует его словарный запас, допустимые последовательности операторов в программе определяются синтаксическими правилами входного языка. [19]
Среди указанных составляющих для измерительной техники наибольший интерес представляют методические погрешности, которые в основном определяются неидеальностью выполнения типовых операторов и специфических, характерных для той или иной процедуры идентификации. К специфическим операторам алгоритмов идентификации относятся оператор решения системы линейных алгебраических уравнений и операторы нахождения вероятностных характеристик случайных процессов. [20]
Ветвь - некоторая совокупность выполняемых непосредственно друг за другом операторов данного алгоритма. Таким образом, один и тот же оператор алгоритма может принадлежать нескольким ветвям. Необходимо существование по крайней мере одной ветви во время выполнения программы. Среди всего множества ветвей выделяется одна ветвь, называемая главной ветвью. Если программа выполняется синхронно, то главная ветвь совпадает с самой программой. Каждой ветви, за исключением главной ветви, можно дать некоторое имя, которое может быть использовано для задания приоритета ветви. Имя ветви задается идентификатором. Ветвь может быть задана и переменной, которая называется переменной типа ветвь. Переменная типа ветвь может быть элементом массива или структуры. [21]
В скобках указаны адреса начальных тагов каждой строки, содержащей самостоятельный фрагмент. Подобная запись особенно удобна при составлении и оптимизации программ решения сложных задач с большим числом переходов и различными вариантами представления операторов алгоритма, который обычно также приходится уточнять в процессе составления подобных программ. [22]
Позже свойство надежности человека было разделено на базовую надежность и прагматическую. Если базовая надежность рассматривается как потенциальная способность организма человека к надежной работе, то в условиях реальной деятельности проявляется прагматическая надежность, которая выражается вероятностью выполнения оператором требуемого алгоритма действий, либо принятия оптимального ( или хотя бы приемлемого) решения. [23]
Асинхронное выполнение - это параллельное выполнение операторов, которое обусловливается наличием так называемых ветвей. Ветвь - некоторая совокупность выполняемых непосредственно друг за другом операторов данного алгоритма. Таким образом, один и тот же оператор алгоритма может принадлежать нескольким ветвям. Необходимо существование по крайней мере одной ветви во время выполнения программы. Среди всего множества ветвей выделяется одна ветвь, называемая главной ветвью. Если программа выполняется синхронно, то главная ветвь совпадает с самой программой. Каждой ветви, за исключением главной ветви, можно дать некоторое имя, которое может быть использовано для задания приоритета ветви. Имя ветви задается идентификатором. Ветвь может быть задана и переменной, которая называется переменной типа ветви. Переменная типа ветви может быть элементом массива или структуры. [24]
В основе алгоритмического метода описания деятельности оператора лежит ее разложение на элементарные операции. Этот метод хорошо приспособлен к описанию умственной деятельности операторов автоматизированных комплексов. Для записи алгоритмов применяются логические схемы, состоящие из последовательности букв, обозначающих элементарные акты алгоритма ( операторы) и логические условия. Последовательность выполнения оператором алгоритма определяется значениями логических условий, входящих в состав алгоритма. [25]
Следует отметить еще один прием сокращения длины программы - жаргонное использование элементов входного языка, не предусмотренное руководствами по применению ПМК. В программах на входном языке ПМК семейства Электроника МК-54 при вводе оператора КИП - f вместо оператора КИПО не происходит уменьшение на единицу содержимого регистра 0 при выполнении такого усовершенствованного оператора, что удобно использовать в различных ситуациях. Подобные находки имеются в арсенале каждого пользователя, имеющего опыт программирования ПМК с компактными входными языками. В то же время входные алгоритмические языки отличаются более жесткими лексическими правилами, ограничивающими разнообразие вариантов программной реализации операторов алгоритма и тем самым уменьшающими затраты времени на поиск наилучших вариантов. [26]
Следует отметить относительную простоту составления программ на алгебраических входных языках, форма записи которых достаточно близка к стандартизованной форме записи алгоритма решения задачи. В связи с этим профессиональные программисты обычно составляют алгоритм решения задачи непосредственно в виде программы на алгоритмическом входном языке и часто отождествляют алгоритм и программу. Простота представления программой алгоритмов решения задач особенно характерна для языка программирования Бейсик ( по крайней мере при программировании относительно простых задач), чем и объясняется преимущественное использование этого входного языка для микроЭВМ, предназначенных для широкого круга пользователей, не имеющих специальной подготовки по вычислительным технике и математике. Значительно сложнее представление алгоритмов решения прикладных задач на компактных входных языках. Это связано как с различной формой записи алгоритмов решения задач и программ на компактных входных языках, так и с относительным разнообразием способов отображения операторов алгоритма фрагментами программ на таких входных языках, вызывающих дополнительные затраты времени на выбор оптимального способа отображения операторов алгоритма. [27]
Следует отметить относительную простоту составления программ на алгебраических входных языках, форма записи которых достаточно близка к стандартизованной форме записи алгоритма решения задачи. В связи с этим профессиональные программисты обычно составляют алгоритм решения задачи непосредственно в виде программы на алгоритмическом входном языке и часто отождествляют алгоритм и программу. Простота представления программой алгоритмов решения задач особенно характерна для языка программирования Бейсик ( по крайней мере при программировании относительно простых задач), чем и объясняется преимущественное использование этого входного языка для микроЭВМ, предназначенных для широкого круга пользователей, не имеющих специальной подготовки по вычислительным технике и математике. Значительно сложнее представление алгоритмов решения прикладных задач на компактных входных языках. Это связано как с различной формой записи алгоритмов решения задач и программ на компактных входных языках, так и с относительным разнообразием способов отображения операторов алгоритма фрагментами программ на таких входных языках, вызывающих дополнительные затраты времени на выбор оптимального способа отображения операторов алгоритма. [28]