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
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
2
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
3
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ů.
4
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) .
5
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 1 1 (jednotky, šedesátky, 3600, …). Používaly se i šedesátinné zlomky ( , , …). Problém byl 60 3600 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. 6
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 7
čí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
8
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.
9
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. 10
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. 11
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
12
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
Obr. 23 Grafické násobení pomocí přímek
2
9
2
2
21
26
5
4
3
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, 13
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), 14
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. 15
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ě.
16
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ědeckotechnické 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
17
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)
18
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. 1 Připomeňme si vzorec pro výpočet objemu kužele: V r 2v . 3 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
log 30,6
log 3,1416
log 3
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 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 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. 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 1,48572 1,48572 0,49715 5,00892
v r r π
5,00892 – 0,47712
3
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 19
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
20
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
21
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.
22
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.
Obr. 39 Joseph Marie Jacquard
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 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
23
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 24
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í 25