Детская энциклопедия
Том 1. Земля. Том 4. Растения и животные. Том 7. Человек. Том 10. Зарубежные страны.
Том 2. Мир небесных тел. Числа и фигуры. Том 5. Техника и производство. Том 8. Из истории человеческого общества. Том 11. Язык. Художественная литература.
Том 3. Вещество и энергия. Том 6. Сельское хозяйство. Том 9. Наша советская Родина. Том 12. Искусство.

21, где находилось прежнее значение ра­диуса.

Согласно шестой команде (8-21-22-01) про­изводится сравнение двух чисел с адресами № 21 и 22. Если первое из них меньше второго или равно ему, то машина возвращается к выполнению команды № 1, указанной в третьем адресе, в противном же случае она про­сто переходит к выполнению следующей (очередной) команды. В нашем случае новое значение радиуса (из ячейки № 21) срав­нивается с наибольшим его значением, для ко­торого еще нужно вычислять площадь круга. Если новое значение радиуса не больше 1000, машина проделывает над ним те же самые вы­числения, начиная с первой команды, и таким образом заполняет еще одну строку таблицы. Если же новое значение радиуса больше 1000, то машина переходит к выполнению седьмой команды, согласно которой она попро­сту останавливается с подачей на пульт управ­ления сигнала об окончании вычислений.

В работе вычислительной машины команда сравнения «8» и другие подобные ей команды «условного перехода» имеют исключительное значение. Они увеличивают гибкость машины, расширяют ее возможности и позволяют выпол­нять действия, для которых она на первый взгляд вовсе не приспособлена.

Многократное повторение одной и той же последовательности действий позволяет произ­водить длинные вычисления по сравнительно короткой программе (иначе ведь составление программы и введение ее в машину потребовало бы, пожалуй, не меньше времени, чем вычисле­ния вручную). Еще эффективнее другой прием сокращения программы, который состоит в си­стематической переработке ее в процессе самих вычислений. Ведь все команды программы изо­бражаются числами, хранящимися в запомина­ющем устройстве на равных правах с исходны­ми данными и промежуточными результатами. Ничто не мешает нам производить над этими числами арифметические действия и тем самым превращать одни команды в другие. Конечно, все эти преобразования команд на определен­ном этапе вычислений или при получении опре­деленных результатов должны быть заранее предусмотрены самой программой (подобно то­му, как устав всякой общественной организа­ции в числе других правил содержит обычно также и правила изменения самого устава).

Программа с преобразованиями

Допустим, что значения площади круга нужно определить только для некоторых ранее

вычисленных значений радиуса — скажем, за­писанных в ячейках памяти № 21—80 (рис. 10). Тогда, как и прежде, в ячейку № 20 помещаем p, а в ячейки № 81 и 82 — специальные числа 0-01-01-00 и 3-80-80-19, значение которых выяс­нится в дальнейшем. Вычисления будем вести по следующей программе:

По первой команде вычисляется квадрат первого значения радиуса (из ячейки № 21), который затем по второй команде умножается на p. По третьей команде вычисленное значе­ние площади круга заносится в таблицу окон­чательных результатов.

Теперь нужно повторить те же самые опе­рации, но уже над новым значением радиуса, хранящимся не в 21-й, а в 22-й ячейке. Для этого можно было бы включить в программу в качестве четвертой команды 3-22-22-19 (воз­вести новое значение радиуса в квадрат) с после­дующим повторением второй и третьей команд без изменения. Затем должна следовать коман­да 3-23-23-19 (возвести в квадрат значение ра­диуса из ячейки № 23) и т. д.

При большом количестве различных значе­ний радиуса программа получалась бы очень громоздкой. Легко сообразить, что вводимые вновь команды 3-22-22-19, 3-23-23-19,... могут быть получены из первой команды 3-21-21-19

436