|
одновременно поворачивали колесо следующего старшего разряда на один шаг.
Каждый такой поворот мог в свою очередь вызвать в какомто из разрядов переход
от 9 к 0 и, значит, освобождение защелки, которая снова возвращалась на место,
сделав перенос в следующий разряд. Таким образом, возвращение защелок на место
происходило последовательно, начиная с младшего разряда регистра. Такая система
получила название сложения с последовательным переносом. Все остальные
арифметические операции выполнялись посредством сложения. При вычитании счетные
колеса вращались в противоположную сторону (в отличие от машины Паскаля,
разностная машина Бэббиджа позволяла это делать). Умножение сводилось к
последовательному сложению, а деление — к последовательному вычитанию.
Описанный способ можно было применять не только для вычисления
многочленов, но и других функций, например, логарифмических или
тригонометрических, хотя в отличие от многочленов они не имеют строго
постоянных старших разностей. Однако все эти функции можно представить
(разложить) в виде бесконечного ряда, то есть многочлена простого вида, и
свести вычисление их значений в любой точке к задаче, которую мы уже
рассмотрели. Например, sin x и cos x можно представить в виде бесконечных
многочленов:
sin x = x — x3/3! + x5/5! … + (1)n • x2n+1/(2n+1)! +…
cos x = 1 — x2/2! + x4/4! … + (1)n • x2n/(2n)! +…
Эти разложения истинны для всех значений функции от 0 до p/4 (p/4=3,
14/4=0, 785) с очень большой точностью. Для значений x, которые больше p/4,
разложение имеет другой вид, но на каждом из этих участков тригонометрическая
функция может быть представлена в виде какогото многочлена. Количество пар
слагаемых ряда, которые принимаются в расчет при вычислениях, зависит от
точности, которую желают получить. Если, к примеру, требования к точности
невелики, можно ограничиться двумячетырьмя первыми слагаемыми ряда, а
остальные отбросить. Но можно взять больше слагаемых и вычислить значение
функции в любой точке с какой угодно точностью. (Заметим, что 2!=1•2=2;
3!=1•2•3=6; 4!=1•2•3•4=24 и т.д.) Так вычисление значений любой функции
сводилось Бэббиджем к одной простой арифметической операции — сложению. Причем
при переходе от одного участка функции к другому, когда требовалось сменить
значение разности, разностная машина сама давала звонок (он звонил после
выполнения определенного числа шагов вычисления).
Уже одно создание разностной машины обеспечило бы Бэббиджу почетное место
в истории вычислительной техники. Однако он не остановился на этом и начал
разрабатывать конструкцию гораздо более сложной — аналитической машины, которая
стала прямой предшественницей всех современных ЭВМ. В чем же заключалась ее
особенность? Дело в том, что разностная машина, по существу, оставалась еще
только сложным арифмометром и требовала для своей работы постоянного
присутствия человека, который держал в своей голове всю схему (программу)
расчетов и направлял действия машины по тому или иному пути. Понятно, что это
обстоятельство являлось определенным тормозом при выполнении расчетов. Около
1834 года Бэббиджу пришла в голову мысль: «Нельзя ли создать машину, которая
была бы универсальным вычислителем, то есть выполняла бы все действия без
вмешательства человека и в зависимости от полученного на определенном этапе
решения сама выбирала бы дальнейший путь вычисления?»
По существу это означало создание программноуправляемой машины. Та
программа, которая до этого находилась в голове оператора, теперь должна была
быть разложена на совокупность простых и ясных команд, которые бы заранее
вводились в машину и управляли ее работой. Никто и никогда еще не пытался
создать подобной вычислительной машины, хотя сама идея программноуправляемых
устройств уже была в то время реализована. В 1804 году французский изобретатель
Жозеф Жаккар придумал ткацкий станок с программным управлением. Принцип его
работы сводился к следующему. Ткань, как известно, представляет собой
переплетение взаимно перпендикулярных нитей. Переплетение это осуществляется на
ткацком станке, в котором нити основы (продольные) продеты через глазки —
отверстия в проволочных петлях, а поперечные продергиваются через эту основу в
определенном порядке при помощи челнока. При самом простом переплетении петли
через одну поднимаются, соответственно приподнимаются и продетые через них нити
основы. Между поднятыми и оставшимися на месте нитями образуется промежуток, в
который челнок протягивает за собой нить утка (поперечную). После чего поднятые
петли опускаются, а остальные приподнимаются. При более сложном узоре
переплетения нити следовало приподнимать в других различных комбинациях.
Опусканием и подниманием нитей основы вручную занимался ткач, что обычно
отнимало много времени. После 30летней настойчивой работы Жаккар изобрел
механизм, позволявший автоматизировать движение петель в соответствии с
заданным законом при помощи набора картонных карт с пробитыми в них отверстиями
— перфокарт. В станке Жаккара глазки были связаны с длинными иглами,
упирающимися в перфокарту. Встречая отверстия, иглы продвигались вверх, в
результате чего связанные с ними глазки приподнимались. Если же иглы упирались
в карты в том месте, где отверстий нет, они оставались на месте, удерживая так
же связанные с ними глазки. Таким образом, промежуток для челнока, а тем самым
и узор переплетения нитей определялся набором отверстий на соответствующих
управляющих картах.
Этот же принцип управляющих перфокарт Бэббидж предполагал использовать в
своей аналитической машине. Над ее устройством он работал в течение почти
сорока лет: с 1834го до конца своей жизни в 1871 году, но так и не смог ее
закончить. Однако после него осталось более 200 чертежей машины и ее отдельных
узлов, снабженных множеством подробных примечаний, объясняющих их работу. Все
|
|