TENTO PROJEKT JE SPOLUFINANCOVÁN EVROPSKÝM SOCIÁLNÍM FONDEM A STÁTNÍM ROZPOČTEM ČR.
Kapitoly z dějin informatiky 1
Od starověku do 19. století
Michal Musílek
Centrum talentů MFI, Pedagogická fakulta UHK, Hradec Králové 2010
2
Obsah Předmluva .......................................................................................................................................................... 3
1 Výpočetní pomůcky a mechanické kalkulátory ........................................................................................... 4
1.1 Počítání na prstech – včetně násobení .................................................................................................... 4
1.2 Prsty, číslice a číselné soustavy .............................................................................................................. 6
1.3 Abakus, neboli počítadlo ........................................................................................................................ 7
1.4 Mechanické kalkulátory ........................................................................................................................ 9
2 Počítání s logaritmy, aneb co si počít s násobením ..................................................................................... 13
2.1 Grafické násobení pomocí přímek a jejich průsečíků ........................................................................... 13
2.2 Algoritmus gelosia ................................................................................................................................ 14
2.3 Napierovy kostky .................................................................................................................................. 14
2.4 Logaritmy a logaritmické tabulky ........................................................................................................ 16
2.5 Logaritmická stupnice a kružítko ......................................................................................................... 17
2.6 Logaritmické pravítko .......................................................................................................................... 17
2.7 Ukázka výpočtu s logaritmickými tabulkami ....................................................................................... 18
2.8 Logaritmická stupnice a princip výpočtů kružítkem ............................................................................ 20
3 Mechanické počítače a děrnoštítkové stroje ................................................................................................ 21
3.1 Charles Babbage, tvůrce prvních počítačů ........................................................................................... 21
3.2 Babbageův Difference engine a diferenční stroje švédských konstruktérů .......................................... 21
3.3 Projekt Analytical engine ..................................................................................................................... 22
3.4 Ada Augusta King of Lovelace, první programátorka v historii informatiky ...................................... 23
3.5 Joseph Marie Jacquard – program zaznamenaný na děrných štítcích .................................................. 23
3.6 Herman Hollerith – záznam a zpracování dat na děrných štítcích ....................................................... 24
3
Předmluva
Toto vyprávění o nejzajímavějších momentech historického vývoje informatiky vzniklo jako
studijní text pro nadané zájemce o informatiku (případně výpočetní techniku či matematiku) z řad
středoškolských studentů v rámci projektu Centrum talentů MFI Pedagogické fakulty Univerzity
Hradec Králové. Stejně dobře může posloužit i jejich učitelům pro zpestření výuky informatiky.
Jeho hlavní cíl je motivační. Historická data jsem vždy ověřoval z několika nezávislých zdrojů, ale
spíš než o úplnost přehledu nejdůležitějších událostí z oblasti informatiky mi šlo o to ukázat, jakou
pozornost a úsilí věnovali naši osvícení předchůdci snaze nejprve usnadnit a později zautomatizovat
a urychlit zpracování informací. V počátečních obdobích vývoje šlo zejména o numerická data, tedy
o výpočty. Ne nadarmo se strojům na zpracování informací dodnes říká stručně počítače, ačkoliv
počítání už dávno není jejich jedinou a při pohledu zvenčí už ani převažující činností.
Abychom si uvědomili, jaký pokrok v rychlosti a přesnosti výpočtů znamenají samočinné počítače,
je dobré si vyzkoušet různé polozapomenuté výpočetní metody a pomůcky. Zkusme násobení
na prstech, na počítadle, přibližné výpočty pomocí logaritmické stupnice a kružítka či poměrně
přesné výpočty s logaritmickými tabulkami. Všechny jmenované metody jsou zajímavé z hlediska
použitých matematických principů, mají v sobě kouzlo dávných časů, ale jejich použití je zoufale
pomalé a těžkopádné ve srovnání se současným kapesním elektronickým kalkulátorem, o osobním
počítači nemluvě.
Pokud máte to štěstí, že jste po svých rodičích či prarodičích podědili logaritmické pravítko, budete
vědět, že jeho vývoj stál spoustu intelektuálního úsilí i řemeslného umu našich předků a budete si
ho jistě vážit. Určitě se na něm naučíte alespoň násobit, možná i další typy výpočtů.
Přeji vám, milí čtenáři, aby vás čtení kapitol z historie informatiky bavilo alespoň tak, jako mne
těšilo je pro vás psát.
V Hradci Králové v březnu 2010
Michal Musílek
4
1 Výpočetní pomůcky a mechanické kalkulátory
1.1 Počítání na prstech – včetně násobení
Prsty sloužily lidem od nepaměti jako nejstarší početní pomůcka a současně nejstarší vnější paměť. V našem
století používáme prsty už pouze jako vnější krátkodobou paměť pro přenos mezi řády při písemných
operacích s vícecifernými čísly.
Znázornění malých čísel od 0 do 5 se zdá být naprosto jednoznačnou záležitostí. Vždyť je přece založeno
na vzájemně jednoznačném zobrazení mezi počítanými předměty a prsty. Různé kultury však mohou stejné
číslo znázorňovat různě. Zatímco my vztyčujeme prsty počínaje palcem a konče malíčkem, některé jiné
kultury jakoby pokládají prsty do dlaně počínaje malíčkem a konče palcem. Takže stejné gesto, které pro nás
znamená číslo dvě (vztyčený palec a ukazovák), může znamenat tři (v dlani jsou tři prsty – malíček, prsteník
a prostředník).
Na prstech lze nejen sčítat, ale také násobit. Násobení na prstech bylo dříve běžnou dovedností, používalo se
ve středověku, ale s rozvojem jiných výpočetních pomůcek se postupně stalo „zapomenutým uměním“.
Jedná se o jednoduché postupy, pro které stačí umět zpaměti jen malou část násobilky – do 5 včetně a vyšší
čísla mezi sebou násobíme pomocí prstů. Představme si, že malíčky představují čísla 6, prsteníky 7,
prostředníky 8, ukazováky 9 a palce 10. Dotkneme se špičkami prstů odpovídající číslům, která chceme
vynásobit (6 až 10). Volné prsty nahoře představují doplňky těchto dvou čísel do deseti. Označme
tyto doplňky a a b a odvoďme si jak násobení na prstech funguje:
(10 – a) (10 – b) = 100 – 10 (a + b) + ab = [10 – (a + b)] 10 + ab .
Tedy počet prstů dole (směrem k malíčkům), včetně dotýkajících se, udává počet desítek, zatímco
součin prstů nahoře udává jednotky výsledku násobení.
Obr. 1 Ukázka násobení na prstech
Násobíme 8 krát 9. Počet prstů dole, včetně spojených, je 7
a znamená počet desítek (tedy 70). Horní volné prsty spolu
vynásobíme a tak získáme počet jednotek, tedy 1 . 2 = 2.
Výsledek násobení na prstech je 72.
Podobné postupy lze uplatnit také pro násobení větších čísel. Přesuneme se do velké násobilky
a budeme mezi sebou násobit dvě čísla z množiny {11, 12, 13, 14, 15}. Malíčky budou znamenat
čísla 11, prsteníky 12, prostředníky 13, ukazováky 14 a palce 15. Dotkneme se špičkami prstů
odpovídající číslům, která chceme vynásobit. Volné prsty nyní necháme stranou. Jako čísla a a b označíme
převis násobeného čísla přes desítku. Vynásobení tedy proběhne takto:
(10 + a) (10 + b) = 100 + 10 (a + b) + ab .
I zde počet prstů dole (směrem k malíčkům), včetně dotýkajících se, udává počet desítek, ale pozor!
Vždy je zde také jedna stovka jako základ a jednotky tentokrát získáme jako součin prstů dole, opět
počítáno včetně dotýkajících se prstů.
5
Obr. 2 Ukázka velké násobilky na prstech
Násobíme 14 krát 14. Počet prstů dole, včetně spojených, je 8
a znamená počet desítek (tedy 80). Dolní prsty spolu navíc také
vynásobíme a tak získáme počet jednotek, tedy 4 . 4 = 16.
Výsledek násobení na prstech je 100 + 80 + 16 = 196.
Do třetice budeme násobit dvě čísla z množiny {16, 17, 18, 19, 20}. Nyní budou malíčky
představovat čísla 16, prsteníky 17, prostředníky 18, ukazováky 19 a palce 20. Dotkneme se špičkami prstů
odpovídající číslům, která chceme vynásobit. Volné prsty nahoře představují nyní doplňky těchto dvou
čísel do dvaceti. Doplňky označíme a a b. Násobená čísla jsou 20 – a a 20 – b. Jejich vynásobením
získáme:
(20 – a) (20 – b) = 400 – 20 (a + b) + ab = 200 + 2 [10 – (a + b)] 10 + ab .
Tedy vezmeme základ 200 a k němu přičteme tolik desítek, kolik je dvojnásobek počtu prstů dole (směrem
k malíčkům), včetně dotýkajících se prstů. Součin volných prstů nahoře udává jednotky výsledku násobení.
Obr. 3 Ukázka velké násobilky – násobení čísel od 16 do 20 na prstech
Násobíme 19 krát 17. Stálý základ pro výpočet součinu dvou čísel
z množiny {16, 17, 18, 19, 20} je 200. K němu připočteme tolik desítek,
kolik je dvojnásobek počtu prstů dole, včetně spojených, tedy pro našich
6 prstů připočteme 120. Dohromady prozatím 320. Nakonec vynásobíme
horní volné prsty a tak získáme počet jednotek 1 . 3 = 3. Pomocí prstů
jsme určili, že 19 . 17 = 323.
Pro násobení čísel od 1 do 10 devíti existuje jiný zajímavý postup. Obě ruce položíme vedle sebe na stůl
hřbetem nahoru a prsty očíslujeme postupně od levého malíčku až po pravý malíček od 1 do 10, tj. levý
malíček představuje 1, levý prsteník 2, levý prostředník 3, levý ukazovák 4, levý palec 5, pravý palec 6 atd.
Prst odpovídající číslu, které násobíme devíti schováme do dlaně, ostatní prsty necháme vztyčené. Potom
počet prstů vlevo od schovaného udává počet desítek, zatímco prsty vpravo od schovaného udávají jednotky.
Označme a číslo, které násobíme devíti. Pak počet prstů vlevo od schovaného je a – 1, zatímco počet prstů
vpravo od schovaného je 10 – a. Důkaz správnosti postupu:
10 (a – 1) + (10 – a) = 10a – 10 + 10 – a = 9a .
Podobně můžeme násobit devíti čísla od 11 do 20. Obě ruce opět položíme vedle sebe hřbetem nahoru. Prsty
tentokrát představují čísla od 11 do 20. Prst odpovídající číslu, které násobíme devíti schováme do dlaně,
ostatní prsty necháme vztyčené. Tentokrát levý malíček představuje stabilně jednu stovku, zbývající prsty
vlevo od schovaného představují počet devítek a prsty vpravo od schovaného počet jednotek. Přímý důkaz
správnosti postupu výpočtu je opět jednoduchý. Označme a pořadí prstu představujícího číslo 10 + a, pak
můžeme psát:
100 + 10 (a – 2) + (10 – a) = 100 + 10a – 20 + 10 – a = 90 + 9a = 9 (10 + a) .
6
1.2 Prsty, číslice a číselné soustavy
Počet prstů na lidských rukou se stal také předlohou pro číslice a zápis čísel v různých číselných soustavách.
Římské číslice vznikly napodobením tvaru jednotlivých prstů I, dlaně V, či dvou spojených dlaní X. Římská
číselná soustava však nebyla poziční, takže pro vyšší řády se už používala jiná písmena, odvozená pro změnu
z názvů příslušných jednotek.
Obr. 4 Sumerský zápis čísel
Sumerové zapisovali čísla pomocí klínového
zápisu. Svislý klín znamenal prst, tedy jedničku,
vodorovný klín desítku. Historikové zjistili, že
tabulky s prvními číselnými zápisy jsou starší
než tabulky se záznamy jazykových textů. Zdá
se, že číslice tu byly dříve než písmena.
Sumerové používali nejprve desítkovou číselnou soustavu, ale později (kolem roku 2100 př. n. l.) ji
doplnili na šedesátkovou číselnou soustavu. Základní číslice byly vlastně jen dvě. Svislý klín
znamenající jedničku a vodorovný klín znamenající desítku. Kombinací těchto dvou symbolů se
zapisovala čísla od 1 do 59. Zápisy napsané několikrát vedle sebe znamenaly jednotlivé řády
(jednotky, šedesátky, 3600, …). Používaly se i šedesátinné zlomky (60
1,
3600
1, …). Problém byl
v absenci symbolu odpovídajícímu naší desetinné čárce. Symbol pro nulu nejprve neexistoval, ale
později byl doplněn. Šedesátka souvisela s měřením času a také s kalendářem a do dnešních dob se
nám také zachovala v jednotkách času. Hodina má šedesát minut a minuta šedesát sekund. Kruh
dělíme na 360 stupňů, což je násobek šedesáti blízký počtu dní v roce.
Obr. 5 Mayský zápis čísel
Prázdná lastura je symbolem nuly. Ostatní čísla se zapisují
kombinací kroužků (prst, jednotka) a proužků (končetina,
pětka) od 1 do 19. Větší čísla se zapisují pomocí dvacítkové
poziční číselné soustavy.
Souvislost s kalendářem má také Mayský číselný poziční systém. Jeho základem je pro změnu číslo
dvacet a čísla od 1 do 19 se vyjadřují kombinací dvou symbolů. Kroužek odpovídá jednomu prstu,
tedy jedničce, vodorovný pruh celé končetině, tedy pětce. Číslo 19 tedy zapíšeme jako tři proužky
a čtyři kroužky (kroužky píšeme vždy nahoru a vodorovné proužky dolů). Pro nulu se používá
zvláštní symbol znázorňující prázdnou lasturu. Číselná soustav je poziční, tedy poslední řád jsou
jednotky, předposlední dvacítky, další by měl být 400, ale zde se právě projeví souvislost systému
s kalendářem, takže třetí pozice zprava má váhu 360 jednotek. Představuje vlastně jeden rok s 18
měsíci po 20 dnech. Mayové ovšem znali také sluneční rok s 365 dny a používali navíc posvátný
rok s 260 dny. Systém přidávání přestupného dne k některým rokům byl dokonalejší než u námi
používaného Gregoriánského kalendáře.
7
Obr. 6 Čínské počítací hůlky
Číňané už ve 4. stol. př. n. l. užívali
ke znázorňování čísel a počítání
bambusové hůlky. Kolmé systémy
se střídaly na pozicích řádů.
Čínské bambusové tyčinky sloužící nejen ke znázornění čísel, ale také k počítání používají dva
navzájem kolmé systémy znázornění číslic od 1 do 9. Nula se buď znázornila vynecháním místa,
nebo se do tohoto prostoru místo hůlek položil kámen.
Obr. 7 Znázornění čísla 6258 pomocí čínských počítacích hůlek
1.3 Abakus, neboli počítadlo
Počítání na abaku bylo ve středověku v západní a střední Evropě stejně populární jako počítání
na prstech či počítání na linách. Teprve s nástupem renesance zvítězilo počítání s arabskými čísly
nad počítáním s výpočetními pomůckami.
Nestarší starověké abaky byly hliněné destičky s žlábky, do nichž se vkládaly počítací kaménky
(kulaté oblázky). Římský abakus měl u žlábků symboly římských číslic (M, D, C, L, X, V, I).
Podobný systém se používá dodnes v Číně (počítadlo suan pan), jednotlivé počítací kameny
(korálky, nejčastěji dřevěné) jsou navlečeny na bambusových tyčkách, či kovových drátech tak, že
dva s pětinásobnou vahou jsou nad přepážkou a pět s jednonásobnou vahou pro daný řád jsou pod
přepážkou. Při znázorňování čísel a výpočtech se počítají kameny přisunuté k přepážce, zatímco
odsunuté k okrajům jsou momentálně „mimo hru“.
Obr. 8 Čínské počítadlo suan pan
Počítací kameny nad přepážkou mají
váhu 5, zatímco ty pod přepážkou 1.
Zleva doprava tedy tento suan pan
znázorňuje číslice 0, 6, 4, 2, 5, 3, 6, 2,
6, 0, 9, 2 a 1. Můžeme také říci, že je
zde zobrazeno číslo 642 536 260 921.
Japonci jsou známí svým vztahem k jednoduchosti a miniaturizaci. Uvědomili si, že všechny číslice
od 0 do 9 mohou znázornit pomocí jednoho kamene s váhou 5 a čtyř kamenů s váhou 1. Čínský
systém 2 + 5 zjednodušili na 1 + 4. Tak podle počtu kamenů nad a pod přepážkou lehce rozeznáme
8
čínský suan pan a japonský soroban. Japonci mají navíc v oblibě jiný tvar počítacích kamenů, který
má po obvodu výraznější hranu.
Obr. 9 Japonské počítadlo soroban
Od počítadla suan pan se liší menším počtem
kamenů (1 + 4 pro každý řád) a také jejich
tvarem. Znázorňování číslic od 0 do 9 je však
stejné jako u čínského počítadla suan pan.
Obr. 10 Soroban a elektronický kalkulátor
Počítání na sorobanu je v Japonsku populární
i ve 20. Století. Proto firma SHARP vyráběla
pro domácí trh kombinaci elektronického
kalkulátoru a tradičního počítadla.
Obr. 11 Suan pan s tiskovým výstupem
Nevýhodou počítadel proti kalkulátorům
či počítačům může být absence tiskového
výstupu. Jak je vidět na obrázku, technici
si poradili i s tímto problémem, takže
nyní mají milovníci tradiční výpočetní
pomůcky k dispozici suan pan s tiskem.
Posledním typem počítadla je počítadlo s vodorovnými řadami počítacích kamenů po 10 kusech.
Chybí zde přepážka, takže všechny počítací kameny mají stejnou váhu. Zatímco u nás v Čechách
a na Moravě je počítadlo považováno za dětskou hračku, v lepším případě za pomůcku pro výuku
sčítání a odčítání v oboru přirozených čísel od 1 do 100, směrem na východ od nás, zejména
v zemích bývalého SSSR, je stále užívanou výpočetní pomůckou. Zatímco Čech leckdy ani neví, že
na počítadle je možné nejen sčítat a odčítat, ale také násobit a dělit, Rus ovládá na sčotu všechny
základní početní operace, rozlišuje řády, počítá i s desetinnými čísly. Simulátor sčotu a popis
výpočtů na něm s řadou ilustrací lze nalézt na webu1 autora.
1 http://www.musilek.eu/michal/scot.html?menu=mat
9
Obr. 12 Sčot a znázornění čísel na sčotu
Sčot má v každé řadě 10 počítacích kamenů. Pro lepší
orientaci počtáře jsou prostřední dva kameny barevně
označeny (často jsou černé). Můžeme si to představit
tak, že položíme ruce před sebe na stůl hřbety nahoru.
Potom palce odpovídají černým kamenům, zatímco
ostatní prsty světlým.
Kratší řada kamenů odděluje celá čísla od desetinných
zlomků. Dá se říct, že představuje desetinnou čárku.
Jednotlivé cifry jsou znázorněny kameny posunutými
k levému okraji sčotu. Na obrázku je znázorněno číslo
2 387 936.
1.4 Mechanické kalkulátory
První mechanický kalkulátor byl málem zapomenut kvůli útrapám a zmatkům třicetileté války.
Prototyp sestrojil roku 1623 profesor astronomie na univerzitě v Tübingenu Wilhelm Shickard
(1592 – 1635). Jeho „počítací hodiny“, jak se kalkulátoru díky využití ozubených kol přezdívalo,
ovládaly všechny čtyři základní početní operace, ovšem nikoliv čistě mechanicky. Přístroj
vyžadoval kvalifikovanou obsluhu, počtář musel rozumět násobení pomocí tzv. Napierových
kostek, o nichž se zmíníme ve druhé kapitole.
Obr. 13 Wilhelm Shickard, konstruktér prvního mechanického kalkulátoru
Shickard korespondoval s Johanem Keplerem, a to již v době, kdy působil jako
astronom u císařského dvora v Praze. Během třicetileté války Shickard bohužel
zahynul, pravděpodobně na infekční onemocnění, a všechny do té doby
vyrobené exempláře kalkulátoru byly zničeny. Naštěstí se dochovaly původní
plány, podle kterých byla v roce 1960 postavena funkční replika.
Obr. 14 Původní skici Shickardova
mechanického kalkulátoru
Na základě těchto skic a dopisů, které
psal Shickard Keplerovi se podařilo
vyrobit fungující exempláře přístroje
po více než 400 letech od původního
vynálezu.
10
Obr. 15
Replika Shickardova
kalkulátoru v muzeu
v Tübingenu
Dlouho byl za konstruktéra prvního mechanického kalkulátoru v historii považován Blaise Pascal
(1623 – 1662), který svoji Pascalinu, jak kalkulátor nazvali jeho první uživatelé, sestrojil ve svých
19 letech, tedy roku 1642. Pascalův otec byl správcem královských daní a Blaise chtěl kalkulátor
setrojit pro usnadnění daňové evidence. Stojí za zmínku, že Blaisův otec se kvůli nově zavedeným
daním dostal do sporu s kardinálem Richelieu a rodina se proto již roku 1638 stěhovala z Paříže
do Rouenu.
Obr. 16
Blaise Pascal
Obr. 17 Pascalina
Během svého života dal B. Pascal vyrobit více než 50 mechanických
kalkulátorů, jejichž konstrukci postupně vylepšoval a zdokonaloval.
Kalkulátor pouze sčítal a odečítal, neuměl násobit a dělit. Oblíbený
byl pro svoji spolehlivost a jednoduchou obsluhu.
Také Anglie přispěla k rozvoji mechanických kalkulátorů. Královský mechanik Samuel Morland
(1625 – 1695) sestrojil roku 1666 první kalkulátor, který uměl nejen sčítat a odečítat, ale také
násobit a dělit. Přenos do vyššího řádu však nebyl zautomatizován a hlavně byl přístroj mnohem
méně spolehlivý než Pascalina, což bylo dáno nevhodnou konstrukcí. Proto také nebyl vyráběn
ve větším rozsahu.
11
Obr. 17 Sir Samuel Morland
Konstruktér prvního kalkulátoru, který uměl násobit (i když ne úplně
automaticky a ne docela spolehlivě). Jako zajímavost můžeme uvést,
že v jedné z etap svého života pracoval ve špionážních službách a že je
jednou z řady osobností informatiky, které se kromě vývoje výpočetní
techniky zabývaly také kryptologií.
Obr. 18
Gottfried Wilhelm Leibniz
Po prvních pokusech, kdy se
snažil zdokonalit Pascalinu,
pochopil, že pro násobení je
potřeba nový konstrukční
prvek – Leibnizovo kolo.
Pro mechanickou realizaci násobení je potřeba kolo s různým počtem aktuálně zabírajících zubů.
Německý filozof, matematik a mechanik Gottfried Wilhelm Leibniz (1646 – 1716) sestrojil roku
1675 kalkulátor, pro který navrhl jako nový konstrukční prvek kolo, či spíše válec s různě dlouhými
zuby. Posunováním menšího ozubeného kolečka se dal měnit počet zubů, které se během výpočtu
dostanou do záběru. Leibnizovo kolo (nazývané také Leibnizův válec) se stalo základním prvkem
mechanických kalkulátorů na více než 200 let (až do doby, kdy jej nahradila modernější Odhnerova
konstrukce kola s proměnným počtem zubů). Pro informatiku má význam také Leibnizův objev
dvojkové číselné soustavy a popis výpočtů v ní.
Obr. 19 Charles Xavier Thomas de Colmar a jeho mechanický kalkulátor zvaný Arithmometer
Komerčně úspěšná byla konstrukce francouzského vynálezce Charlese X. Thomase de Colmar
(1785 – 1870) z roku 1820 známa pod názvem Arithmometer, nebo také Thomasův kalkulátor.
12
Thomas de Colmar byl za svůj vynález vyznamenán řádem čestné legie a to dokonce dvakrát (1821
rytířem čestné legie a 1857 důstojníkem čestné legie). Protože se věnoval především pojišťovnictví,
začal se sériovou výrobou Arithmometru poměrně pozdě (1852). Do roku 1870, kdy umírá, vyrobil
jeho závod více než 1000 kusů. Arithmometer byl tedy prvním sériově vyráběným mechanickým
kalkulátorem na světě. Byl zkonstruován a vyráběn s důrazem na vysokou spolehlivost, aby mohl
být používán ve vládních agenturách, bankách, pojišťovnách či observatořích. Jeho výroba běžela
až do začátku 1. světové války (1914).
Obr. 20
Willgodt Theophil Odhner
Vynálezce moderního kola
s proměnným počtem pinů
(zubů).
Obr. 21 Odhnerovo kolo
Nový konstrukční prvek – kolo, jehož počet zubů bylo možné měnit nastavením páčky – vymyslel
švédský vynálezce Willgodt Theophil Odhner (1845 – 1905) v roce 1873 a patentoval jej o dva
roky později. Kalkulátory s Odhnerovými koly se vyráběly ještě v 70. letech 20. století.
Obr. 22 Originál Odhner LUSID mechanický kalkulátor
13
2 Počítání s logaritmy, aneb co si počít s násobením
S rozvojem astronomie a fyziky na počátku 17. století vystupuje naléhavě potřeba rozsáhlých a přesných
numerických výpočtů. Dalekohled byl objeven roku 1608 nezávisle několika brusiči čoček a již roku 1609
jej Galileo Galilei zamířil na oblohu, ale již před tím prováděl Tycho Brahe pouhým okem s využitím
zaměřovacích přístrojů (velkých zaměřovacích úhloměrů, nazývaných kvadranty a sextanty) tak přesná
měření, že z nich Johanes Kepler mohl odvodit zákony pohybu planet Sluneční soustavy. Zatímco předchozí
praxe potřebovala především obchodní počty a důležité bylo umět rychle sčítat a odčítat, vědeckotechnické
výpočty vyžadují mnohem častěji násobení, případně dělení. Nahradit násobení opakovaným sčítáním není
rozumné, protože to výpočty velmi zpomaluje. Tuto kapitolu věnujeme násobení a výpočetním metodám
a pomůckám, které ho usnadňují a urychlují.
2.1 Grafické násobení pomocí přímek a jejich průsečíků
Dříve než se budeme zabývat algoritmem gelosia a Napierovými kostkami, ukážeme si hezkou
pomůcku pro znázornění násobení víceciferných čísel, která je založena na podobném principu. Jde
o grafické násobení pomocí skupin rovnoběžných přímek a jejich průsečíků. Ukážeme si její použití
na příkladu: 253 x 124.
1 2 4
Obr. 23 Grafické násobení pomocí přímek 2 5 3
2 9 21 26 12
Obr. 24 Počítání průsečíků přímek pro stanovení součinu
Jednotlivé číslice obou činitelů znázorníme skupinami navzájem rovnoběžných přímek. Každému
z činitelů přidělíme jeden směr. Skupiny průsečíků ležících pod sebou patří jednomu řádu výsledku,
14
takže je budeme sčítat dohromady. Na obr. 24 jsme skupiny průsečíků označili žlutým, nebo bílým
podbarvením. V jednotlivých řádech od desetitisíců po jednotky dostaneme počty průsečíků: 2, 9,
21, 26 a 12. Červeně zapsané číslice znamenají přenos do vyššího řádu, takže součin 253 x 124 je
roven 31372.
2.2 Algoritmus gelosia
Jedním z algoritmů používaných ve středověku pro násobení byl algoritmus gelosia, tedy žaluziový
algoritmus. Pro násobení si připravíme tabulku s čtvercovými poli, která rozdělíme úhlopříčkou
na dvě shodné části. Počet sloupců, resp. řádků tabulky je dán počtem cifer prvního, resp. druhého
činitele. Nad sloupce, resp. před řádky můžeme napsat jednotlivé číslice činitelů. Dovnitř každého
pole tabulky zapíšeme součin příslušných dvou číslic tak, že číslice řádu desítek bude nad
úhlopříčkou a číslice řádu jednotek pod ní.
Obr. 25 Násobení algoritmem gelosia – příprava tabulky
Zvolili jsme součin 253 x 124. V 1. sloupci jsou násobky 2, ve 2. násobky
5 a ve 3. násobky 3. V 1. řádku násobíme jedničkou, ve 2. řádku dvěma
a ve třetím řádku čtyřmi. Pokud je součin cifer menší než 10, zapisujeme
jej pouze pod úhlopříčku a místo nad úhlopříčkou necháváme volné. Pokud
je součin cifer dvouciferné číslo, zapisujeme desítky nad a jednotky pod.
Obr. 26 Násobení algoritmem gelosia – výpočet součinu
Ve vyplněné tabulce počítáme součty po jednotlivých „žaluziích“, které jsou
vyznačeny střídavě bílou a žlutou barvou. Začneme vpravo dole, poslední
číslice je 2, pokračujeme žlutým pruhem 6 + 1 + 0 = 7, třetí pruh nám dává
3 + 0 + 2 + 8 = 13, tedy nesmíme zapomenout na přenos do vyššího řádu, …
Výpočet součtu pak provádíme po jednotlivých „žaluziích“, tj. šikmých pruzích, které jsou v obr. 26
vyznačeny barevně. Začínáme v pravém dolním rohu a postupujeme směrem nahoru a doleva. Je-li
součet v některé „žaluzii“ větší než deset, zapíšeme do výsledku pouze číslici řádu jednotek a řád
desítek přeneseme do vyššího řádu, tedy přičteme k součtu následující „žaluzie“. Součty „žaluzií“
v obr. 26 jsou postupně 2, 7, 13, 10, 2 a výsledek násobení je tedy 31372.
2.3 Napierovy kostky
Jedním ze vzdělanců, kterým leželo usnadnění a urychlení násobení větších čísel na srdci, byl
skotský matematik, fyzik a astronom John Napier (1550 – 1617). První pomůckou, kterou vynalezl
byly tzv. Napierovy kostky (rozuměj kůstky, kosti), pravidelné čtyřboké hranoly, které měly výšku
rovnou desetinásobku délky hrany podstavy a na jejichž stěnách byly připraveny násobilky všech
číslic od 1 do 9 v podobě užívané algoritmem gelosia. Bílé podlouhlé hranoly připomínaly svým
tvarem kosti, odtud název. Při počítání se vybraly vhodné kostky a jejich boční stěny (na každé
ze čtyř bočních stěn byla jiná násobilka, protože číslice se v každém z činitelů mohou opakovat),
15
a tak se poskládal jeden z činitelů. Druhý činitel vznikl vybráním odpovídajících řádků ve skládačce
z kostek odpovídajících prvnímu činiteli.
Obr. 27 Napierovy kostky
Ukázka výpočtu součinu čísel
414624 x 13569:
414624
1243872
2073120
2487744
3731616
----------
5626033056
Obr. 28 John Napier
Lord of Merchiston
(1550 – 1617)
Jak jsme se už dozvěděli v první kapitole, byly Napierovy kostky v upravené podobě (místo hranolů
byly použity válečky, které měly po svém obvodu všechny násobilky od 0 do 9) součástí prvního
mechanického kalkulátoru. Shickardovu kalkulátoru se přezdívalo počítací hodiny, protože přičítání
čísel do střadače bylo realizováno mechanicky pomocí ozubených kol. Násobení však probíhalo tak,
že jeden z činitelů se postupně násobil ciframi druhého činitele pomocí Napierových kostek, které
byly umístěny na válečcích a z nichž se vybíral příslušný řádek odsunutím šablony s výřezy.
Obr. 29 Napierovy kostky jako součást
Shickardova kalkulátoru
Válečky skryté za šablonami v horní části
Shickardova kalkulátoru měly po obvodu
sloupečky čísel odpovídající Napierovým
kostkám s násobilkami číslic 0 až 9. Váleček
se natočil tak, aby se číslice prvního činitele
objevily v horních výřezech (na fotografii
jsou zde číslice 0, 0, 9, 5, 3 a 1, tedy prvním
činitelem je číslo 9531). Z druhého činitele
se braly postupně jednotlivé číslice, výběr se
provedl posunutím šoupátka směrem doleva
(na fotografii číslice 7). Přečtený výsledek
se přenesl na ovládání střadače a přičetl se
k jeho aktuálnímu stavu. Přičtením součinů
pro jednotlivé číslice 2. činitele se správným
řádovým posunem získáme součin.
16
2.4 Logaritmy a logaritmické tabulky
John Napier se zapsal do dějin informatiky svými kostkami, které urychlily provádění algoritmu
gelosia. Přesto dál hledal nějaký nový princip, který by přinesl výraznější zrychlení násobení a také
by vyřešil dělení (Napierovy kostky řešily pouze násobení). To ho přivedlo na myšlenku logaritmu.
Funkce, která by dokázala převést násobení na sčítání a dělení na odečítání. Nejen myšlenka, ale
také název funkce pochází od Napiera. Roku 1614 vydal knihu „Mirifici logaritmorum canonis
descriptio“ (Popsání podivuhodného zákona logaritmů), jež obsahovala nejen pravidla pro počítání
s logaritmy, ale také první logaritmické tabulky pro základ přibližně rovný převrácené hodnotě
Eulerova čísla e. Povšimněte si, že Napierovi bylo v tomto roce 64 let.
Další impuls k rozvoji užívání logaritmů dal světu anglický matematik, první profesor geometrie
na Gresham College v Londýně, Henry Briggs (1561 – 1630), který dostal výtisk Napierova spisu
a a roku 1616 se vypravil za Napierem, aby s ním v Edinburgu konzultoval zobecnění a praktické
použití logaritmů a přesvědčil ho k použití základu 10. Roku 1617 publikoval osmimístné tabulky
dekadických logaritmů čísel od 1 do 1000. Roku 1624 publikoval čtrnáctimístné tabulky logaritmů
čísel od 1 do 20 000 a od 90 000 do 100 000. Své dílo později doplnil o čtrnáctimístné tabulky
dekadických logaritmů goniometrických funkcí sinus a tangens s přesností 0,01°. Důsledným
použitím dekadických logaritmů ve svých tabulkách dal Briggs přírodovědcům silný nástroj, který
několikanásobně zrychlil vědecké výpočty.
Nezávisle na skotech přišel na myšlenku logaritmické funkce švýcarský jemný mechanik, hodinář,
výrobce astronomických přístrojů a matematik Jost Bürgi (1552 – 1632), který během působení
u dvora císaře Rudolfa II., kde působil od roku 1601, objevil princip a sestavil tabulky logaritmů se
základem rovným přibližně Eulerovu číslu e. Tabulky dokončil již roku 1611, ale publikoval je
bohužel až roku 1620, čímž se připravil o prvenství. Jeho přínos zůstal dlouho téměř nepovšimnut,
zřejmě také s celkovým úpadkem vědy v zemích koruny české v době pobělohorské.
Obr. 30 Jost Bürgi (Iobst Burgius)
Zručný švýcarský mechanik, který uměl navrhovat a vyrábět
mechanické modely pohybů nebeských těles, musel mít vynikající
astronomické vzdělání. To přitom musel získat z větší části jako
samouk. Neuměl latinsky, neměl formální vzdělání. Matematické
schopnosti prokázal jako asistent Johana Keplera, kterému pomáhal
zpracovávat rozsáhlé výsledky astronomických pozorování Tycha
Brahe. Při svých výpočtech používal logaritmy o několik let dříve
než je John Napier publikoval. Protože však byl spíše praktikem,
podcenil potřebu včas publikovat své teoretické vědecké výsledky.
Zdá se, že i jeho dokonalé mechanické modely byly originálním
způsobem publikování astronomických objevů, které neuměl popsat
v jediném vědeckém jazyce své doby – v latině.
17
2.5 Logaritmická stupnice a kružítko
Edmund Gunter (1581 – 1626), anglický matematik velšského původu, kolega Henryho Briggse
na Gresham College v Londýně (Briggs byl jmenován profesorem geometrie, Gunter astronomie)
začal pro rychlé přibližné výpočty používat místo logaritmických tabulek logaritmickou stupnici,
na níž odměřoval a přenášel vzdálenosti kružítkem. Tím připravil půdu pro vynález logaritmického
pravítka.
Použití logaritmické stupnice k výpočtům popsal jiný angličan, Edmund Wintage (1561 – 1656),
v knize „L'usage de la règle de proportion en arithmétique”, která vyšla nejprve roku 1624 v Paříži
ve francouzštině. Anglický překlad “The Use of the Rule of Proportion” vyšel o dva roky později
v Londýně (roku 1626).
2.6 Logaritmické pravítko
První logaritmické pravítko sestrojil William Oughtred (1575 – 1660), který už kolem roku 1620
přišel s nápadem posunovat vůči sobě dvě lineární či kruhové logaritmické stupnice, čímž se stalo
kružítko zbytečným. První skutečné logaritmické pravítko, a to kruhové, sestrojil až v roce 1630.
O dva roky později sestrojil jednoduché lineární logaritmické pravítko.
O zdokonalení lineárního pravítka se postaral v roce 1657 Seth Partridge, který zavedl rámečkovou
konstrukci pevné části, v niž se mezi dvěma propojenými pevnými částmi posunuje v drážkách
pohyblivá část – šoupátko. Později přibyla další pohyblivá část – průhledný jezdec s ryskou.
Logaritmické pravítko se pak na tři staletí stalo nejpoužívanější výpočetní pomůckou pro vědecko-
technické výpočty a později neodmyslitelným atributem konstruktéra – inženýra, který pomocí něj
prováděl běžné technické výpočty. Na internetu lze najít řadu stránek věnovaných logaritmickým
pravítkům a dokonce i zdařilý simulátor2 v podobě Java apletu.
Obr. 31 Portrét Williama Oughtreda od Václava Hollara
Obr. 32 Moderní kruhové
logaritmické pravítko se liší
od Oughtredova především
použitým materiálem
2 http://www.taswegian.com/TwoHeaded/UniVirtual/UniVirtual.html
18
2.7 Ukázka výpočtu s logaritmickými tabulkami
Obr. 33 Jedna strana z tabulek pětimístných logaritmů (celkem 20 stran)
19
Počítání s logaritmickými tabulkami si ukážeme na jednoduchém příkladu. Máme vypočítat objem
rotačního kužele, jehož kruhová podstava má poloměr r = 30,6 cm a jehož výška v = 34,7 cm.
Hodnotu Ludolfova čísla π můžeme brát nejvýše s přesností na 5 platných číslic, tj. π ≈ 3,1416.
Připomeňme si vzorec pro výpočet objemu kužele: vrV 2
3
1 .
Vezměme členy součinu na pravé straně vzorce od konce, tedy zprava doleva. Po zlogaritmování
dostaneme: log V = log v + 2 log r + log π – log 3 = log 34,7 + 2 log 30,6 + log 3,1416 – log 3.
Logaritmus libovolného čísla se skládá z charakteristiky a z mantisy. Charakteristika je celočíselná
část logaritmu a je rovna řádu nejvyšší nenulové číslice v čísle, které logaritmujeme. Mantisa je
desetinná část logaritmu a najdeme ji v tabulkách pro číslo, které logaritmujeme bez ohledu na jeho
řád (v tu chvíli nás zajímají jen číslice, z kterých je číslo sestaveno, řád je určen charakteristikou).
log 34,7 má charakteristiku 1, protože nejvyšší číslice 3 má řád desítek, tj. 101,
mantisu najdeme v řádku 347, sloupci 0 a zde přečteme hodnotu 54 033.
Závěr: log 34,7 = 1,54033
log 30,6 má charakteristiku 1, protože nejvyšší číslice 3 má řád desítek, tj. 101,
mantisu najdeme v řádku 306, sloupci 0 a zde přečteme hodnotu 48 572.
Závěr: log 30,6 = 1,48572
log 3,1416 má charakteristiku 0, protože nejvyšší číslice 3 má řád jednotek, tj. 100.
Mantisu najdeme v řádku 314, kde přečteme hodnoty ve sloupci 1 a 2, protože další
dvojčíslí 16 je mezi 10 a 20. Mezi hodnotami ve sloupcích 1 a 2 je diference
721 – 707 = 14, takže opravu lineární interpolací budeme hledat v pomocné tabulce
P.P. (partes proportionales) pro n = 14 v řádku odpovídajícím poslední číslici, tedy 6.
Hodnotu mantisy s opravou vypočteme 707 + 8,4 = 715,4 ≈ 715. Tedy 49 715.
Závěr: log 3,1416 = 0,49715.
log 3 má charakteristiku 0, protože nejvyšší číslice 3 má řád jednotek, tj. 100,
mantisu najdeme v řádku 300, sloupci 0 a zde přečteme hodnotu 47 712.
Závěr: log 3 = 0,47712
Nyní můžeme provést vlastní výpočet pomocí sčítání a odčítání:
1,54033 v 5,00892
1,48572 r – 0,47712 3
1,48572 r
0,49715 π
5,00892 4,53180
Zbývá nám poslední krok. Odlogaritmovat výsledek získaný sčítáním a odčítáním. Číslo 4,53180 se
skládá z charakteristiky 4 a mantisy 53 180. Charakteristika 4 nám říká, že nejvyšší nenulová číslice
výsledku bude mít řád desetitisíců, tj. 104. Mantisu 53 180 budeme hledat uvnitř tabulky. V řádku
340, sloupcích 2 a 3 najdeme nejbližší nižší (173) a nejbližší vyšší (186) hodnotu, mezi nimiž je
diference 186 – 173 = 13. Potřebné opravě 180 – 173 = 7 se uvnitř tabulky P.P. pro n = 13 nejvíce
20
blíží číslo 6,5 a najdeme ho v pátém řádku. Pro mantisu 53 180 jsme tedy našli logaritmované číslo
34025. Vzhledem k tomu, že nejvyšší číslice 3 je řádu desetitisíců, nemusíme v tomto případě hýbat
desetinnou čárkou.
Odpověď: Objem rotačního kužele, jehož kruhová podstava má poloměr r = 30,6 cm a jehož výška
v = 34,7 cm je V = 34 025 cm2.
Hodnoty zadání v tomto příkladu byly zvoleny tak, abychom vystačili s jednou ze stran v tabulkách.
Pro většinu praktických úloh bychom museli tabulkami listovat. Celé tabulky s uvedenou přesností
výpočtů mají pouze 20 stran a jsou dostupné na webu3 autora.
Pokud posuzujeme výhodnost použití logaritmických tabulek k výpočtům, musíme si uvědomit, že
postupy hledání v tabulkách se dají dobře nacvičit a tím se počítání značně zrychlí. Porovnávat jej
musíme s písemným násobením a dělením víceciferných čísel, nikoliv se současným počítáním
pomocí elektronického kalkulátoru. Pak si uvědomíme, jak úžasným pokrokem v technice výpočtů
byl objev logaritmů na počátku 17. století.
2.8 Logaritmická stupnice a princip výpočtů kružítkem
Obr. 34 Lineární stupnice a logaritmická stupnice pro grafické výpočty pomocí kružítka
Pomocí lineární stupnice můžeme sčítat a odčítat. Chceme-li např. spočítat, kolik je 5 + 3, vezmeme
do kružítka vzdálenost od bodu 0 (což je počátek lineární stupnice) k bodu 3, zabodneme kružítko
do bodu 5 a uděláme oblouček směrem doprava. Oblouček vyznačí řešení, jímž je bod 8. Odečítání
se liší od sčítání tím, že oblouček děláme směrem doleva.
Pomocí logaritmické stupnice můžeme analogicky násobit a dělit. Chceme-li např. spočítat, kolik je
4 . 3, vezmeme do kružítka vzdálenost od bodu 1 (což je počátek logaritmické stupnice) k bodu 3,
zabodneme kružítko do bodu 4 a uděláme oblouček směrem doprava. Oblouček vyznačí řešení,
jímž je bod 12. Dělení se liší od násobení tím, že oblouček děláme směrem doleva. Tak se můžeme
např. přesvědčit, že 4 : 3 ≈ 1,33.
Všimněme si, že na logaritmické stupnici odpovídá stejnému násobku stejná vzdálenost. Můžeme se
o tom přesvědčit, když vezmeme do kružítka vzdálenost od 1 k 2, což odpovídá dvojnásobku.
Stejnou vzdálenost má také 2 od 4; 2,5 od 5; 3 od 6; 3,5 od 7; 4 od 8; 4,5 od 9; 5 od 10 atd.
Podobně vzdálenost od 1 do 3 se rovná vzdálenosti 1,5 od 4,5; 2 od 6; 2,5 od 7,5; 3 od 9 atd.
3 http://www.musilek.eu/michal/logtab.html?menu=mat
21
3 Mechanické počítače a děrnoštítkové stroje
3.1 Charles Babbage, tvůrce prvních počítačů
Anglický matematik, filozof, mechanik a vynálezce Charles Babbage (1791 – 1871), byl vizionář,
který se více než sto let před sestavením a spuštěním prvních funkčních elektromechanických
a elektronických počítačů pokusil zkonstruovat a uvést do chodu univerzální Turing kompletní
počítač na čistě mechanickém principu. O tom, že byl ve své době uznávaným matematikem, hovoří
fakt, že byl Lucasiánským profesorem matematiky v Cambridge (1928 – 1939) a spoluzakladatelem
britské Královské astronomické společnosti (1820) a Královské statistické společnosti (1834).
Obr. 35 Charles Babbage
Tvůrce prvních specializovaných i univerzálních počítačů se věnoval
nejen konstrukci složitých mechanických zařízení, ale také celé řadě
teoretických problémů. Z hlediska informatiky je významná metoda
řešení polyalfabetické Vigenérovy šifry, kterou našel pravděpodobně
o několik let dříve než Friedrich Kasiski, po kterém bývá zpravidla
dnes pojmenována. Protože Vigenérova šifra byla v té době obecně
považována za nerozluštitelnou, uchoval Babbage metodu jako státní
tajemství, zatímco Kasiski ji o několik let později publikoval ve své
knize o kryptologii. Jisté je, že metodu objevili nezávisle na sobě.
3.2 Babbageův Difference engine a diferenční stroje švédských konstruktérů
Charles Babbage začal vyvíjet diferenční stroj, tedy jednoúčelový mechanický počítač pro výpočet
hodnot polynomických funkcí, v roce 1822. Stroj byl částečně funkční a sloužil k výpočtu tabulek
logaritmů a goniometrických funkcí, které lze velmi přesně aproximovat pomocí polynomických
funkcí. Charles Babbage se snažil stroj postupně zdokonalovat, ale dokonalou verzi nazvanou
Difference engine 2 zcela nedokončil, protože se roky intenzivně věnoval myšlence univerzálního
mechanického počítače. V roce 1991 sestavili pracovníci Londýnského muzea vědy funkční repliku
Diference engine 2, která pracuje naprosto bezchybně. Na serveru YouTube najdete různá videa4
s ukázkami činnosti stroje, na anglické wikipedii je dobře popsán princip výpočtů.
Konstrukci diferenčních strojů a zmenšení jejich rozměrů nedotáhl ke zdárnému konci Babbage, ale
jeho následovníci ze Švédska. Per Georg Scheuz zkonstruoval v letech 1837 – 1843 diferenční
stroj, který se mu podařilo úspěšně prodat vládám Velké Británie (1859) a USA (1860). Obě Země
pak stroj, který byl menší než Difference engine2 – měl zhruba velikost pianina, prakticky
využívaly k sestavování logaritmických tabulek. Martin Wiberg zkonstruoval roku 1875 dokonalý
a malý diferenční stroj, zhruba o velikosti šicího stroje. Všechny diferenční stroje byly poháněny
lidskou silou (pomocí kliky) a byly sestrojeny pouze v několika exemplářích.
4 např. http://www.youtube.com/watch?v=KBuJqUfO4-w
22
Obr. 36 Difference engine 1 Obr. 37 Difference engine 2 – funkční replika z roku 1991
3.3 Projekt Analytical engine
Charles Babbage odsunul práci na Difference engine na vedlejší kolej, protože v něm neviděl konečný cíl
svého snažení. Od roku 1833 napřel své síly na konstrukci univerzálního (řečeno dnešní terminologií Turing
kompletního) mechanického počítače, který bývá označován jako Analytical engine. Tento stroj měl být tak
mohutný, že již nemohl být poháněn lidskou silou. Zdrojem energie měl být parní stroj. V centru pozornosti
konstruktéra byla centrální jednotka která se skládala z mlýna (aritmetické jednotky), řídící jednotky a skladu
(operační paměti). Program, potřebné konstanty a proměnné se zadávaly pomocí děrných štítků (či spíše
velkých děrovaných kartonových desek po vzoru ovládání Jacquardova tkalcovského stavu). Jako výstupní
zařízení byla plánována tiskárna, děrovačka štítků a souřadnicový zapisovač, později také zařízení tvořící
mědirytiny s výstupy výpočtů.
Je zajímavé, že Babbageovy vize byly tak dokonalé, že o sto let předběhly Turingovu koncepci univerzálního
počítače, stejně jako von Neumannovu architekturu. Dokončit stavbu tak univerzálního zařízení na čistě
mechanickém podkladě je velmi náročné (technologicky, časově a finančně) i v současnosti, pravděpodobně
proto nebyl Analytical engine nikdy dokončen ani Babbagem a jeho týmem, ani žádným sdružením fanoušků
historické výpočetní techniky. Stavba funkční repliky Difference engine 2 byla časově a finančně únosným
projektem, funkční replika Analytical engine nikoliv. Studium projektové dokumentace však jasně ukázalo,
že kdyby byl Analytical engine dostavěn, byl by prvním univerzálním samočinným počítačem v historii.
Projekt Analytical engine sledovali se zájmem a pochvalným hodnocením inženýři z celé Evropy
a USA, ovšem od britské vlády měl jen skromnou podporu. Také první důkladná prezentace stroje,
jeho koncepce a konstrukčního řešení neproběhla v Anglii, ale v Turíně, tehdy ještě hlavním městě
království Sardinie na konferenci italských přírodovědců v roce 1840. Obsah přednášky shrnul
písemně Luigi Frederico Menabrea (pozdější premiér vlády sjednocené Itálie) a tiskem publikoval
roku 1842. Publikace ve francouzštině byla impulsem pro rychlý překlad do angličtiny, který
provedla, doplnila a významně rozšířila Ada Augusta King, Countess of Lovelace.
23
3.4 Ada Augusta King of Lovelace, první programátorka v historii informatiky
Vnímáme-li Charlese Babbage jako prvního konstruktéra počítačů,
pak můžeme stejně tak Adu považovat za první programátorku
v historii informatiky. Svůj překlad5 Menabreova článku, který dostal
v angličtině název „Sketch of The Analytical Engine Invented by
Charles Babbage“, doplnila Ada o řadu svých poznámek, které byly
tak podrobné, že svým rozsahem překonaly originál. Také jejich
obsah byl zajímavý a mezi jiným obsahoval popis algoritmu výpočtu
Bernouliových čísel pomocí Taylorova rozvoje prostřednictvím
Analytical engine, který může být právem považován za první zápis
počítačového programu.
Obr. 38 Ada Augusta King of Lovelace
Ada Augusta King, hraběnka z Lovelace (1815 – 1852) byla jediným dítětem básníka Lorda
Byrona a Anny Isabelly Milbanke. Se svým otcem ovšem neměla žádné kontakty, protože nejprve
od rodiny odešel a pak zemřel velmi brzy, když Adě bylo devět let. Už jako dítě bývala Ada často
nemocná, zákeřná nemoc také ukončila její život již v 37 letech. Charlesi Babbageovi byla
představena Mary Somervillovou roku 1833 jako nadaná matematička, ještě jako Ada Byronová.
Od té doby se datuje její zájem o mechanické počítače i přátelství s Babbagem. Roku 1835 se
provdala za Williama Kinga, hraběte z Lovelace, s nímž měla tři děti, dva chlapce a dívku.
3.5 Joseph Marie Jacquard – program zaznamenaný na děrných štítcích
Joseph Marie Jacquard (1752 – 1834), francouzský vynálezce,
který roku 1801 zkonstruoval spolehlivý a komerčně úspěšný
tkalcovský stav pro tkaní dvoubarevných vzorů, použil pro
řízení automatického vytváření těchto komplikovaných vzorů
program zaznamenaný na děrných štítcích.
Myšlenka zaznamenávat program střídání nití osnovy na stavu
děrováním je ovšem staršího data. Podobný princip použil při
konstrukci svého stavu Basile Bouchon, který již roku 1725
použil děrovaný pás papíru k urychlení tvorby vzorů při tkaní.
Nešlo však ještě o automatický proces, pouze o jakousi paměť
pro tkalce, který stav ovládal. Nemůžeme tedy zatím hovořit
Obr. 39 Joseph Marie Jacquard o programu pro automat, ale pouze o metodě usnadnění práce.
Děrnou „maxipásku“ nahradil o tři roky později Jean Falcon děrnými „maxištítky“ a tím umožnil
ovládat více nití v osnově. Ještě stále však nešlo o automatický stav.
5 http://www.fourmilab.ch/babbage/sketch.html
24
První skutečně programovatelný automatický stav zkonstruoval pravděpodobně vynikající jemný
mechanik Jacques de Vaucanson (1709 – 1782) roku 1745. Opakování vzorů na látkách při jejich
výrobě se programovalo pomocí papírových děrovaných karet. Jacques de Vaucanson se proslavil
především jako dovedný konstruktér mechanických automatů s lidskou nebo zvířecí podobou.
Známý je například jeho hráč na příčnou flétnu či mechanická kachna z měděného plechu, která
chodila, plavala na vodě, mávala křídly, žrala zrní a snášela vejce. Jeho úžasné automaty byly
bohužel zničeny za revoluce, ale jeho myšlenky naštěstí neupadly v zapomnění.
Joseph Marie Jacquard tedy měl na koho navazovat. Jeho konstrukce z roku 1801 byla dostatečně
robustní a spolehlivá a tak se jeho automatické stavy brzy rozšířily z Lyonu do celé Francie
a z Francie do celé Evropy.
Obr. 40 Jacquardův stav Obr. 41 Program tkaní Obr. 42 Výroba děrných štítků pro stav
3.6 Herman Hollerith – záznam a zpracování dat na děrných štítcích
Zatímco Joseph Marie Jacquard použil děrné štítky k záznamu různých programů pro automatický
tkalcovský stav už na počátku 19. století, praktické použití děrných štítků k záznamu a zpracování
dat muselo počkat až na rok 1890, kdy v USA probíhalo pravidelné sčítání lidu. Mladý statistik
a pozdější úspěšný vynálezce a podnikatel Herman Hollerith (1860 – 1929) dostal od svých
nadřízených za úkol urychlit proces statistického zpracování dat získaných při sčítání lidu. Pokud
by se to nepovedlo, hrozil akutně problém a ostuda, že zpracování bude trvat déle než deset let,
po nichž mělo následovat další pravidelné sčítání.
Legenda praví, že Herman Hollerith cestoval ve vlaku a povšiml si, že průvodčí označuje lístky
děrovacími kleštěmi různě podle toho, zda cestující cestují přímo, či s přestupem, na jednosměrnou,
či zpáteční jízdenku atd. Napadlo ho, že na o něco větším lístku by bylo možné děrováním vyznačit
všechny důležité údaje o sčítání lidu. Časem se ustálil standardizovaný rozměr lístku a záznam dat
nejprve do 45 sloupců s 10 pozicemi, později do 90 sloupců s 5 pozicemi (pro kulaté otvory), nebo
do 80 sloupců s 12 pozicemi (pro obdélníkové otvory). U posledně jmenovaného typu štítku se
pomocí 1 otvoru děrovaly číslice, pomocí 2 otvorů se děrovaly kódy znamenající písmena a další
znaky. Tím se z jednoúčelových štítků pro sčítání lidu brzy staly univerzální nosiče pro mechanicky
25
zaznamenaná data, na které bylo možno kromě dat zaznamenávat také řádky programů ve vyšších
programovacích jazycích. Tak se nakonec Hollerithovy štítky staly nosiči programů i dat.
Obr. 44 Hollerithův štítek (45 sl.)
Obr. 43 Děrování pomocí pantografu Obr. 45 Herman Hollerith
Ještě před nástupem počítačů představoval Hollerithův systém děrnoštítkových strojů, které uměly
štítky třídit, ale také provádět početní operace s čísly na nich uvedenými, poměrně dokonalý nástroj
pro práci s relačními databázemi a pro ekonomické výpočty. Z firmy, kterou Hollerith založil,
vznikla fúzí „velká modrá“ IBM, která měla rozhodující vliv na rozvoj výpočetní techniky po celé
20. století.
Obr. 46 Hollerithovy tabulační storje na Ministersvu železnic ČSR ve 20. letech 20. století