Для аналитической машины было разработано и нарисовано несколько вариантов выполнения операции умножения. Один из них относится к умножению многоразрядных чисел с помощью последовательных сложений. Для машины этот метод был подробно разработан, причем был подготовлен ряд чертежей, поясняющих действие механизмов.
При перемножении двух чисел, каждое из которых с любым числом знаков от одного до тридцати, необходимо для экономии времени установить, какой из сомножителей имеет меньшее число значащих цифр. Для этого были разработаны специальные механизмы, названные цифровыми счетными устройствами. Меньшее из двух чисел становится множителем. Оба числа вводятся в арифметическое устройство и размещаются на соответствующих колонках. При выполнении умножения способом последовательных сложений цифры множителя соответственно уменьшаются до нуля; во время проведения операции для любой одной цифры множителя эксцентрик на его колесе выталкивает рычаг, который разрывает связь и систему зацепления для сложения, происходит просто ход; при этом следующий оборот главной оси связан с ходом вместо сложения; затем связи восстанавливаются, и последовательные сложения продолжаются.
Умножение должно обычно производиться от высшего разряда к низшему. Произведение^ обычно содержит накопленную ошибку вследствие округления цифр в каждом числе, с которым продолжают работать. Если тем не менее при записи числа последовательных сложений, которые в конце умножения должны давать сумму всех цифр множителя, известна максимально возможная ошибка, то при необходимости иметь точный результат должна быть проведена коррекция. Например, машина может быть использована для деления пополам некоторого числа и сложения этой величины с последними цифрами результата, где бы он ни был округлен.
Бэбидж разработал несколько вариантов выполнения операций деления на машине, в том числе при помощи таблиц. Все разработки сопровождались теоретическими расчетами и рисунками. Наиболее эффективным оказался метод последовательного вычитания: делитель и делимое вводятся в счетное устройство, затем производится последовательное вычитание, число вычитаний записывается.
Бэбидж впервые предложил идею программного управления ходом вычислений. В связи с этим самой важной характеристикой аналитической машины, которую не оценил сам ученый, стала возможность выполнения команды, получившая в настоящее время название команды условного перехода.
[1 Математически условный переход представляет собой операцию вида:
A = Am
при =1и Ai
+ 1 при = 0,где Ai
— адрес команды с кодом условного перехода, хранящийся в счетчике команд (СК); Аm — адресная часть команды, находящаяся в регистре команд (РК); — признак результата предыдущей операции. При = 0 происходит увеличение содержимого СК на единицу и переход к следующей команде, при = 1 — засылка в СК адреса команды, находящейся в РК, и переход к требуемой части программы.]Суть ее заключается в следующем: при Программировании математику нет необходимости знать, на какой ступени расчета изменится признак, который оказывает влияние на выбор хода расчета. Математик инструктирует машину, которая самостоятельно выбирает, по какому пути идти в случае появления определенного или нескольких признаков; программу можно составить совершенно различными способами: предусмотреть ее продолжение, перейти к другой части, пропустив ряд инструкций, попеременно переходить к разным частям программы и т. д.
Например, при расчете формулы, состоящей из нескольких членов, машина периодически проверяет необходимость продолжения или окончания расчета в случае, если все члены уравнения уже подсчитаны. В зависимости от промежуточного результата машина самостоятельно выбирает необходимый путь. Такой переход, так называемый условный переход (в соответствии с условием), произойдет в некоторый момент, который не интересует математика; машина определит его сама.
Введение операции условного перехода знаменовало собой начало замены логических, а не только вычислительных, возможностей человека машинами. С кодом условного перехода в вычислительных машинах связан и принцип обратной связи. Информационная обратная связь осуществляется между арифметическим устройством и устройством управления: изменение результата в арифметическом устройстве обуславливает выбор устройством управления той или иной команды для дальнейшего выполнения. Рассмотрим простой пример. Необходимо выбрать из двух чисел большее и продолжать с ним работать дальше. Числа должны быть помещены в двух колонках памяти, заранее подготовленных для их принятия; для этого перфокарты должны быть поставлены так, чтобы числа вычитались друг из друга. В одном случае должен получиться остаток, в другом — перенос, связанный с движением рычага. При переносе рычаг перемещается в самое высокое положение, соответствующее отрицательному результату, что в свою очередь позволяет ввести в работу массив предварительно подготовленных карт.