12567

Szczegóły
Tytuł 12567
Rozszerzenie: PDF
Jesteś autorem/wydawcą tego dokumentu/książki i zauważyłeś że ktoś wgrał ją bez Twojej zgody? Nie życzysz sobie, aby podgląd był dostępny w naszym serwisie? Napisz na adres [email protected] a my odpowiemy na skargę i usuniemy zabroniony dokument w ciągu 24 godzin.

12567 PDF - Pobierz:

Pobierz PDF

 

Zobacz podgląd pliku o nazwie 12567 PDF poniżej lub pobierz go na swoje urządzenie za darmo bez rejestracji. Możesz również pozostać na naszej stronie i czytać dokument online bez limitów.

12567 - podejrzyj 20 pierwszych stron:

ELEMENTY INFORMATYKI Podręcznik Ewa Gurbiel Ewa Kołczyk Helena Krupicka Krzysztof Łukojć Zdzisław Płoski Maciej M. Sysło Jerzy Witkowski Roman Zuber pod redakcją Macieja M. Sysły wydanie trzecie zmienione Warszawa 1993 Wydawnictwo Naukowe PWN Książka ta jest zmienioną i rozszerzoną wersją książki: W. Dańko, E. Gurbiel, Z. Jarzębowski, E. Kolczyk, H. Krupicka, K. Łukojć, Z. Płoski, M.M. Sysło, R. Zuber, Elementy informatyki. Podręcznik pod redakcją M.M. Sysły; Wydanie pierwsze - Wydawnictwo Uniwersytetu Wrocławskiego, Wrocław 1988; Wydanie drugie - OFEK, Jelenia Góra 1990. Książka zalecana przez Ministra Edukacji Narodowej do użytku szkolnego i wpisana do zestawu książek pomocniczych do nauki informatyki na poziomie klasy I szkoły średniej. Numer w zestawie 314/93. Okładka i strony tytułowe: Maryna WiŚNIEWSKA Ilustracja na okładce: MAŁGORZATA FlLEW Redaktor: Agnieszka Grabarczyk Redaktor techniczny: JOLANTA ClBOR Skład komputerowy w TgX-u: Autorzy Copyright © by Wydawnictwo Naukowe PWN Sp. z o.o. Warszawa 1993 ISBN 83-01-11366-9 Następujące nazwy produktów i nazwy firm, do których odwołujemy się w tej książce są zastrzeżonymi znakami i nazwami handlowymi odpowiednich firm: IBM PC, AT, 386 - International Business Machines Corp.; MS-DOS, Windows - Micro- soft Corp.; The Norton Commander - Peter Norton Computing, Inc.; XTree, XTreeGold - Executive Systems, Inc.; AC-Logo - AdvaCom, Poznań; Turbo Pascal i Quattro Pro - Borland International, Inc.; dBASE, dBASE III - Ashton-Tate Co.; TAG - InfoSendce, Gdańsk; ChiWriter - Horstmann Software Design Co.; TgX - American Mathematical Society; Pizazz, Pizazz Plus - Application Technics, Inc.; CorelDraw - Corel Systems Corp. SPIS TREŚCI Wstęp 9 17 18 32 Czym jest informatyka. Elementy historii 1.1. Czym jest informatyka 17 1.2. Elementy historii informatyki Jak działa komputer 31 2.1. Dwójkowy system pozycyjny Wewnątrz komputera 34 Urządzenia zewnętrzne 36 Komputer w roli maszyny do pisania System operacyjny 45 Podstawowe zlecenia systemu MS-DOS Wokół komputera 59 Przy komputerze - pierwsze spotkanie 63 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 38 49 Zadania 65 69 71 3. Nauka i zabawa - grafika żółwia 3.1. Pierwszy rysunek 70 Pierwotne instrukcje graficzne Procedury 73 Wyrażenia 78 Zstępująca metoda projektowania algorytmów Rysowanie za pomocą procedur rekurencyjnych Struktury danych - listy 93 3.2. 3.3. 3.4. 3.5. 3.6. 3.7. 81 88 Zadania 102 4. Od problemu do programu - elementy programowania w języku Pascal 106 Podstawowe instrukcje 108 4.1. 4.2. 4.3. 4.4. 4.5. Zadania 154 Od problemu do programu 124 Funkcje i procedury 128 Strukturalne typy danych 133 Dynamiczne struktury danych 147 Spis treści 5. Zakładamy własny katalog - bazy danych 158 5.1. Zakładamy bazę danych. Pliki 158 5.2. Co już wiemy o plikach 165 5.3. Aktualizacja bazy danych 167 5.4. Systemy baz danych 174 5.5. Wprowadzenie do systemu dBASE 179 Zadania 187 6. Obliczenia w matematyce - metody numeryczne 189 6.1. Zadania numeryczne 189 6.2. Błędy zaokrągleń 190 6.3. Schemat Homera. Wzory rekurencyjne 195 6.4. Stabilność algorytmów 198 6.5. Interpolacja 203 6.6. Całkowanie numeryczne 211 6.7. Wyznaczanie pierwiastków równania 214 Zadania 222 7. Liczyć szybciej - efektywność algorytmów 225 7.1. Złożoność obliczeniowa 225 7.2. Złożoność algorytmu a czas działania programu 226 7.3. Dwa algorytmy optymalne 229 7.4. Porządkowanie ciągów 234 7.5. Porządkowanie przez scalanie 237 7.6. Niezbędna liczba porównań w algorytmach porządkowania Zadania 245 8. Bez kartki i ołówka - przetwarzanie tekstów 250 8.1. O sztuce opracowywania tekstów 250 8.2. Redagujemy tekst za pomocą komputera 251 8.3. Uruchomienie edytora 254 8.4. Trzy warstwy edytora TAG 254 8.5. Użytkowniku, pomóż sobie sam! 257 8.6. Okna i ich zastosowanie 258 8.7. Komputerowy "brudnopis", manewrowanie kursorem 8.8. Usuwanie i wstawianie tekstu 260 8.9. Operacje na blokach tekstu 262 8.10. Wyszukiwanie i zamiana tekstów 264 8.11. Wycofywanie pochopnych decyzji 265 8.12. Składowanie informacji 266 8.13. Przeglądanie plików 266 8.14. Zakończenie pracy 267 8.15. Inne własności edytorów 268 241 259 Spis treści Zadania 269 9. Łatwe i sprawne zarządzanie firmą - arkusz kalkulacyjny 271 9.1. Co to właściwie jest arkusz kalkulacyjny? 272 9.2. Rozpoczynamy pracę 274 9.3. Sposoby wyświetlania liczb, zasięg działania poleceń 277 9.4. Nieco o wyrażeniach 278 9.5. Prosty model symulacyjny 279 9.6. Nanoszenie poprawek 280 9.7. Zakończenie pracy 282 9.8. Skomputeryzowane przyznawanie premii 282 9.9. Graficzna prezentacja danych 285 9.10. Funkcje logiczne 287 9.11. Arkusz a metody numeryczne 289 9.12. Nowy system programowania? 292 9.13. Podsumowanie 293 Zadania 294 Dodatek. Kody ASCII 295 Omówienie literatury uzupełniającej 296 Skorowidz 298 WSTĘP Książka ta jest wprowadzeniem do informatyki i jako podręcznik może być wyko- rzystywana na zajęciach z elementów informatyki w szkołach średnich. Może być także pomocna w nauczaniu podstaw informatyki w szkołach pomatural- nych i na niektórych kierunkach studiów, w szczególności na studiach nauczyciel- skich: dziennych i podyplomowych. Książka jest pierwszą częścią opracowania pod wspólnym tytułem Elementy informatyki - do tej części odwołujemy się dalej przez EI-I. Dwie następne części to: Rozwiązania zadań (EI-II) oraz Przewodnik metodyczny (EI-III). Do całego opracowania w trzech częściach odwołujemy się przez EL W związku z zasadniczym przeznaczeniem tej książki przyjęto, że Czytelnik dysponuje mikrokomputerem, który - zakładamy - jest zgodny z komputerem osobistym IBM PC1 oraz odpowiednim dla niego oprogramowaniem, w tym: systemem operacyjnym MS-DOS (w wersji 4.0 lub wyższej), systemami pro- gramowania AC-Logo i Turbo Pascal (w wersji 6.0 lub późniejszej), edytorem tekstów TAG i arkuszem kalkulacyjnym Quattro Pro. Książka ta nie jest jednak podręcznikiem obsługi któregokolwiek z wymienionych systemów oprogramowa- nia. Podajemy w niej tylko najważniejsze informacje umożliwiające korzystanie w szkole z komputerów i z ich oprogramowania. Dokładne informacje o wykorzy- stywanych przez nas systemach można znaleźć w leksykonach lub podręcznikach poświęconych wyłącznie tym systemom. Informacje i rozważania w tej książce, chociaż są specyficzne dla komputera IBM PC i jego oprogramowania, nie wykluczają możliwości posługiwania się nią na zajęciach prowadzonych z wykorzystaniem innych komputerów i innego opro- gramowania. Wiodącym tematem książki, wokół którego skupia się nasza uwaga, są algo- rytmy. Metody konstruowania algorytmów ilustrujemy na przykładach wybra- nych z kilku podstawowych dziedzin informatycznych: grafiki żółwia, struktur i baz danych, porządkowania, metod numerycznych, korzystania z arkusza kal- kulacyjnego i komputerowego opracowywania tekstów. Omawiamy poprawność 1W dalszych fragmentach tej książki oraz w EI-II i EI-III komputery zgodne z IBM PC są nazywane po prostu IBM PC. 10 Wstęp działania algorytmów i przedstawiamy ich realizacje w wybranym języku pro- gramowania. Poświęcamy także -wiele miejsca efektywności obliczeń. Książka ta jest wprowadzeniem do algorytmicznego myślenia, które jest sednem informa- tyki i podstawą istotnych zastosowań komputerów oraz metod informatycznych w innych dziedzinach wiedzy i działalności człowieka. Książka składa się ze wstępu, dziewięciu rozdziałów, dodatku, zawierającego tabelę kodów ASCII, omówienia literatury uzupełniającej i skorowidza. Przed- stawmy w skrócie zawartość kolejnych rozdziałów. W pierwszym rozdziale próbujemy odpowiedzieć na pytanie, czym jest infor- matyka, jak się kształtowały związane z nią pojęcia w trakcie rozwoju myśli ora2 innych osiągnięć człowieka i jaka jest jej rola we współczesnym społeczeństwie. W przypadku stosowania komputerów i ich oprogramowania sprawdzenien słuszności obranej drogi rozwiązywania postawionego zadania jest uruchomieni na komputerze programu poprawnie rozwiązującego to zadanie. Dlatego możliwi* jak najwcześniej należy zapoznać się z komputerem, który jest podstawową po mocą naukową na lekcjach informatyki. Jest temu poświęcony rozdział 2 zawie rający najważniejsze informacje o budowie, działaniu i obsłudze komputera IB]V PC oraz o systemie operacyjnym MS-DOS. Omówiono w nim sposoby przy gotowywania komputera do pracy i korzystania z niego. Niektóre z zastosował komputerów wymienione w tym rozdziale, takie jak maszynopisanie, są omówion szerzej w dalszych rozdziałach. Z punktu widzenia użytkownika, komputer służy do wykonywania programów Niektóre programy, zwłaszcza ogólnego przeznaczenia, są dostarczane zwykł wraz z komputerem, natomiast programy rozwiązujące konkretne zadania p szemy sami, korzystając często z możliwości, jakie dają te pierwsze. W k( lejnych rozdziałach omawiamy informatyczne metody rozwiązywania niektóryc grup zadań, posługując się przy tym wybranymi systemami oprogramowania. Rozdział 3 jest poświęcony grafice żółwia, na przykładzie wybranych el< mentów języka Logo, w wersji AC-Logo. Rozdział ten nie jest jednak zbiorę] lekcji o języku Logo, lecz zwartym opisem niektórych konstrukcji tego język które umożliwiają tworzenie nawet dość skomplikowanych ilustracji graficznyc i przy okazji ułatwiają zapoznanie się z zasadami programowania. Sporządzan rysunków komputerowych jest w tym rozdziale pretekstem do uczenia system tycznych metod rozwiązywania zadań, począwszy od właściwego sformułowań zadania, poprzez ułożenie algorytmu jego rozwiązywania aż do zapisania alg rytmu w języku programowania. Rozdział ten jest więc wprowadzeniem do po stawowych konstrukcji algorytmicznych i programistycznych w ich najprostss postaci, rozwiniętych i wzbogaconych następnie w rozdziałach 4-6. Zgodnie z tytułem rozdział 4 prowadzi drogą od podania opisu zadania, cz; jego specyfikacji, do otrzymania gotowego programu, tym razem w języku P WSTCP 11 scal. Podobnie jak w odniesieniu do języka Logo w rozdziale tym są omówione tylko podstawowe instrukcje i typy danych języka Pascal. Programy (i ich fragmenty) napisane w języku Pascal i zamieszczone w opra- cowaniach El są poprawne w sensie systemu Turbo Pascal (w skrócie TP), począwszy od wersji 4.0. Zakres wiadomości o języku Pascal w zasadzie nie wy- kracza poza standardową wersję tego języka. Z tych względów posługujemy się jednym określeniem "język Pascal". Określenia "język Turbo Pascal" używamy tylko przy omawianiu fragmentów programów, które korzystają ze specyficznych cech systemu TP. W rozdziale 5 są omówione czynności związane z tworzeniem, aktualizowa- niem i korzystaniem z bazy danych na przykładzie zbioru informacji o prywat- nej bibliotece książek. Czynności te są zapisane w języku Pascal. Rozważania w tym rozdziale stanowią uzupełnienie poprzedniego rozdziału o informacje do- tyczące plików i operacji na nich. Ponadto zilustrowano wykonanie tych samych czynności za pomocą systemu obsługi baz danych dBASE. W rozdziale 6 są opisane podstawowe sposoby rozwiązywania prostych zadań obliczeniowych z matematyki takich, jak: obliczanie wartości wielomianu i całki oraz znajdowanie pierwiastków równania. Matematyka jest jednym z tych przed- miotów szkolnych, który najbardziej nadaje się do stosowania komputerów jako pomocy naukowych. Lektura tego rozdziału powinna jednak uzmysłowić, że właściwie zaprojektowane algorytmy i programy rozwiązywania zadań obliczenio- wych (matematycznych) najczęściej nie polegają na prostym wykonaniu działań występujących we wzorach definiujących wynik obliczeń. Co więcej, niewłaściwe posługiwanie się wzorami może prowadzić do otrzymywania rezultatów daleko odbiegających od prawdziwych wartości. Rozdział 7 jest rozwinięciem i pogłębieniem rozważań o algorytmach, ze szcze- gólnym uwzględnieniem efektywności ich działania. Na przykładach podstawo- wych zadań, takich jak szukanie najmniejszego elementu w ciągu i porządkowanie ciągu liczb, omówiono elementarne własności algorytmów rozwiązywania tych zadań, które wiążą się z szybkością wykonywania obliczeń. Komputer jest urzą- dzeniem dość uniwersalnym i szybkim, ale łatwo można znaleźć przykłady zadań pokazujące, że nie przemyślane do końca jego wykorzystanie może prowadzić do bardzo długich obliczeń. Co więcej, w przypadku niektórych zadań nawet super- komputery nie są w stanie nam pomóc. Rozdział 8 jest rozszerzeniem informacji o posługiwaniu się klawiaturą kompu- tera (podanych w rozdz. 2) do w miarę pełnego omówienia najważniejszych cech wspólnych dla większości edytorów tekstów. Rozważania są ilustrowane opisem obsługi edytora TAG. Komputer jako urządzenie osobiste jest w dużej mie- rze używany do opracowywania tekstów i ta umiejętność stanowi dzisiaj trwały element podstawowego przygotowania do pracy z komputerem. 12 Wstęp Wykorzystanie komputera jako urządzenia wspomagającego tradycyjne po- moce w typowych obliczeniach rachunkowych jest tematem rozdziału 9. Omó- wiono w nim system Quattro Pro, należący do grupy programów zwanych ar- kuszami kalkulacyjnymi. Są to drugie pod względem popularności (po edy- torach tekstów) gotowe programy używane na komputerach osobistych. Dzięki swojej uniwersalności programy te mogą być stosowane w wielu dziedzinach wy- kraczających poza ich początkowe przeznaczenie, którym była mechanizacja prac biurowych. Na końcu każdego rozdziału (z wyjątkiem pierwszego) jest umieszczony zbiór zadań do samodzielnego rozwiązania. Ich celem jest sprawdzenie, utrwalenie oraz pogłębienie zdobytej wiedzy i umiejętności. Wiele z nich polega na napisaniu fragmentu (lub całego) programu, dlatego mogą być także materiałem na zajęcia w laboratorium komputerowym. Rozwiązania wszystkich zadań, skomentowane i uzupełnione dodatkowymi informacjami, są zebrane w części EI-II. Książka ta, jako podręcznik do zajęć z elementów informatyki, zawiera wiele fragmentów, w których materiał i skala jego trudności mogą wykraczać poza ramy przyjętego programu nauczania tego przedmiotu. Co więcej, stopnie trud- ności materiału w poszczególnych rozdziałach nie są rozłożone równomiernie. Na przykład materiał zawarty w rozdziałach 6 i 7 wymaga pewnego przygotowania matematycznego i może być zbyt trudny dla uczniów z młodszych klas licealnych. Sądzimy, że będzie trudno zrealizować wszystkie omówione w książce zagadnie- nia w trakcie zajęć odbywających się w podstawowym wymiarze czasu (tj. 2 go dziny tygodniowo przez jeden rok). Dlatego osoba wykorzystująca tę książkę jak< podręcznik powinna zadecydować o odpowiednim doborze materiału w zależność od przygotowania uczniów2. Dla ułatwienia, na rys. 0.1 przedstawiamy schemat zależności między pc szczególnymi rozdziałami. Linia ciągła między rozdziałami a i 6 oznacza, że prze przejściem do lektury rozdziału b należy przerobić rozdział a. Linia przerywan oznacza dodatkowo zalecaną kolejność rozdziałów. Podkreślmy jeszcze raz, ta książka nie jest przewodnikiem po którymkolwit z przedstawionych systemów oprogramowania. Nie jest także podręcznikiem pn gramowania ani w języku Logo, ani w języku Pascal. Zamieszczone programy i jedynie zapisem omawianych algorytmów w wybranym języku programowani W wielu przypadkach programy nie są w pełni gotowe do wykonywania na koi puterze, gdyż ze względu na ograniczoną objętość książki nie umieszczono w ni na przykład należytej obsługi wprowadzania danych i wyprowadzania otrzym wanych wyników. Książce towarzyszy dyskietka z tekstami prezentowanych programów i pc programów w językach Logo i Pascal. Programy w języku Logo zostały prze 2Piszemy o tym dokładnie w części EI-III. Wstęp 13 Rys. 0.1. Schemat zależności między rozdziałami stowane w systemie AC-Logo, a programy w języku Pascal - w systemie Turbo Pascal 6.0. Podręcznik EI-I jest zmienioną i rozszerzoną wersją książki, której dane znaj- dują się na stronie czwartej. Większość zmian i uzupełnień wynikła z wymiany komputerów w szkołach - mikrokomputer Elwro 800 Junior został zastąpiony komputerem zgodnym z IBM PC i odpowiednio zostały wymienione także sy- stemy oprogramowania, o których jest mowa w książce. Uzupełnieniem dwóch pierwszych części EI-I i EI-II, które są przeznaczone zarówno dla uczniów, jak i dla nauczycieli, jest część trzecia EI-III, Przewodnik metodyczny, adresowana przede wszystkim do nauczycieli. Część EI-III zawiera omówienie materiału z dwóch pierwszych części oraz propozycje jego rozkładu pod kątem bezpośredniego wykorzystania na lekcjach. Ponadto, w EI-III zamie- szczono propozycje programu nauczania przedmiotu elementy informatyki oraz rozkładu materiału dla klas z różną liczbą godzin zajęć z tego przedmiotu. Wyróżnienia w tekście Dla poprawienia czytelności autorzy przyjęli następujące zasady użycia różnych krojów i wielkości czcionek w tekście: 1. Wrszystkie teksty wyświetlane na ekranie lub drukowane na drukarce, wpro- wadzane przez użytkownika lub wyprowadzane przez programy, są wydru- kowane w książce pismem maszynowym, tzn. każdy znak takiego tekstu zaj- 14 Wstęp muje na papierze tyle samo miejsca. W szczególności pismem maszynowyr są wydrukowane programy (i ich fragmenty) w językach programowani Logo i Pascal oraz zawartości pól w arkuszu kalkulacyjnym. Ponadto: - Słowa kluczowe oraz nazwy procedur i funkcji standardowych w jęz; kach i systemach programowania są pisane wielkimi literami. - W nazwach (m.in. zmiennych i procedur), każda część mnemoniczi (tj. mająca brzmienie i znaczenie jakiegoś słowa) rozpoczyna się ( wielkiej litery, a pozostałe litery w nazwach są małe. - W programach w języku Logo mogą występować nazwy zawierają litery z polskimi znakami diakrytycznymi, gdyż język AC-Logo akce tuje takie litery. - Programy i polecenia w pozostałych systemach oprogramowania w korzystanych w tej książce (w ich standardowej wersji) mogą zawiei nazwy złożone jedynie z liter alfabetu łacińskiego. 2. Zlecenia i komunikaty systemu operacyjnego MS-DOS są pisane także smem maszynowym i wielkimi literami. 3. Pismem pochyłym są pisane m.in.: - pojęcia metajęzykowe w definicjach konstrukcji programistycznych - nazwy opcji i operacji wzięte z oferty arkusza kalkulacyjnego lub nych systemów oprogramowania. 4. Nazwy klawiszy są wyróżnione wzięciem w ramkę. 5. Informacje o nazwach plików zawierających programy na dyskietce zi dują się w tekście obok znaku przypominającego dyskietkę (zobacz ot umieszczonego na marginesie. Pliki mają nazwy pochodzące od nazw gramów a ich rozszerzenia zależą od użytego systemu programowania i procedur w języku AC-Logo są LOG, dla programów w języku Turbo Pć - PAS, a dla arkuszy kalkulacyjnych systemu Quattro Pro - WQ1. Plik wierające programy z rozdziału x są zgrupowane na dyskietce w kartc R0ZDZx. Podziękowania W opracowaniach El zawarliśmy nasze doświadczenia zdobyte w trakcie wadzenia zajęć z elementów informatyki z uczniami III Liceum Ogólnoks cącego we Wrocławiu i innych szkół, z podstaw informatyki z przyszłymi czycielami na niektórych nieinformatycznych kierunkach studiów Uniwers Wrocławskiego oraz na kursach i Studiach Podyplomowych z Informatyki dl uczycieli. Słuchaczom tych zajęć składamy gorące podziękowania za współ] Jesteśmy wdzięczni naszym kolegom z Instytutu, Jerzemu Kucharcz; oraz Jerzemu Szczepkowiczowi, za dyskusje i sugestie dotyczące treści tej k jak i za pomoc w posługiwaniu się systemem TgK, w którym ta książka z Wstęp 15 złożona. Dziękujemy także Grażynie Hardt-Olejniczak i Adamowi Szustalewi- czowi za pomoc przy opracowywaniu rozdz. 6, a Urszuli Gładysz - za prace edytorskie, zwłaszcza nad rozdziałem 6. Dziękujemy również Recenzentom, Pani Iwonie Krajewskiej i Panu Witoldowi Kranasowi oraz Panu Janowi Madeyowi za bardzo wnikliwą lekturę tekstu i wiele cennych uwag, które przyczyniły się do ulepszenia zawartości książki i prezentacji materiału. Panu Zbigniewowi Książczakowi dziękujemy za uwagi dotyczące strony językowej tekstu. Chcielibyśmy podziękować także naszym dwóm współautorom dwóch poprze- dnich wersji tej książki3, Wiktorowi Dańce i Zdzisławowi Jarzębowskiemu, za ich wkład widoczny także w obecnej wersji. Książka jest wynikiem współpracy dość dużego zespołu autorskiego. Autorami rozdziałów są: E. Gurbiel - rozdz. 5, E. Kolczyk - rozdz. 4, H. Krupicka - rozdz. 3, K. Łukojć - rozdz. 2, Z. Płoski - p. 2.4 i rozdz. 8, M. M. Sysło - rozdz. 1 i 7, J. Witkowski - rozdz. 9, R. Zuber - rozdz. 6. Całość zredagował merytorycznie Maciej M. Sysło. Pani Redaktor Annie Szemberg z Wydawnictwa Naukowego PWN dziękujemy za pomoc i życzliwość okazane nam w trakcie powstawania opracowań El w ich ostatecznej postaci. Autorzy Wrocław, 19 sierpnia 1993 3Pełne dane o poprzednich wydaniach tej książki znajdują się na czwartej stronie. 1. CZYM JEST INFORMATYKA ELEMENTY HISTORII 1.1. Czym jest informatyka Informatyka jest najczęściej kojarzona z komputerami, programowaniem oraz algorytmami, a w ostatnich latach również z całą sferą działalności związanej z mikrokomputerami, zwanymi także komputerami osobistymi. Jako najbardziej zwięzłe określenie tego, czym jest informatyka, podaje się, iż jest to dziedzina wiedzy (ang. computer science) i działalności zajmująca się gro- madzeniem, przetwarzaniem i wykorzystywaniem informacji (czyli różnego ro- dzaju danych o otaczającej nas rzeczywistości), a ta obróbka informacji odbywa się za pomocą komputerów. Chociaż główny nacisk w tej definicji jest położony na informację i na różne jej aspekty, to jednak wprost lub pośrednio możemy odnaleźć w niej także wymienione na początku pojęcia: komputery - gdyż są to urządzenia do obróbki informacji, programowanie - gdyż jest narzędziem umożliwiającym i usprawniającym komunikowanie się użytkownika z kompute- rem, algorytmy - gdyż są tymi przepisami, według których przekształcamy in- formacje, by osiągnąć zamierzony cel. Każde z wymienionych pojęć może z kolei posłużyć do podania innej definicji informatyki. I tak, wiele osób za najważniejsze obiekty zainteresowań w informatyce uważa komputery wraz z całą gamą za- gadnień związanych z ich projektowaniem, konstruowaniem i wykorzystywaniem. Jest to zbyt jednostronne, techniczne spojrzenie na informatykę. Najczęściej in- formatyka bywa utożsamiana z programowaniem komputerów, a pośrednio także z językami programowania. Ta książka stara się przekonać, że pogląd ten jest wyraźnym zawężeniem zakresu dziedziny. Nam najbardziej odpowiada następujące określenie informatyki: informatyka jest dziedziną wiedzy i działalności zajmującą się algorytmami 2 — Elementy informatyki 18 1. Elementy historii informatyki Wyróżniliśmy tę ostatnią definicję, gdyż naszym zdaniem najtrafniej oddaji przewodnią myśl większości rozważań na tematy dotyczące informatyki. W tyn określeniu można odnaleźć także pozostałe pojęcia stosowane do definiowani informatyki: komputery - jako urządzenia za pomocą których są wykonywań algorytmy, informację - jako materiał, który przetwarzają i produkują algorytm i programowanie - jako metodę zapisywania algorytmów. Chociaż w tej defin cji główny nacisk jest położony tym razem na algorytmy, pozostałe jej aspekt są nie mniej ważne do właściwego traktowania zarówno algorytmów, jak i cał dziedziny. Znaczenie pojęć: algorytm, program, komputer, informacja omawiamy w na tępnym punkcie na tle ich historycznego rozwoju. 1.2. Elementy historii informatyki Zalew komputerów, który obserwujemy wokół nas, jest jedną z oznak rewolu mikrokomputerowej. Komputery nie pojawiły się jednak nagle i niespodziewar a pojęcia i wiedza składające się na informatykę były gromadzone przez dłu lata wraz z rozwojem innych nauk i działalności człowieka. Chcemy tutaj przybliżyć tylko te wydarzenia i osoby z historii informatj które według nas miały największy wpływ na tempo rozwoju i obecny jej st Naszą uwagę skupimy przede wszystkim na tych faktach, które odegrały najwi szą rolę w rozwoju podstawowych pojęć: algorytm, komputer i programowa: Na zakończenie odniesiemy się także krótko do obecnej, stale rosnącej roli in matyki w społeczeństwie. Pierwsze ślady informatyki można odnaleźć w historii matematyki i to c odległej. Zastanówmy się najpierw, co składa się na matematykę. Wys czy, jeśli rozróżnimy, bez specjalnego zagłębiania się w jej istotę, dwa rod działalności matematycznej: dowodzenie i obliczanie1. Matematyczny dowód uzasadnieniem słuszności faktu sformułowanego najczęściej w ogólnej, abstral nej postaci. Na przykład w twierdzeniu Pitagorasa jest mowa o zależności, spełniają długości boków w dowolnym trójkącie prostokątnym, czyli dotyczy wszystkich takich trójkątów. Za obliczenia zaś przyjęło się uznawać wyŁ nie na liczbach zaznaczonych działań. Dowody są wytworami umysłu noszą duży ładunek oryginalności i niepowtarzalności. Obliczenia natomiast w jej tradycyjnej postaci (tj. zapisywane ołówkiem na kartce papieru) są cig elementarnych działań, których różnorodność jest ograniczona do kilku po wowych operacji arytmetycznych. Bardzo trudno jest znaleźć w otaczaj lrTo rozróżnienie zaciera się ostatnio w wielu przypadkach i w matematyce znanych jes dowodów, które w znacznym stopniu polegają na wykonaniu obliczeń. Istnieją także koi rowe dowody twierdzeń. Od Starożytności do Średniowiecza 19 nas świecie odpowiedniki większości pojęć i pomysłów występujących w dowo- dach, liczby zaś (zwłaszcza naturalne) dają się łatwo przedstawiać za pomocą najróżniejszych obiektów, rzeczy i wielkości. Dlatego od najdawniejszych czasów próbowano pomagać sobie w liczeniu, np. kamieniami. Od Starożytności do Średniowiecza W wykopaliskach między Mezopotamią i Indiami odnaleziono ślady stosowanych już w X wieku p.n.e. systematycznych metod znajdowania wyniku najprostszych operacji za pomocą specjalnie przygotowanych i poukładanych kamieni. Począt- kowo kamienie układano w rzędach na piasku tworząc w ten sposób plansze obli- czeniowe, które nazywamy abakami (lub abakusami). Później zaczęto nawlekać kamienie na pręty, tworząc liczydła, czyli kompletne i przenośne przyrządy do obliczeń. W obu przypadkach, abakusa i liczydła, stan obliczeń określało rozmie- szczenie elementów ruchomych (czyli kamieni) na piasku lub na prętach. Liczydła przeżywały swój renesans w wiekach średnich. Wtedy na przykład ukształtował się japoński soroban w swej obecnej postaci. Rys. 1.1. Japoński soroban Na rys. 1.1. jest pokazany szkic współczesnego sorobanu w pozycji przygo- towanej do rozpoczęcia pracy. Cztery guziki na dole w każdym rzędzie służą do odkładania kolejnych jedności 1, 2, 3 i 4 przez przesuwanie ich w kierunku środka. Przejście od 4 do 5 polega na cofnięciu czterech jedności na pozycje początko- we i przesunięcie górnego guzika do środka. Zachęcamy do opracowania metody dodawania dwóch liczb za pomocą tego liczydła. Soroban jest jeszcze dzisiaj dość powszechnie stosowanym liczydłem w Japo- nii. Jego obsługi, w tym wykonywania na nim czterech podstawowych działań arytmetycznych, nadal uczą się japońskie dzieci w szkole podstawowej. Nierzadko można także spotkać urzędników (np. na poczcie) lub sprzedawców w małych skle- pikach, którzy obliczają należności korzystając z pomocy sorobanu. Soroban - jak każde liczydło - ma wady, które zostały naprawione częściowo w kalkulatorze, a ostatecznie dopiero w komputerach. Służy on bowiem tylko do odnotowania bieżących wyników obliczeń, gdyż nie ma w nim miejsca ani na pamiętanie wy- ników pośrednich, ani na pamiętanie kolejno wykonywanych działań. 20 _. 1. Elementy historii informatyki Cofnijmy się jeszcze do poprzedniej ery. W rozdziale 4 omawiamy metodę w; znaczania największego wspólnego dzielnika dwóch liczb. Metodę tę podał Eukl des, żyjący w latach 400-300 p.n.e., w swoim fundamentalnym dla matematy' (a zwłaszcza dla geometrii) dziele Elementy. Jego metoda jest dzisiaj powszecl nie nazywana algorytmem Euklidesa. Staraliśmy się unikać na początku tej akapitu słowa algorytm, gdyż w czasach, gdy żył i działał Euklides, i przez wie wieków po nim, nie używano jeszcze tej nazwy. Słowo algorytm pochodzi od brzmienia fragmentu nazwiska arabskiego m tematyka, żyjącego na przełomie VIII i IX wieku. Muhammad ibn Musa a -Chorezmi, bo o nim tutaj mowa, jest uznawany za prekursora obliczeniowy! metod w matematyce. Napisał na ten temat kilka dzieł, a z fragmentu tytu jednej z jego ksiąg pochodzi inne jeszcze słowo - algebra. Upowszechnił także s stem dziesiętny i stosowanie zera jako pojęcia i symbolu, z którym wielu żyjący przed nim nie umiało sobie poradzić. Nie wyobrażano sobie bowiem by coś (cz; jakikolwiek znak, np. 0) mogło oznaczać nic. A co to jest algorytm? Nie podamy wyczerpującej odpowiedzi na to pytań Nie udało się bowiem do dzisiaj ująć w jednolite ramy jednego pojęcia wszystki tych procesów, które są opatrywane nazwą algorytm. W dalszych rozważania będziemy przyjmować, że algorytm jest przepisem rozwiązywania postawionego zadania, bę- dącym dokładnie określonym układem elementarnych instrukcji wraz z porządkiem ich wykonywania. Każda instrukcja ma precyzyjnie określoną interpretację za pomocą podstawowych operacji arytme- tycznych i logicznych, a jej wykonanie jest skończone i ma jednoznacz- nie określony efekt końcowy2. Jako elementy komunikacji ze światem w algorytmie można wyróżnić: dane, na których są wykonywane obli- czenia i wyniki, które są oczekiwanym rezultatem działań. Algorytm, jako opis sposobu rozwiązywania zadania jest często zapisywć w języku programowania by umożliwić jego wykonanie za pomocą kompute Dzięki precyzji określenia danych i wyników (w algorytmie i w odpowiadając mu programie), algorytm może być stosowany nawet w sytuacjach, gdy oso zainteresowanej rozwiązaniem nie jest znane dokładne jego działanie - wystari znajomość postaci danych i interpretacji wyników. Wiek XVII i XVIII Na początku XVII wieku John Neper opublikował najpierw swoje dzieło o lo rytmach a następnie przedstawił system wspomagający wykonywanie mnożei 2W tej definicji niezupełnie mieszczą się algorytmy niedeterministyczne i probabilistyc o których jednak nie mówimy w tej książce. Wiek XVII i XVIII 21 zwany pałeczkami Nepera. Genialność tego systemu polegała na sprowadzeniu mnożenia do serii dodawań. Pomysł Nepera wykorzystało wielu konstruktorów urządzeń liczących, jemu współczesnych i żyjących po nim. Za twórcę pierwszej w historii mechanicznej maszyny do liczenia jest uzna- wany Wilhelm Schickard (1592-1635), który przez długie lata był zupełnie za- pomniany. Schickard opisał projekt swojej czterodziałaniowej maszyny, wykorzy- stującej udoskonalone pałeczki Nepera w postaci walców, w liście do Keplera, któremu miała ona pomóc w jego astronomicznych (dosłownie i w przenośni) rachunkach. Niestety jedyny zbudowany egzemplarz maszyny spłonął w nie- wyjaśnionych okolicznościach, a dzisiejsze jej repliki zostały odtworzone dopiero niedawno na podstawie opisu z listu do Keplera. W XVII wieku żyli i tworzyli wielcy matematycy Gottfried Wilhelm Leib- niz (1646-1716) i Blaise Pascal (1623-1662). Leibniz jest uznawany za jednego z twórców rachunku różniczkowego i całkowego, a osiągnięcia Pascala można znaleźć w bardzo wielu działach nauk ścisłych. Dobrze jest znany trójkąt Pa- scala, który tworzą współczynniki w dwumianie Newtona dla kolejnych wykładni- ków potęg. Zainteresowania teoretyczne nie przeszkodziły tym światłym umysłom na zajęcie się także praktycznymi obliczeniami i dzisiaj obaj są znani również ze zbudowanych przez siebie maszyn liczących. Pascal zainteresował się zbudowaniem maszyny liczącej z myślą o dopomoże- niu swojemu ojcu, który był poborcą podatkowym. Wyprodukowano około 50 egzemplarzy Pascaliny - maszyny według pomysłu Pascala. Kilka egzempla- rzy istnieje w muzeach do dzisiaj; część z nich była przeznaczona do obliczeń w różnych systemach monetarnych, a część - dla różnych miar odległości i po- wierzchni (z przeznaczeniem dla geodetów). Pascal, który zbudował maszynę wykonującą tylko dwa działania (dodawanie i odejmowanie) przez ponad trzysta lat uchodził niesłusznie za wynalazcę pierwszej mechanicznej maszyny do liczenia. Schickard i Pascal wprowadzili w swoich maszynach mechanizm do przeno- szenia cyfr przy dodawaniu i odejmowaniu. Obie maszyny miały także pewne możliwości zapamiętywania niektórych wyników pośrednich. Leibniz odkrył na nowo pochodzący ze starożytnych Chin system dwójkowy (zwany także binarnym) do zapisu liczb. Przypisuje się jemu także zbudowanie pierwszej mechanicznej maszyny mnożącej. Chociaż w tym czasie istniała już Pascalina i Leibniz miał możność zapoznania się z nią w Paryżu, projekt swojej "żywej ławy do liczenia" opisał przed pierwszą wizytą w Paryżu. W maszynie tej wprowadził wiele części, które zostały użyte w późniejszych maszynach biuro- wych. Leibniz wiązał z systemem binarnym także swoje idee filozoficzne. Wierzył bowiem, że język matematyki, za pomocą skończonej liczby symboli i pojęć, może wyrazić wszystkie możliwe twierdzenia (lub ogólniej, słuszne sądy). Dopiero Kurt Godeł wykazał w latach trzydziestych naszego wieku, że jest to niewykonalne. 22 1. Elementy historii informatyki Maszyny Schickarda, Pascala i Leibniza wymagały od użytkownika manual- nej pomocy w wielu czynnościach związanych z kolejnymi krokami obliczeń. Za pomocą tych maszyn nie było jeszcze można w pełni automatycznie i w całości wykonać prostego działania na dwóch liczbach. W tym miejscu wypada wspomnieć o udziale naszego rodaka w dziele tworze- nia maszyn liczących. Abraham Stern (1769-1842), z zawodu zegarmistrz, wy- konał serię maszyn, które poza czterema działaniami podstawowymi, wyciągał} także pierwiastki kwadratowe. Jedna z jego maszyn, raz uruchomiona, potrafił? wykonać za pomocą mechanizmu zegarowego wszystkie operacje bez ingerencj człowieka. Maszyny skonstruowane przez Sterna okazały się jednak mało prak tyczne ze względu na wyjątkowo delikatną budowę. Charles Babbage (1791-1871) Za najwybitniejszego twórcę maszyn liczących, żyjącego przed erą elektroniczni uważa się Anglika Charlesa Babbage'a. Około 1820 r. spotkał on francuskie^ barona de Prony, który dla sporządzenia tablic logarytmicznych i trygonom trycznych utworzył specjalną "manufakturę logarytmów" i wzorując się na id ach szkockiego ekonomisty Adama Smitha zastosował podział pracy. W ty celu wynajął 6 wybitnych matematyków (wśród nich był Legendre) do oprać wywania formuł obliczeń, 8 przeszkolonych matematyków do przygotowywali poszczególnych etapów obliczeń i 60 rachmistrzów. Ci ostatni mieli jedynie d dawać i odejmować. Dzięki temu praca, która zajęłaby całe jedno życie, zost; ukończona w kilka lat. Babbage posunął się dalej i postanowił zbudować n szynę liczącą, która mogłaby wyręczyć człowieka i automatycznie wykonywać ] wtarzające się działania. Swoją pierwszą maszynę nazwał maszyną różnico\ gdyż wykonywała obliczenia metodą różnicową3. Nie będziemy dokładnie opisywać tutaj metody różnicowej. Zilustrujemy tylko na przykładzie obliczania wartości funkcji y = x2 dla kolejnych argumeni a; = l,2,3,... Zauważmy następującą prawidłowość: kwadrat kolejnej liczby naturalnej jest sumą kwadratu poprzedniej liczby naturalnej i kolejnej nieparzystej liczby naturalnej. Korzystając z tej zależności otrzymujemy schemat obliczeń przedstawi na rys. 1.2 (strzałki oznaczają kolejność obliczeń i przekazywania wyznaczał wartości). Zatem do policzenia kwadratów kolejnych liczb naturalnych wystarczy: 3Pierwszy projekt automatycznej maszyny do wykonywania obliczeń metodą różnicową J.H.Miiller w 1786 roku - jednak wydaje się, że ani baron de Prony, ani Babbage nie znal Miillera. n Charles Babbage 23 1. Ustawić O, 1 i 2 jako początkowe wartości. 2. Dla policzenia kwadratu kolejnej liczby naturalnej, wykonać dwa dodawa- nia: - otrzymać kolejną liczbę nieparzystą przez zwiększenie o dwa poprze- dniej liczby nieparzystej (jest to wykonywane w trzeciej i czwartej kolumnie na rys. 1.2), — otrzymaną liczbę nieparzystą dodać do kwadratu poprzedniej liczby naturalnej (dwie pierwsze kolumny na rys. 1.2). kolejne kwadraty kolejne liczby nieparzyste =9+7 — początkowe wartości Rys. 1.2. Obliczanie kwadratów kolejnych liczb naturalnych Podaliśmy bardzo prosty przykład obliczeń wykonanych metodą różnicową. Dla uzasadnienia znaczenia tej metody w automatycznych obliczeniach dodajmy, że w podobny sposób można tworzyć tablice wartości dla większości funkcji ele- mentarnych spotykanych w obliczeniach. W tym celu należy skorzystać z wie- lomianu, który dobrze przybliża tablicowaną funkcję oraz policzyć bezpośrednio kilka jej pierwszych wartości. Wszystkie następne działania są już tylko dodawa- niami pewnych liczb tworzonych także tylko za pomocą dodawań. I właśnie ten ostatni etap obliczeń automatyzowała maszyna różnicowa. Babbage konstruował swoją pierwszą maszynę przez ponad 10 lat. Trapiony jednak wieloma kłopotami rodzinnymi i finansowymi oraz nie mogąc do końca porozumieć się ze swoim głównym wykonawcą-konstruktorem Clementem, za- przestał dalszych prac nad maszyną różnicową w 1842 roku. Zmontowaną część maszyny (podobno nadal sprawną!) można oglądać w Muzeum Nauk w Lody- nie. Należy dodać, że w odróżnieiu od maszyn Leibniza i Pascala, po ręcznym ustawieniu początkowego stanu, dalsze działania maszyny różnicowej nie wyma- gają już żadnej ingerencji użytkownika poza kręceniem korbą. Prace Babbage'a zainspirowały wielu jemu współczesnych, którzy, jak na przykład Szwedzi George 24 1. Elementy historii informatyki i Edward Scheutzowie, często z większym powodzeniem ukończyli swoje, możi mniej ambitne ale nadal praktyczne konstrukcje maszyn różnicowych. Ale Babbage nie poprzestał na próbie skonstruowania maszyny różnicowe; Marzył o maszynie, która mogłaby rozwiązywać bardziej złożone zadania. Ta narodził się jeszcze w trakcie prac nad maszyną różnicową pomysł zbudowani maszyny analitycznej, którym Babbage żył do śmierci. Było to przedsięwzięć: czysto abstrakcyjne - przewidywane przeszkody techniczne i trudności finansów nie pozwoliły nawet na rozpoczęcie prac konstrukcyjnych . W projekcie Babbaj zawarł jednak wiele pomysłów zrealizowanych dopiero we współczesnych kompi terach. Między innymi rozdzielił pamięć (zwaną magazynem) od jednostki licząc (młyna), czyli miejsce przechowywania danych od jednostki wykonującej na nii działania. Obie te części maszyny analitycznej miały być sterowane za pomo< dodatkowego urządzenia kontrolnego, które otrzymywało polecenia na karta perforowanych, udoskonalonych i rozpowszechnionych przez Jacąuarda do pi gramowania maszyn tkackich. Można więc uznać maszynę analityczną Babbeg< za pierwszy pomysł kalkulatora sterowanego programem zewnętrznym. Opis działania maszyny analitycznej trafił w ręce Ady (jej pełne nazi sko: Ada Augusta hrabina Lovelace), córki Byrona, znanej w owych czas? z błyskotliwego umysłu. Urzeczona doskonałością projektu uważała, że "... n szyna analityczna tkać będzie wzory algebraiczne, tak jak krosna Jacąuarda tk liście i kwiaty ...". Nie czekając na skonstruowanie maszyny (czego jak wie i tak by się nie doczekała), Ada zajęła się sporządzaniem opisów jej używa do rozwiązywania konkretnych zadań obliczeniowych. Opisy te nazwalibyś dzisiaj programami, dlatego uważa się ją za pierwszą programistkę komputer Dla uczczenia zasług Ady na tym polu nazwano jej imieniem jeden z najbard uniwersalnych języków programowania. Przełom XIX i XX wieku Koniec XIX wieku był początkiem rozwoju urządzeń mechanograficznych, któi głównym przeznaczeniem było usprawnienie rachunków statystycznych, ksi wych i biurowych. Zaczęło się w Stanach Zjednoczonych od Hermana Hc ritha, który postanowił zautomatyzować prace statystyczne związane ze sp ludności przeprowadzanym wtedy w Stanach co dziesięć lat. Hollerith sięgnf elektryczność, jako źródło impulsów i energii, rozwinął postać karty perforow; na której zapisywano dane i zbudował elektryczny czytnik-sorter kart. Oli mim sukcesem Holleritha okazał się spis w 1890 roku, którego wyniki zo 4Po śmierci Babbage, projekty maszyny analitycznej odziedziczył jego syn Henry, ktć ich podstawie skonstruował tzw. młyn maszyny, odpowiadający jednostce liczącej w dzisie komputerach. Projekty maszyny analitycznej i prototyp młyna są przechowywane w M\ Nauk w Londynie. Alan Turing 25 całkowicie opracowane za pomocą jego urządzeń na podstawie danych zebranych na jego kartach. W następnych latach Hollerith dostarczał lub wypożyczał swoje urządzenia do przeprowadzenia spisów w wielu krajach, w tym także w Europie, między innymi w Rosji. Na przełomie XIX i XX wieku powstało wiele firm, które początkowo ofe- rowały maszyny sterowane kartami perforowanymi i z latami zyskiwały na swo- jej potędze a wiele z nich przetrwało do dzisiaj, jak na przykład IBM, Buli, Remington-Rand, Burroughs, a także NCR (kasy) i Bell (telefony). Udoskonalona i znormalizowana karta perforowana przez wiele dziesięcioleci była uniwersalnym nośnikiem informacji, a pierwsze maszyny mechaniczne do przetwarzania danych zapoczątkowały stale rosnący popyt na przetwarzanie infor- macji. Wniosło to także zmiany w stosunkach międzyludzkich, a w szczególności między państwem (posiadaczem maszyn do obróbki informacji) i obywatelem. Początek XX wieku Od przełomu XIX i XX wieku można zaobserwować wśród matematyków wzrost zainteresowania problemami obliczeniowymi i obliczalnością. Dla przykładu, wiel- ki matematyk niemiecki David Hilbert (1862-1943), wśród wielu problemów naji- stotniejszych dla rozwoju matematyki w XX wieku, umieścił także pytanie o ist- nienie uniwersalnej metody znajdowania pierwiastków równań o współczynnikach całkowitych będących liczbami całkowitymi. Zainteresowania te doprowadziły do powstania wielu teorii, których celem było dostarczenie teoretycznych podstaw obliczeń. W teoriach tych można na przykład ściśle określić, co to jest algorytm. Przy badaniu wzajemnych związków między teoretycznymi modelami obliczeń okazało się, że zdecydowana ich większość jest równoważna sobie, obejmuje bowiem te same klasy zadań dających się rozwiązy- wać za pomocą konstruowanych w tych teoriach algorytmów. Alan Turing (1912-1954) Wśród modeli obliczeń powstałych w pierwszej połowie XX w. największą po- pularność zdobyły maszyny Turinga. W swojej fundamentalnej pracy z 1936 roku Alan Turing bardzo przystępnie opisał tok myślenia prowadzący od obliczeń wykonywanych ręcznie do obliczeń wykonywanych przez bardzo prostą maszynę. Przytoczymy tutaj ten opis. Obliczenia ręczne są najczęściej wykonywane na pokratkowanej kartce pa- pieru, której pojedyncze kratki są wypełniane cyframi i symbolami działań. Dys- ponujemy tylko skończoną liczbą znaków (cyfr, np. 0 raz 1 i symboli działań), które mogą być wpisywane w kratki. To, co robimy w ustalonej chwili, zależy od znaków, które obserwujemy i od działania, jakie podjęliśmy. Możemy przyjąć. 26 1. Elementy historii informatyki że liczba kratek obserwowanych w danej chwili jest ograniczona. Przejrzenie zaś większej ich liczby sprowadza się do wykonania ciągu obserwacji. Możemy także założyć, że liczba wszystkich stanów, w jakich może znaleźć się nasz umysł wy- konujący obliczenia, chociaż duża, jest skończona. Turing doszedł do koncepcji swojej maszyny wprowadzając pewne uproszcze- nia i uściślenia w działaniach na kartce i nad nią. Po pierwsze, zapis obliczer na kartce papieru (a dokładniej na dwuwymiarowym układzie kratek) możne sprowadzić do zapisu na jednowymiarowej pokratkowanej kartce, czyli na taśmi< podzielonej na kratki. Wystarczy w tym celu treść obliczeń wypełniających kartk' zapisać wierszami. Traci się przy tym na czytelności, ale zyskuje redukcję wy miaru kartki. Po drugie, umysł wykonujący obliczenia można zastąpić prze obiekt bardziej fizyczny zwany głowicą, która znajduje się nad taśmą, może si poruszać w obie strony taśmy, a w danej chwili widzi jedynie symbol umieszczon w kratce, nad którą zawisła. Działanie głowicy jest określone przez ustalony zbić instrukcji, zgodnie z którymi może poruszać się w lewo, w prawo lub stać w mie scu, potrafi rozpoznawać symbole i może zmieniać zawartość kratki, nad którą s znajduje. Wykonanie instrukcji przez maszynę Turinga jest działaniem głowic uzależnionym od stanu, w jakim się znajduje i co widzi. Obliczenia wykonywane za pomocą maszyny Turinga zależą od początkowe zapisu symboli na taśmie i od przyjętego zestawu dozwolonych instrukcji. Z tem działa ona podobnie jak dzisiejsze komputery - wyniki obliczeń zależą zapisanych w pamięci komputera danych i od zestawu wykonywanych intrukc Zawartość taśmy po zatrzymaniu się maszyny zależy od obu tych czynnikć Nieodparcie nasuwa się pytanie o to, co możemy policzyć za pomocą tak p stych maszyn. Okazuje się, że bardzo wiele. Sam Turing sformułował tezę, iż maszynie tego typu można zrealizować każdy algorytm. Do dzisiaj nie obalono tezy. Zauważmy, że w związku z tym można przyjąć, iż algorytmem jest dowo opis wykonania obliczeń na maszynie Turinga. Analizując moc swoich maszyn, Turing doszedł jednak do wniosku, że istn funkcje, których wartości nie mogą one obliczać. Nakreślił w ten sposób grai możliwości obliczeń. Działo się to w latach, gdy w matematyce, inny gen: XX wieku, Kurt Gódel nakreślił granice możliwości dowodu matematyczni Wykazał on bowiem, że nie z każdego skończonego układu aksjomatów mc wyprowadzić wszystkie zgodne z nimi (czyli prawdziwe) fakty. Wspomnijmy tutaj jeszcze o dwóch innych dziedzinach działalności Turi ściśle związanych z automatyzacją obliczeń i komputerami. W latach II w światowej Turing został włączony do grupy specjalistów zajmujących się w \ kiej Brytanii deszyfracją kodów Enigmy - maszyny, którą Niemcy używa kodowania meldunków i rozkazów rozsyłanych swoim jednostkom na wszysi frontach. W 1941 roku działalność tej grupy przyczyniła się do zredukowania Pierwsze komputery 27 tyjskich strat na morzach o 50%. Brytyjscy specjaliści korzystali z materiałów (wśród których był egzemplarz Enigmy oraz maszyna deszyfruj ąca zwana bombą) przekazanych im w 1939 roku przez grupę Polaków kierowaną przez Mariana Re- jewskiego, zajmujących się od pięciu lat skonstruowaniem maszyny deszyfrującej. Chociaż Brytyjczycy udoskonalili maszynę deszyfrującą otrzymaną od Polaków, pozostawała ona nadal maszyną mechaniczną i jej działanie nie nadążało za ciągle udoskonalanymi i zmienianymi przez Niemców egzemplarzami Enigmy. Ocenia się, że w szczytowym okresie II wojny światowej Niemcy używali ponad 70 tysięcy maszyn szyfrujących Enigma. Prace nad maszyną deszyfrującą Enigmę przyczyniły się do powstania pod koniec wojny w Wielkiej Brytanii kalkulatorów elektronicznych5. Powstało kilka wersji maszyny o nazwie Coloss, których głównym konstruktorem był T.H. Fo- wers. Były to już maszyny elektroniczne, w których zastosowano arytmetykę b