Теперь введем в машину команды, им отводятся последние четыре ячейки памяти — Я6, Я7, Я8, Я9. (Конечно же, в нашем примере все чрезвычайно упрощено, много важных подробностей опущено, все решение задачи показано очень схематично.) В ячейку Я1 вводим первую команду К1 —«Число из ячейки Я1 (то есть 1) разделить на число из ячейки Я2 (то есть на n
; пока у нас n = 1; получаем первый член ряда: 1/1); результат направить в Я4; перейти к команде К2». Все эти указания извлекаются из Я6, где записана команда К1, и поступают в АЛУ — арифметико-логическое устройство, которое по указанным адресам извлекает из нужных ячеек числа и производит с ними заданные операции (на нашей схеме и это показано очень упрощенно). Кроме того, АЛУ посылает результат в заданную ячейку и включает следующую команду, предписанную программой. В действительности всю эту работу выполняет процессор и, главным образом, его устройство управления. Но для простоты весь процессор представлен на рисунке Р-167 его вычисляющим блоком АЛУ.Команда К1, сделав свое дело, передает эстафету команде К2, которая должна прибавить вновь появившийся член ряда (ячейка Я4) к сумме всех предыдущих членов ряда, а она находится в ячейке Я5. У нас пока в этой ячейке пусто, наше 1/1 пока единственное слагаемое ряда. Поэтому по команде К2 оно в одиночестве попадает в Я5 и будет ждать там следующих членов ряда. Потом к 1/1 прибавится 1/2, к их сумме 1/1 + 1/2 = 3/2 прибавится 1/3, к новой сумме 3/2 + 1/3 = 11/6 прибавится 1/4 и так далее. Но это будет потом, а пока, выполнив команду К2, программа действует дальше.
После К2 программа начинает формировать следующий член ряда 1/(n
+ 1).Прежде всего команда КЗ формирует новый знаменатель, выполняя операцию: «Сложить число из ячейки Я2 (то есть n
) с числом из ячейки Я1 (то есть с 1; получится n + 1, на первый раз это 1 + 1 = 2), результат направить снова в Я2, стерев предыдущее число (n = 1)». Последняя часть команды — обычная экономия: число n = 1 уже не нужно, оно уже побывало знаменателем (1/1, команда К1), и, чтобы не занимать лишнюю ячейку памяти, 1 убираем из Я2 и помещаем туда 2; это к тому же упростит последующие действия, а именно выполнение последующей команды: она найдет нужное ей новое число по знакомому старому адресу Я2.Теперь можно было бы начать все сначала, с команды К1: найти член ряда 1/2 и прибавить его к предыдущей сумме. Однако до этого нужно проверить, не пора ли кончать вычисления. Поэтому после КЗ следует команда К4: «Сравнить число из ячейки Я2 (то есть n
= 2) с числом из ячейки ЯЗ (то есть с числом 10), если n =< 10, продолжить вычисления и перейти к команде К1 (в этом случае как раз и начнется новый цикл вычислений); если n > 10 (это случится сразу же при n = 11), прекратить вычисления, результат из ячейки Я5 (там находится последняя сумма всех предыдущих членов ряда, включая 1/10) направить в устройство вывода информации.На Р-167 показаны первые три цикла вычислений и самый последний цикл, когда знаменатель дроби, постепенно увеличиваясь, достигает 11. Как видите, порядок действий машины очень прост: выполняя деление, она находит очередной член ряда 1/n
прибавляет его к сумме всех предыдущих членов ряда, затем находит новый знаменатель n + 1, затем опять находит новый член 1/(n + 1), опять прибавляет его к предыдущей сумме, опять вычисляет новый знаменатель (n + 1) + 1 и т. д. И всякий раз машина проверяет, а не стало ли очередное n больше 10, дальше которого считать не велено.Найти сумму ряда до n
= 10 несложно, буквально за несколько минут это можно сделать и «вручную». Но вот досчитать сумму ряда до n = 100 или тем более до n = 1000 не так-то просто, на это понадобились бы уже не минуты, а часы. А для машины посчитать наш ряд, например до n = 1000, просто пустяк.Решая такую простейшую задачу, машина сама по заданной программе проведет довольно большой объем работ, проделав в общей сложности 4000 основных операций (1000 делений, 2000 сложений, 1000 сравнений) и массу вспомогательных. И на все это даже у очень небольшой современной ЭВМ ушли бы какие-то доли секунды. Вот что такое автоматизация вычислений, путь к которой открыли нам электронные схемы — сумматор и другие схемы процессора, быстродействующие коммутаторы, дешифраторы, устройства памяти.