. Программа с преобразованиями
  
Азбука  Физкультура малышам

Детская Энциклопедия

Статистика

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

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

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

вычисленных значений радиуса — скажем, за­писанных в ячейках памяти № 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 последовательным прибавлением к ней числа 0-01-01-00, хранящегося в ячейке № 81:



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

По пятой команде выполняется срав­нение переадресованной команды (числа) из ячейки № 1 с командой 3-80-80-19, специально введенной для этого в ячейку № 82. Пока пер­вый и второй адреса переадресованной команды не больше 80 (использованы еще не все значения радиуса, хранящиеся в ячейках № 21— 80), согласно команде сравнения осуществляется возврат к началу программы, т. е. к исполне­нию переадресованной первой команды. Когда же все значения радиуса будут исчерпаны, команда примет вид 3-81-81-19, т. е. превзойдет число в ячейке № 82, и по команде сравнения машина перейдет к выполнению следующей (шестой) команды, означающей остановку.

 
ПОИСК
Block title
РАЗНОЕ