Одно число может быть сложено с любой суммой, уже подсчитанной в машине, соответствующим расположением ребер Aa, Bb и т. д. (рис. 5, слева внизу). Когда пластина PQ передвигается вниз к закрепленной пластине xz с отверстиями для ребер, цилиндрические прямозубные колеса (на рисунке не показаны) на оси pq поворачиваются на число зубьев, зависящих от положения ребер. Если колеса на pq находятся в состоянии, соответствующем, например, числу 543243, а ребра расположены (как на рисунке) в положении суммирования числа 314236, то новая сумма будет 857479. Перенос при этом может осуществляться путем прерывистого движения шестерен (внизу справа на рисунке), среди которых шестерня В будет перемещаться на 1/10 оборота при каждом обороте однозубого колеса А.
Вычитание в машине обеспечивается введением дополнительной шестерни, которая осуществляет реверс (обратный поворот) цифровых дисков: при этом, проходя перед окошком, цифры последовательно уменьшаются, и всякий раз, когда 0 проходит и появляется 9, происходит перенос. При вычитании производятся те же самые операции и используется тот же самый принцип зацепления. Таким образом, один и тот же механизм служит для сложения и вычитания; смена операций производится перемещением одного рычага.
Следует отметить, что при вычитании большего числа из меньшего должно быть сделано указание о месте нахождения высшего разряда. Это необходимо для переноса к месту слева от высшего разряда числа и в тех случаях, когда нужно пройти через ноль; если такое указание не было сделано, раздается звонок и машина останавливается.
Для аналитической машины было разработано и нарисовано несколько вариантов выполнения операции умножения. Один из них относится к умножению многоразрядных чисел с помощью последовательных сложений. Для машины этот метод был подробно разработан, причем был подготовлен ряд чертежей, поясняющих действие механизмов.
При перемножении двух чисел, каждое из которых с любым числом знаков от одного до тридцати, необходимо для экономии времени установить, какой из сомножителей имеет меньшее число значащих цифр. Для этого были разработаны специальные механизмы, названные цифровыми счетными устройствами. Меньшее из двух чисел становится множителем. Оба числа вводятся в арифметическое устройство и размещаются на соответствующих колонках. При выполнении умножения способом последовательных сложений цифры множителя соответственно уменьшаются до нуля; во время проведения операции для любой одной цифры множителя эксцентрик на его колесе выталкивает рычаг, который разрывает связь и систему зацепления для сложения, происходит просто ход; при этом следующий оборот главной оси связан с ходом вместо сложения; затем связи восстанавливаются, и последовательные сложения продолжаются.
Умножение должно обычно производиться от высшего разряда к низшему. Произведение^ обычно содержит накопленную ошибку вследствие округления цифр в каждом числе, с которым продолжают работать. Если тем не менее при записи числа последовательных сложений, которые в конце умножения должны давать сумму всех цифр множителя, известна максимально возможная ошибка, то при необходимости иметь точный результат должна быть проведена коррекция. Например, машина может быть использована для деления пополам некоторого числа и сложения этой величины с последними цифрами результата, где бы он ни был округлен.
Бэбидж разработал несколько вариантов выполнения операций деления на машине, в том числе при помощи таблиц. Все разработки сопровождались теоретическими расчетами и рисунками. Наиболее эффективным оказался метод последовательного вычитания: делитель и делимое вводятся в счетное устройство, затем производится последовательное вычитание, число вычитаний записывается.
Бэбидж впервые предложил идею программного управления ходом вычислений. В связи с этим самой важной характеристикой аналитической машины, которую не оценил сам ученый, стала возможность выполнения команды, получившая в настоящее время название команды условного перехода.
[1 Математически условный переход представляет собой операцию вида:
A = Am при ω =1
и Ai + 1 при ω = 0,
где Ai — адрес команды с кодом условного перехода, хранящийся в счетчике команд (СК); Аm — адресная часть команды, находящаяся в регистре команд (РК); ω — признак результата предыдущей операции. При ω = 0 происходит увеличение содержимого СК на единицу и переход к следующей команде, при ω = 1 — засылка в СК адреса команды, находящейся в РК, и переход к требуемой части программы.]
Суть ее заключается в следующем: при Программировании математику нет необходимости знать, на какой ступени расчета изменится признак, который оказывает влияние на выбор хода расчета. Математик инструктирует машину, которая самостоятельно выбирает, по какому пути идти в случае появления определенного или нескольких признаков; программу можно составить совершенно различными способами: предусмотреть ее продолжение, перейти к другой части, пропустив ряд инструкций, попеременно переходить к разным частям программы и т. д.
Например, при расчете формулы, состоящей из нескольких членов, машина периодически проверяет необходимость продолжения или окончания расчета в случае, если все члены уравнения уже подсчитаны. В зависимости от промежуточного результата машина самостоятельно выбирает необходимый путь. Такой переход, так называемый условный переход (в соответствии с условием), произойдет в некоторый момент, который не интересует математика; машина определит его сама.
Введение операции условного перехода знаменовало собой начало замены логических, а не только вычислительных, возможностей человека машинами. С кодом условного перехода в вычислительных машинах связан и принцип обратной связи. Информационная обратная связь осуществляется между арифметическим устройством и устройством управления: изменение результата в арифметическом устройстве обуславливает выбор устройством управления той или иной команды для дальнейшего выполнения. Рассмотрим простой пример. Необходимо выбрать из двух чисел большее и продолжать с ним работать дальше. Числа должны быть помещены в двух колонках памяти, заранее подготовленных для их принятия; для этого перфокарты должны быть поставлены так, чтобы числа вычитались друг из друга. В одном случае должен получиться остаток, в другом — перенос, связанный с движением рычага. При переносе рычаг перемещается в самое высокое положение, соответствующее отрицательному результату, что в свою очередь позволяет ввести в работу массив предварительно подготовленных карт.
Для вывода данных из аналитической машины предусматривалось использование перфокарт. Кроме того, машина должна была печатать на бумаге конечные и промежуточные результаты, по желанию вычислителя, в одном или в двух экземплярах. Г. Бэбидж писал, что печатание было совершенно необходимым требованием, без выполнения которого вычислительную машину нельзя было применять для научных целей. Постоянная опасность ошибок при переписывании чисел делала сомнительным получение точных результатов без применения печатающих устройств. С помощью механизма, предложенного Бэбиджем, машина должна набирать цифры или буквы и печатать результаты расчета или таблицы чисел.
Бэбидж предлагал также создать механизм для перфорирования цифровых результатов на бланке или металлических пластинках. Для хранения информации в памяти ученый собирался использовать не только перфокарты, но и металлические диски, которые будут поворачиваться на оси. Металлические пластинки и металлические диски могут теперь рассматриваться нами как далекие прототипы магнитных карт и магнитных дисков.
Только в одном отношении аналитическая машина не была автоматической. Функции, записанные таблично, должны были быть заранее отперфорированы. Так, например, цифровая карта, входящая в таблицу логарифмов, выглядела следующим образом:
Число | Табличное значение |
2 | 3 | 0 | 3 | 3 | 6 | 2 | 2 | 9 | 3 | 9 |
• | • | º | • | • | • | • | • | • | • | • |
• | • | º | • | • | • | • | • | • | • | • |
º | • | º | • | • | • | º | º | • | • | • |
º | º | º | º | º | • | º | º | • | º | • |
º | º | º | º | º | • | º | º | • | º | • |
º | º | º | º | º | • | º | º | • | º | • |
º | º | º | º | º | º | º | º | • | º | • |
º | º | º | º | º | º | º | º | • | º | • |
º | º | º | º | º | º | º | º | • | º | • |