Cтраница 2
Мы убедились, что для достаточно простых задач процесс составления программы в кодах машины не представляет особых трудностей. При усложнении задач этот процесс становится все более трудным и программист вынужден проделывать все больший объем работы. До начала написания программы он должен решить сложную задачу - - распределение памяти машины, а затем выполнить трудную чисто техническую работу - представить алгоритм в виде последовательности команд ЦВМ. При этом алгоритм с точки зрения человеческого восприятия теряет всякую наглядность, а внесение исправлений связано с более или менее значительными изменениями всей программы. [16]
Для пользователей, имеющих опыт работы в Norton Commander, эта возможность во многом напоминает режим Menu. Более удобна, по сравнению с NC, возможность объединения программ в группы, предусмотрена возможность распределения памяти машины для прикладных задач. [17]
В период появления первых программно управляемых машин, обладавших еще небольшими возможностями, методов программирования не существовало. Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. [18]
Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. Распределение памяти машины, то есть размещение в запоминающих устройствах материала, относящегося к решению задачи ( исходных данных, команд, вспомогательных кодов, промежуточных и окончательных результатов), тесно связано с составлением команд. Не зная номеров ячеек, хранящих исходные данные и вспомогательные коды, не определив, куда нужно помещать результаты, нельзя составлять команды программы. С другой стороны, не зная заранее количества команд программы, а также количества промежуточных результатов, которые должны одновременно находиться в памяти, трудно произвести размещение материала в запоминающих устройствах машины. [19]
Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. Не зная номеров ячеек, хранящих исходные данные и вспомогательные коды, не определив, куда нужно помещать результаты, нельзя составлять команды программы. С другой стороны, не зная заранее количества команд программы, а также количества промежуточных результатов, которые должны одновременно находиться в памяти, трудно произвести размещение материала в запоминающих устройствах машины. [20]
Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. Распределение памяти машины, то есть размещение в запоминающих устройствах материала, относящегося к решению задачи ( исходных данных, команд, вспомогательных кодов, промежуточных и окончательных результатов), тесно связано с составлением команд. Не зная номеров ячеек, хранящих исходные данные и вспомогательные коды, не определив, куда нужно помещать результаты, нельзя составлять команды программы. С другой стороны, не зная заранее количества команд программы, а также количества промежуточных результатов, которые должны одновременно находиться в памяти, трудно произвести размещение материала в запоминающих устройствах машины. [21]
Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. Распределение памяти машины, то есть размещение в запоминающих устройствах материала, относящегося к решению задачи ( исходных данных, команд, вспомогательных кодов, промежуточных и окончательных результатов), тесно связано с составлением команд. Не зная номеров ячеек, хранящих исходные данные и вспомогательные коды, не определив, куда нужно помещать результаты, нельзя составлять команды программы. С другой стороны, не зная заранее количества команд программы, а также количества промежуточных результатов, которые должны одновременно находиться в памяти, трудно произвести размещение материала в запоминающих устройствах машины. [22]
Уже тогда заметили, что программирование объединяет две работы: распределение памяти машины и составление команд. Распределение памяти машины, то есть размещение в запоминающих устройствах материала, относящегося к решению задачи ( исходных данных, команд, вспомогательных кодов, промежуточных и окончательных результатов), тесно связано с составлением команд. Не зная номеров ячеек, хранящих исходные данные и вспомогательные коды, не определив, куда нужно помещать результаты, нельзя составлять команды программы. С другой стороны, не зная заранее количества команд программы, а также количества промежуточных результатов, которые должны одновременно находиться в памяти, трудно произвести размещение материала в запоминающих устройствах машины. [23]
Транслятор, обрабатывая операторную программу, распределяет память на строго фиксированнные группы ячеек. Внутри каждой группы в соответствующей форме внутреннего представления записывается информация, характеризующая программу. Ввод очередной автокодовой программы с помощью сочетания букв an приводит не к продолжению накопления информации в ячейках соответствующих групп, а к повторной записи в них новой информации. Таким образом, две операторные программы не могут храниться одновременно, причем любая из них, независимо от своего объема, занимает всю память машины, несмотря на наличие внутри групп свободных от информации ячеек. Обозначим условно группы распределения памяти машины буквами А, Б, В, Г, Д, Е, Ж, 3, И. [24]
Заканчивая комментарии к программе, обратим ваше внимание на переменную у. Ей мы присваиваем результаты промежуточных вычислений, которые нужны только для выполнения следующей операции. Мы их не храним долго в памяти машины, а, использовав, тут же затираем результатом следующих вычислений. Такой подход позволяет экономить память машины, не загромождая ее ненужной информацией. Для данной задачи это не важно: она слишком проста, но для больших задач экономное распределение памяти машины имеет принципиальное значение, иначе задача в ней может не поместиться. [25]