Języki Programowania

Wielkość: px
Rozpocząć pokaz od strony:

Download "Języki Programowania"

Transkrypt

1 Języki Programowania materiały uzupełniające do wykładów 19 maj, 2006 Wojciech Sobieski Uniwersytet Warmińsko-Mazurski Wydział Nauk Technicznych Katedra Mechaniki i Podstaw Konstrukcji Maszyn Olsztyn, ul. M. Oczapowskiego 11. tel.: (89) fax: (89) wojciech.sobieski@uwm.edu.pl Niniejszy dokument nie zawiera tekstów aktorskich lecz jest jedynie kompilacją różnych materiałów internetowych, powstałą w okresie opracowywania zakresu tematycznego przedmiotu Języki Programowania II (lata ), realizowanego na specjalności Inżynierskie Zastosowania Komputerów WNT UWM w Olsztynie. Na podstawie zebranych materiałów (przedstawionych w opracowaniu oraz innych) opracowany został autorski cykl wykładów do tego przedmiotu. Olsztyn /64

2 Spis treści 1 Historia rozwoju komputerów Od Starożytności do Średniowiecza Wiek XVII i XVIII Charles Babbage ( ) Przełom XIX i XX wieku Początek XX wieku Pierwsze komputery John von Neumann ( ) Komputer typu PC Kronika Języki programowania Rozwój programowania Generacje języków programowania Podstawowe definicje Środowisko programistyczne Etapy kompilacji Podział języków programowania Przegląd języków programowania Elementy języków programowania Podstawowe cechy języków programowania: Zmienne i stałe Wyrażenia Instrukcje Wyjątki Styl programowania Elementy stylu programowania Metody testowania programów Algorytmy Rodzaje algorytmów Rodzaje zapisu algorytmów Schematy blokowe Zasady tworzenia schematów blokowych: Etapy rozwiązywania problemów: Realizacja pętli i instrukcji warunkowych Przykłady schematów blokowych: Poprawność algorytmów Technologia programowania Fazy powstawania programu komputerowego: Rodzaje programowania /64

3 1 Historia rozwoju komputerów. Ludzkość wytwarza coraz więcej informacji. Tak wiele, że jej przetwarzanie, czyli pamiętanie, klasyfikowanie, poszukiwanie, obrazowanie i zestawianie jest ponad ludzkie siły. Dlatego tak duże znaczenie osiągnęły "maszyny", które radzą sobie z tym zadaniem lepiej i szybciej od człowieka - komputery. Komputery, czyli maszyny liczące (z ang. compute - obliczać) mają więcej lat niż się na ogół przypuszcza. Za przodków komputera uznać bowiem należy wszystkie urządzenia służące do liczenia. 1.1 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ątkowo kamienie układano w rzędach na piasku tworząc w ten sposób plansze obliczeniowe, 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 rozmieszczenie elementów ruchomych 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. Jest on jeszcze dzisiaj dość powszechnie stosowanym liczydłem w Japonii. 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 wyników pośrednich, ani na pamiętanie kolejno wykonywanych działań. Rys. 1. Starożytna figurka przedstawiająca człowieka z abacusem. Wiemy, że Leonardo da Vinci był geniuszem, którego pomysły wykraczały daleko poza jego epokę, ale mało kto wie, że próbował on również skonstruować maszynę liczącą. 13 marca 1967 roku amerykańscy naukowcy pracujący w Madrycie w Bibliotece Narodowej Hiszpanii napotkali dwie nieznane dotąd prace Leonarda da Vinci nazwane "Codex Madrid". Dotyczyły one maszyny liczącej. Dr Roberto Guatelli znany ekspert w dziedzinie twórczości Leonarda, tworzący także repliki jego prac postanowił razem ze swoimi asystentami odtworzyć również i tą maszynę. Dokonano tego w 1968 r. jednak dzisiejsze dzieje tej repliki są nieznane i nie wiadomo gdzie ona się znajduje. Specjaliści zarzucali Guatellemu, że w swojej rekonstrukcji nadmiernie kierował się intuicją i współczesną wiedzą oraz, że wyszedł poza projekt Leonarda. Tak więc Leonardo da Vinci - geniusz epoki renesansu wniósł również wkład w rozwój maszyn liczących. 3/64

4 Rys. 2. Na zdjęciach: oryginalne zapiski Leonarda da Vinci oraz replika maszyny jego pomysłu 1.2 Wiek XVII i XVIII. Na początku XVII wieku John Neper opublikował najpierw swoje dzieło o logarytmach a następnie przedstawił system wspomagający wykonywanie mnożenia, 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 uznawany Wilhelm Schickard ( ), który przez długie lata był zupełnie zapomniany. Schickard opisał projekt swojej czterodziałaniowej maszyny, wykorzystując 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 niewyjaśnionych okolicznościach, a dzisiejsze jej repliki zostały odtworzone dopiero niedawno na podstawie opisu z listu Keplera. W XVII wieku żyli i tworzyli wielcy matematycy Gottfried Wilhelm Leibniz ( ) i Blaise Pascal ( ). Pascal zainteresował się zbudowaniem maszyny liczącej z myślą o dopomożeniu swojemu ojcu, który był poborcą podatkowym. Wyprodukowano około 50 egzemplarzy Pascaliny - maszyny według pomysłu Pascala. Kilka egzemplarzy 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 powierzchni (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 przenoszenia 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 4/64

5 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 biurowych. Maszyny Schickarda, Pascala, i Leibniza wymagały od użytkownika manualnej pomocy w wielu czynnościach związanych z kolejnymi krokami obliczeń. Za ich pomocą nie było jeszcze można w pełni automatycznie i w całości wykonać prostego działania na dwóch liczbach. Rys. 3. Z lewej: pascalina; z prawej: maszyna Laibnizta. W tym miejscu wypada wspomnieć o udziale naszego rodaka w dziele tworzenia maszyn liczących. Abraham Stern ( ), z zawodu zegarmistrz, wykonał serię maszyn, które poza czterema działaniami podstawowymi, wyciągały także pierwiastki kwadratowe. Jedna z jego maszyn, raz uruchomiona, potrafiła wykonać za pomocą mechanizmu zegarowego wszystkie operacje bez ingerencji człowieka. Maszyny skonstruowane przez Sterna okazały się jednak mało praktyczne ze względu na wyjątkowo delikatną budowę. 1.3 Charles Babbage ( ). Za najwybitniejszego twórcę maszyn liczących, żyjącego przed erą elektroniczną, uważa się Anglika Charlesa Babbage'a. Swoją pierwszą maszynę nazwaną maszyną różnicową, (gdyż wykonywała obliczenia metodą różnicową), konstruował 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 zaprzestał dalszych prac nad nią w 1842 roku. Zmontowaną część maszyny (podobno nadal sprawną) można oglądać w Muzeum Nauk w Londynie. Należy dodać, że w odróżnieniu od maszyn Leibniza i Pascala, po ręcznym ustawieniu początkowego stanu, dalsze działania maszyny różnicowej nie wymagają 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 i Edward Scheutzowie, często z większym powodzeniem ukończyli swoje, może mniej ambitne ale nadal praktyczne konstrukcje maszyn różnicowych. Ale Babbage nie poprzestał na próbie skonstruowania maszyny różnicowej. Marzył o maszynie, która mogłaby rozwiązywać bardziej złożone zadania. Tak narodził się jeszcze w trakcie prac nad maszyną różnicową pomysł zbudowania maszyny analitycznej, którym Babbage żył do śmierci. Było to przedsięwzięcie czysto abstrakcyjne - przewidywane przeszkody techniczne i trudności finansowe nie pozwoliły nawet na rozpoczęcie prac konstrukcyjnych. W projekcie Babbage zawarł jednak wiele pomysłów zrealizowanych dopiero we współczesnych komputerach. Między innymi rozdzielił pamięć (zwaną magazynem) od jednostki liczącej (młyna), czyli miejsce przechowywania danych od jednostki wykonującej na nich działania. Obie te części maszyny analitycznej miały być 5/64

6 sterowane za pomocą dodatkowego urządzenia kontrolnego, które otrzymywało polecenia na kartach perforowanych, udoskonalonych i rozpowszechnionych przez Jacquarda do programowania maszyn tkackich. Można więc uznać maszynę analityczną Babbege'a za pierwszy pomysł kalkulatora sterowanego programem zewnętrznym. Rys. 4. Maszyna Babbaga. Opis działania maszyny analitycznej trafił w ręce Ady ( jej pełne nazwisko: Ada Augusta hrabina Lovelace), znanej w owych czasach z błyskotliwego umysłu. Urzeczona doskonałością projektu uważała, że... " maszyna analityczna tkać będzie wzory algebraiczne, tak jak krosna Jacquarda tkają licie i kwiaty...". Nie czekając na skonstruowanie maszyny (czego i tak by nie doczekała), Ada zajęła się sporządzaniem opisów jej używania do rozwiązywania konkretnych zadań obliczeniowych. Opisy te nazwano by dzisiaj programami, dlatego uważa się ją za pierwszą programistkę komputerów. Dla uczczenia zasług Ady na tym polu nazwano jej imieniem jeden z najbardziej uniwersalnych języków programowania. 1.4 Przełom XIX i XX wieku. Koniec XIX wieku był początkiem rozwoju urządzeń mechanograficznych, których głównym przeznaczeniem było usprawnienie rachunków statystycznych, księgowych i biurowych. Zaczęło się w Stanach Zjednoczonych od Hermana Holleritha, który postanowił zautomatyzować prace statystyczne związane ze spisem ludności przeprowadzanym wtedy w Stanach co dziesięć lat. Hollerith sięgnął po elektryczność, jako źródło impulsów i energii, rozwinął postać karty perforowanej, na której zapisywano dane i zbudował elektryczny czytnik - sorter kart. Olbrzymim sukcesem Holleritha okazał się spis 1890 roku, którego wyniki zostały 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 oferowały maszyny sterowane kartami perforowanymi i z latami zyskiwały na swojej potędze a wiele z nich przetrwało do dzisiaj, jak na przykład IBM, Bull, 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 informacji. Wniosło to także zmiany w stosunkach 6/64

7 międzyludzkich, a w szczególności między państwem (posiadaczem maszyn do obróbki informacji) i obywatelem. 1.5 Początek XX wieku. Wśród modeli obliczeń powstałych w pierwszej połowie XX wieku największą popularność zdobyły maszyny Turinga. W swojej fundamentalnej pracy z 1936 roku, Alan Turing bardzo przystępnie opisał tok mylenia prowadzący od obliczeń wykonywanych ręcznie do obliczeń wykonywanych przez bardzo prostą maszynę. Oto jej opis. Obliczenia ręczne są najczęściej wykonywane na pokratkowanej kartce papieru, której pojedyncze kratki są wypełnione cyframi i symbolami działań. Dysponujemy tylko skończoną liczbą znaków ( cyfr, np. 0 oraz 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żna przyjąć, ż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ł wykonujący obliczenia, chociaż duża jest skończona. Turing doszedł do koncepcji swojej maszyny wprowadzając pewne uproszczenia i uściślenia w działaniach na kartce i nad nią. Po pierwsze, zapis obliczeń na kartce papieru (a dokładniej na dwuwymiarowym układzie kratek) można sprowadzić do zapisu na jednowymiarowej pokratkowanej kartce, czyli na tamie podzielonej na kratki. Wystarczy w tym celu treść obliczeń wypełniających kartkę zapisać wierszami. Traci się przy tym czytelność, ale zyskuje redukcję wymiaru kartki. Po drugie, umysł wykonujący obliczenia można zastąpić przez obiekt bardziej fizyczny zwany głowicą, która znajduje się nad tamą, może się poruszać w obie strony tamy, a w danej chwili widzi jedynie symbol umieszczony w kratce, nad którą zawisła. Działanie głowicy jest określone przez ustalony zbiór instrukcji, zgodnie z którymi może poruszać się w lewo, w prawo lub stać w miejscu, potrafi rozpoznawać symbole i może zmieniać zawartości kratki, nad którą się znajduje. Wykonanie instrukcji przez maszynę Turniga jest działaniem głowicy, uzależnionym od stanu, w jakim się znajduje i co widzi. Obliczenia wykonywane za pomocą maszyny Turinga zależą od początkowego zapisu symboli na tamie i od przyjętego zestawu dozwolonych instrukcji. Zatem działa ona podobnie jak dzisiejsze komputery - wyniki obliczeń zależą od zapisanych w pamięci komputera danych i od zestawu wykonywanych instrukcji. Zawartoć tamy po zatrzymaniu się maszyny zależy od obu tych czynników. Nieodparcie nasuwa się pytanie o to, co można policzyć za pomocą tak prostych maszyn. Okazuje się, że bardzo wiele. Sam Turing sformułował tezę, iż na maszynie tego typu można zrealizować każdy algorytm. Do dzisiaj nie obalono tej tezy. Zauważa się, że w związku z tym można przyjąć, iż algorytmem jest dowolny opis wykonania obliczeń na maszynie Turinga. Analizując moc swoich maszyn, Turing doszedł jednak do wniosku, że istnieją funkcje, których wartości nie mogą one obliczać. Wspomnieć tutaj należy jeszcze o dwóch innych dziedzinach działalności Turinga ściśle związanych z automatyzacją obliczeń i komputerami. W latach II wojny światowej Turing został włączony do grupy specjalistów zajmujących się w Wielkiej Brytanii deszyfracją kodów Enigmy - maszyny, którą Niemcy używali do kodowania meldunków i rozkazów rozsyłanych swoim jednostkom na wszystkich frontach. W 1941 roku działalność tej grupy przyczyniła się do zredukowania brytyjskich 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 Rejewskiego, zajmujących się od 7/64

8 pięciu lat skonstruowaniem maszyny deszyfrującej. Chociaż Brtyjczycy 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 elektronicznych. Powstało kilka wersji maszyny o nazwie Coloss, których głównym konstruktorem był T.H. Fowers. Były to już maszyny elektroniczne, w których wykorzystano arytmetykę binarną, sprawdzane były warunki logiczne (a więc można było projektować obliczenia z rozgałęzieniami), zawierały rejestry, mogły wykonywać programy (poprzez uruchomienie tablic rozdzielczych) i wyprowadzać wyniki na elektryczną maszynę do pisania. 1.6 Pierwsze komputery. Pierwsze komputery zbudowano dopiero w naszym stuleciu, chociaż pomysły, jakie w nich zrealizowano, pojawiły się przynajmniej sto lat wcześniej, już za czasów Babbage'a. Zastosowane w komputerach środki techniczne pojawiły się bowiem dopiero w latach międzywojennych. Za największego inspiratora powstania komputera w jego obecnej postaci uważa się Johna von Neumanna. Ale najpierw trzeba oddać właściwe miejsce twórcom rzeczywiście najwcześniejszych konstrukcji, pretendujących do miana komputera. Pojawienie się większości z nich przyspieszyła II wojna światowa. W 1941 roku Konrad Zuse ukończył w Niemczech prace nad maszyną Z 3, która wykonywała obliczenia na liczbach binarnych zapisanych w reprezentacji, nazywanej dzisiaj zmiennopozycyjną, sterowane programem zewnętrznym podawanym za pomocą perforowanej tamy filmowej. Maszyna Z 3 została całkowicie zniszczona w czasie bombardowania w 1945 roku. Następny model maszyny Zusego, Z 4 przetrwał i działał do końca lat pięćdziesiątych. Maszyny Zusego były kalkulatorami przekaźnikowymi. W tym czasie znane już były prace Claude Shannona dotyczące działań binarnych (logicznych) za pomocą układów elektronicznych zgodnie z regułami Boole'a. Rys. 5. ENIAC. W roku 1942 zespół specjalistów pod kierunkiem J.W. Mauchly'ego i J.P. Eckerta zaprojektował i zbudował maszynę ENIAC (ang. Electronic Numerical Integrator And Computer). Pierwsze obliczania maszyna ta wykonała w listopadzie 1945 roku. Maszyna ENIAC jest uznawana powszechnie za pierwszy kalkulator elektroniczny, chociaż w 1976 roku okazało się, że wczeniej zaczęły pracować w Wielkiej Brytanii maszyny Coloss I i II. Maszyna ENIAC była monstrualną konstrukcją złożoną z 50 szaf o wysokości 3 metrów zawierających około 20 tysięcy lamp. 8/64

9 Słabością tej maszyny było: użycie zwykłego systemu dziesiętnego do pamiętania liczb, brak rozdziału między funkcjami liczenia i pamiętania oraz bardzo uciążliwy sposób zewnętrznego programowania. Wady te zostały usunięte dopiero w projekcie EDVAC. 1.7 John von Neumann ( ). John von Neumann, z pochodzenia Węgier, był w swoich czasach jednym z najwybitniejszych matematyków. W 1946 roku zainspirował on prace w projekcie EDVAC (ang. Electronic Discrete Variable Automatic Computer ), których celem było zbudowanie komputera bez wad poprzednich konstrukcji. Zaproponowano architekturę, zwaną odtąd von neumannowską, według której buduje się komputery do dzisiaj. W komputerze von Neumanna można wyróżnić przynajmniej następujące elementy: pamięć złożoną z elementów przyjmujących stan 0 lub 1, arytrometr zdolny wykonywać działania arytmetyczne, logiczne i inne, sterowanie, wprowadzanie danych i wyprowadzanie wyników. Program, czyli zbiór instrukcji, według których mają odbywać się obliczenia, jest wpisywany do pamięci. Kolejne rozkazy programu są pobierane przez jednostkę sterującą komputerem w takt centralnego zegara i rozpoznawane zgodnie z mikroprogramem wpisanym w układ elektroniczny. Należy podkreślić, że program jest przechowywany w pamięci komputera i jego działanie może zmieniać zawartość dowolnego obszaru pamięci (programy mogą się także same modyfikować). Fizycznie nie ma żadnej różnicy między danymi i programami przechowywanymi w pamięci komputera: są podobnie kodowane jako ciąg zer i jedynek i tak samo zrealizowane technicznie. Można więc powiedzieć, że celem działania komputera von neumannowskiego jest przejście w takt zegara od jednego stanu zawartości pamięci (danego na początku) do innego, zawierającego oczekiwany wynik. Można zauważyć podobieństwo tego spojrzenia na komputer von Neumanna do maszyny Turinga. Nie ma w tym nic dziwnego gdyż von Neumann bardzo dobrze znał osiągnięcia Turinga. Postęp w elektronice umożliwił dalszy rozwój komputerów. W latach sześćdziesiątych lampy zastąpiono tranzystorami. Pierwszy tranzystorowy komputer zbudowano w 1956 roku w Massachusettes Institute of Technology. Z kolei układy scalone zastąpiły tranzystory (układ scalony zawierał w jednej obudowie kilkadziesiąt tranzystorów i innych elementów elektronicznych). Dalszy postęp produkcji tych układów pozwolił umieszczać w jednej "kostce" dziesiątki tysięcy tranzystorów. Obwody takie nazwano układami wielkiej skali integracji ( VLSI z ang. Very Large Scale of Integration ). Wymyślono termin: " generacja komputerów " i nazwano komputery lampowe mianem pierwszej generacji, tranzystorowe - drugiej, zbudowane z układów scalonych - trzeciej, a w technologii VLSI - czwartej. Postęp w technologii produkcji komputerów odbywał się tak szybko, że zaczęto mówić o rewolucji komputerowej. Wprowadzenie na rynek tanich układów scalonych umożliwiło powstanie mikrokomputerów, w których elementy przetwarzające informacje umieszczono w jednym układzie - mikroprocesorze. 1.8 Komputer typu PC. Pierwsze komputery osobiste (PC z ang. Personal Computer) zostały opracowane przez IBM. Ponieważ firma ta nie miała nic przeciwko temu, by inne przedsiębiorstwa skorzystały z jej pomysłu i podążyły jej śladem, wielu producentów sprzedaje dziś własne komputery, które jednak są wciąż budowane według tej samej koncepcji firmy IBM. Ponieważ na rynku pojawiało się coraz więcej produktów, zaczęto pisać programy dla tego typu komputerów. Producenci sprzętu 9/64

10 odpowiedzieli na to kolejną falą unowocześnionych komputerów typu IBM - PC. Proces ten rozwijał się na zasadzie lawiny: komputery, nowe komponenty i oprogramowanie są obecnie tworzone przez setki najróżniejszych producentów. Tym sposobem PC stał się najbardziej rozpowszechnionym typem komputera na wiecie. Niemal w tym samym czasie, którym narodził się PC, firma Apple zaczęła budować swój własny typ komputera osobistego, dzieło Steve Woźniaka i Steve Jobsa. System Apple nie był jednak zgodny z IBM - PC ani pod względem sprzętu, ani oprogramowania. Swój sukces zawdzięczał on faktowi, iż po raz pierwszy wykorzystano tam graficzny sposób komunikowania się z użytkownikiem bazujący na obrazkach i oknach - na rok przed rozpowszechnieniem się Windows firmy Microsoft. Komputery Apple od samego początku były systemami kompletnymi. Oznaczało to, że w ich przypadku nie było już konieczne kupowanie dodatkowych komponentów, aby na przykład osiągnąć dźwięk odpowiedniej jakości. W przeciwieństwie do ówczesnych komputerów PC - tów, komputery Apple były znacznie prostsze w obsłudze. Mac, jak chętnie nazywa się komputer firmy Apple, szybko stał się ulubionym narzędziem ludzi z kręgów twórczych. Używali go przede wszystkim architekci, muzycy i projektanci, którym najczęściej potrzebny był właśnie wydajny i łatwy w obsłudze komputer. Tak więc Mac wciąż pozostaje główną alternatywą dla komputerów typu IBM - PC, a fakt, iż w porównaniu z PC -tem jest mniej dostępny na rynku, wynika głównie stąd, że firma Apple nie udostępniła nikomu praw do kopii swojego projektu. Większość producentów skorzystała co prawda z koncepcji peceta firmy IBM, niemniej niektórzy wyłamali się i podążyli własną drogą tworząc komputery osobiste niezgodne ze standardem. Stąd też oprogramowanie stworzone dla typowego komputera PC z reguły nie może być na nich uruchamiane. W zupełnym oderwaniu od standardu IBM - a powstały rozwiązania, które przewyższają pierwowzór czy to pod względem ceny, czy przydatności do gier, czy też obróbki dźwięku czy też grafiki. Niejeden z tego typu systemów był i wciąż jeszcze jest wspaniałym narzędziem, jednakże przeznaczonym wyłącznie dla specjalistów skupiających się na wykonywaniu określonej grupy zadań. 1.9 Kronika : Blaise Pascal skonstruował jedną z pierwszych maszyn matematycznych. 1822: Brytyjski matematyk Charles Babbage zaprezentował model maszyny różnicowej, który miał różnice drugiego rzędu i osiem miejsc po przecinku. Zajął się on następnie maszyną o różnicach siódmego rzędu i 290 miejscach po przecinku, poniósł jednak porażkę przy rozwiązywaniu problemu wykonania skomplikowanego napędu zębatego /64

11 1833: Charles Babbage przedstawił pomysł pierwszej cyfrowej maszyny analitycznej. Nie została ona nigdy zbudowana. Projekt przewidywał jednak istotne składniki nowoczesnego przetwarzania danych. 1930: W Massachusetts Institute of Technology w Cambridge (USA) grupa naukowców pod kierownictwem inżyniera elektryka Vannevara Busha konstruuje pierwszy - pracujący elektromechanicznie - komputer analogowy. 1936: Francuz R. Valtat zgłosił do opatentowania maszynę liczącą, której zasada działania oparta była na systemie dwójkowym. 1937: Niemiec Konrad Zuse zbudował elektromechaniczną maszynę liczącą opartą na systemie dwójkowym. George Stibitz zbudował binarną maszynę sumującą Model K. George Stibitz tworzy w Laboratoriach Bella pierwszy cyfrowy obwód. 1940: Alianci zbudowali pierwszą nadającą się do użytku maszynę deszyfrującą. 1941: Niemiecki inżynier Konrad Zuse zaprezentował swoją cyfrową maszynę liczącą "Zuse Z3".Była to pierwsza sterowana programowo maszyna matematyczna, o wysokich parametrach eksploatacyjnych. "Zuse Z3" posiadała binarny mechanizm liczący z prawie 600 przekaźnikami jako bistabilnymi elementami i pamięcią z około 1400 przekaźnikami. 1942: Amerykanin John V. Atanasoff ukończył pierwszą sprawną elektroniczną maszynę liczącą w technice lampowej. Atanasoff podjął plan już w roku Był przekonany, że metoda cyfrowa i zastosowanie liczb binarnych będzie najwłaściwsze do budowy maszyn liczących. 1943: Niemiecki inżynier Henning Schreyer zgłosił do opatentowania pełnoelektroniczną pamięć i urządzenie liczące z lampami jarzeniowymi. Schreyer od 1937 r. wspólnie z Konradem Zuse zajmował się konstruowaniem układu połączeń lampowych do przetwarzania danych. Teraz opracował on ideę budowy pełnoelektronicznej maszyny liczącej. Jednakże w czasie wojny w Niemczech brakowało środków na realizację jego planów. 1944: Węgiersko-amerykański matematyk i chemik John von Neuman rozpoczął próby z modelem pierwszej maszyny liczącej z pamięcią EDVAC (Electronic Discrete Variable Automatic Computer). W urządzeniu kodowano program, składający się z serii pojedynczych instrukcji. Program zawierał instrukcje warunkowe, które umożliwiały tworzenie pętli. Każda instrukcja programowa mogła być zmieniona przez samą maszynę, jak każdy inny argument operacji. Z takim sposobem działania maszyna zdecydowanie górowała nad wszystkimi dotychczasowymi maszynami matematycznymi. Fizyk Howard Hathavay oddał do użytku na Universytecie Harvarda cyfrową maszynę liczącą. Nazywała się MARK I bądź ASCC - miała potężne wymiary i była pierwszą sterowaną programowo maszyną liczącą USA. 11/64

12 1945: Na Uniwersytecie Pensylwania uruchomiono pierwszą wielką elektroniczną maszynę liczącą wiata ENIAC (Electronic Numerical Integrator and Computer). Zbudowana została przez Johna Prespera Ecckerta i Johna Williama Mauchly. Do czasu aż wszystkie jej zespoły stały się całkowicie zdolne do użytku, minęły jeszcze dwa lata. Wielka maszyna matematyczna wyposażona była w lampy elektronowe i liczyła 2000 razy szybciej niż komputer z elektromechanicznymi przekaźnikami. ENIAC zajmował powierzchnię zasadniczą 140 m.kw., posiadał przeszło lamp elektronowych, 1500 przekaźników i zużywał W mocy. Całe urządzenie waży ok. 80 ton i może wykonać maksymalnie 5000 operacji dodawania i 360 mnożenia w ciągu sekundy. Komputer cechuje duża awaryjność średnio co 5 minut przepala się jedna z kilkunastu tysięcy lamp elektronowych. Szybkość taktowania zegara ENIAC-a wynosi 100. Powstaje pierwszy podręcznik obsługi komputera. Instrukcję posługiwania się komputerem ENIAC pisze Amerykanka Emily Goldstine. Grace M. Hopper w prototypie komputera Mark II znajduje pierwszą pluskwę. Jest nią ćma, która spowodowała błąd w pracy jednego z przekaźników. John von Neumann opracowuje koncepcję programu, który umieszczony w pamięci steruje komputerem. Rozpoczyna karierę termin bit. Niemiecki inżynier Konrad Zuse zakończył prace nad swoją maszyną liczącą " Zuse Z4". Komputer był rozwinięciem poprzedniego typu Z : W Stanach Zjednoczonych zbudowano maszynę liczącą " Mark II " w technice przekaźnikowej. Amerykańska firma IBM buduje komputer SSEC z lampami i przekaźnikami. Jest on sterowany za pomocą tamy dziurkowanej. Umożliwiono ingerencję w program. 1948: W toku rozwoju elektronicznych maszyn liczących, opartych na dwójkowym systemie liczbowym, znaczenie praktyczne zyskuje ugruntowana już przed ok. stu laty algebra Boole'a. Posługuje się ona wartościami logicznymi "Tak / Nie" lub " 0 / 1". Ten " krok binarny" określa matematyk John W. Tukey jako " bit" (binarny digit). Bit staje się jednostką informacji w przetwarzaniu danych. IBM 604 jest pierwszą dużą maszyną liczącą sterowaną tamą perforowaną. Richard Hamming opracowuje sposób wykrywania błędów w programach. 1949: Short Order Code, wymyślony przez Johna Mauchly, jest pierwszym językiem programowania wysokiego poziomu. Na Uniwersytecie Manchester (Anglia) pod kierownictwem Maurica V. Wilkesa skonstruowano po trzech latach pierwszy komputer lampowy z programowalną pamięcią EDSAC (Electronic Delay Storage Automatic Computer). W tym samym czasie również IBM uruchamia w Nowym Jorku pod kierownictwem Johna Prespera Eckerta układ z programowalną pamięcią - SSEC (Selective Sequence Electronic Calculator). EDSAC pracuje z 4500 lampami elektronowymi, a SSEC z lampami elektronowymi i przekaźnikami. Nowością w tych komputerach jest to, że tak przebieg programu jak i obróbka danych są zakodowane w pamięci maszyny, program zawiera rozkazy warunkowe, które umożliwiają rozgałęzienia i skoki i wreszcie każdy rozkaz programowy z operacyjną częścią adresową może samodzielnie zmienić. Koncepcję tych komputerów opracował już w 1944 r. matematyk amerykański pochodzenia węgierskiego John von Neamann. Jednakże jego urządzenie EDVAC rozpoczyna pracę dopiero w roku Np. w 1945 r. Zuse sformułował ogólny algorytmiczny język formuł, który uwzględniał możliwe warianty programowania pamięci. 12/64

13 1950: Univac I firmy Eckert and Mauchly Computer Company jest komputerem produkowanym seryjnie. Komputer " Mark III " używa tamy magnetycznej zamiast kart perforowanych. 1951: Grace Murray Hopper wymyśla pierwszy kompilator A-0. Na Uniwersytecie Harwarda w Cambridge (Massachusetts) matematyk Howard H. Aiken uruchomił swoją maszynę cyfrową MARK III. Urządzenie to było kontynuacją urządzeń poprzednich MARK I i MARK II, które Aiken budował już od roku W niedługim czasie Aiken buduje pierwszy, wykonany w pełni w technice lampowej maszynę liczącą MARK IV. 1952: Pierwsze asemblery. Howard H. Aiken uruchomił w USA lampową maszynę liczącą MARK IV. 1954: J.W. Backus stworzył język komputerowy FORTRAN (formula translator). Umożliwia on dialog pomiędzy użytkownikiem a bankiem danych bez konieczności korzystania z pomocy programisty. FORTRAN jest skomplikowanym językiem komputerowym, który nie tylko przekazuje maszynie polecenia, lecz zawiera w sobie szereg wzorów ułatwiających programowanie. 1955: W Bell Telephone Laboratory w USA rozpoczęła pracę pierwsza tranzystorowa maszyna licząca " Tradic " skonstruowana przez zespół pod kierownictwem J. H. Felkera. Jest ona znana jako " komputer drugiej generacji ".Wkrótce pojawiły się na rynku tranzystorowe komputery ("7090 IBM" i "Gamma 60 Bull"). 1957: Fortran II. John McCarthy tworzy wydział sztucznej inteligencji na Uniwersytecie MIT. 1958: Opracowano komputerowy język programowania ALGOL (Algorithmic Language). Podobnie jak FORTRAN - ALGOL jest językiem problemowo zorientowanym, ale nie bardziej niż te, które są specjalistycznymi językami naukowo-technicznymi. Ma on inną strukturę niż FORTRAN. 1959: John McCarthy opracowuje język programowania Lisp (list processing). 1960: Powstaje język programowania Algol 60. Zostaje opracowany język programowania COBOL (Common Business Oriented Language). COBOL używa stosunkowo dużej liczby symboli słownych. Powstaje LISP. W listopadzie firma DEC przedstawia PDP-1, pierwszy komputer wyposażony w monitor i klawiaturę. 13/64

14 1962: Powstaje APL, APL/PC, APL*PLUS. Powstaje SIMULA. Maleńkie tranzystory zwiększają prędkość elektronicznego przetwarzania danych (trzecia generacja komputerów). 1963: Powstaje program Eliza, który wykazuje pewne przejawy inteligencji. Potrafi prowadzić proste rozmowy z człowiekiem. Na uniwersytecie Kalifornijskim rozpoczynają się prace nad logiką rozmytą (fuzzy logic), która ma pomóc w stworzeniu komputera myślącego. Zatwierdzony zostaje 7-bitowy kod ASCII. 1964: Powstaję języki PL/I, dialekty: EPL, PL/S, XPL. Thomas Kurz i John Kemeny opracowują w Dartmouth College prosty język programowania Basic. 1966: Fortran IV (1966). 1967: Ole-Johan Dahl i Kristen Nygaard z Norwegian Computing Centre opracowują język Simula, który jest pierwszym obiektowo zorientowanym językiem programowania. Holender Edsger Dijkstra opracowuje zasady programowania strukturalnego. Powstaje firma Intel założona przez dwóch byłych pracowników Fairchild Semiconductor. Powstaje pierwszy radziecki superkomputer - BESM : Powstaje Algol 68. Edsger Dijkstra przekonuje, że instrukcja GOTO może być szkodliwa i nie powinno się jej stosować. Monolityczne układy przełączające zastępują minitranzystory i hybrydowe układy scalone. Zaczyna się czwarta generacja komputera. Podczas gdy komputery drugiej generacji wykonywały na sekundę 1300 dodawań, a trzeciej dodawań, to nowe urządzenia wykonują ponad Dzięki upowszechnieniu się komputerów Odra powstają pierwsze ZETO - Zakłady Elektronicznej Techniki Obliczeniowej. 1969: IBM podejmuje decyzję o niedostarczaniu programów aplikacyjnych razem ze sprzętem. Tak powstaje rynek oprogramowania. Szwajcar Niklaus Wirth opracowuje język programowania Pascal. Douglas Engelbart z Xerox PARC (Palo Alto Research Center) tworzy podstawy hipertekstu (pierwowzoru HTML). Engelbart jest również twórcą myszy komputerowej (1964 r.). 1970: Powstaje Prolog, Prolog-2, Prolog++, Prolog-D-Linda. W IMM powstają dwa zespoły zajmujące się technikami kompilacji. Zespół Jana Walaska buduje kompilatory COBOL i Pascala. Zespół Stanisława Niewolskiego tworzy kompilator Fortran IV dla RIAD. Prace te podjęto, by możliwe było samodzielne opracowywanie i 14/64

15 rozpowszechnianie kolejnych języków oprogramowania oraz tworzenie przy ich użyciu programów systemowych i aplikacyjnych. 1972: Dennis Ritchie opracowuje język programowania C w firmie Bell Labs. W laboratoriach PARC powstaje obiektowy języka programowania Smalltalk, stworzony przez Alana Kaya. Powstaje procesor Intel 8008 (200 Khz), pierwszy 8 bitowy układ, zastąpiony niebawem przez Intel : W kwietniu powstaje 8 bitowy procesor 8080 (2 Mhz). Składa się z 6 tys. tranzystorów. 1976: Departament Obrony USA ogłasza przetarg na opracowanie środowiska i języka do produkcji oprogramowania, które ma być wbudowane w postaci sterowników do dział okrętowych, stacji radiolokacyjnych, wyrzutni rakietowych. W konkursie wygrywa zespół reprezentujący kilka wydziałów informatyki uczelni francuskich. Ostatecznie Departament Obrony zatwierdza specyfikację wynikową języka ADA oraz związane z nim środowisko programistyczne. Cray 1 - pierwszy komputer wektorowy do intensywnych obliczeń numerycznych. Zilog wprowadza na rynek procesor Z : Fortran : W czerwcu Intel przedstawia pierwszy 16-bitowy procesor (4,77 Mhz). Składał się z 29 tys. tranzystorów. 1979: Powstają Modula-2, Modula-2+, Modula-3, Modula-P, Modula/R. 1980: Powstaje język programowania Ada. Powstaje dbase II - wersje późniejsze: dbase III, III+, IV, V Brytyjscy inżynierowie wprowadzili na rynek komputer osobisty (Sinclair ZX - 80). Microsoft tworzy pierwowzór DOS-u. 1981: IBM dostarcza pierwszy Personal Computer (PC) z 16-bitowym procesorem 8088, pracującym z częstotliwością 4,7 MHz pod kontrolą DOS. 1982: W lutym Intel prezentuje 16-bitowy procesor (6 Mhz). Zawiera on 134 tys. tranzystorów. John Warnock opracowuje w firmie Adobe język PostScript. 1983: Bjarne Stroustroup opracowuje C++. Borland wprowadza Turbo Pascal. Powstaje Smalltalk-80, Smalltalk/V na PC. 15/64

16 Powstaje standard Ada 83, rozszerzenia Ada++, Ada 9X. Microsoft wprowadza edytor Word dla DOS. 1984: Powstaje Macintosh. Microsoft prezentuje system operacyjny Windows. 1985: Powstaje COBOL 85 W październiku Intel przedstawia 32 bitowy procesor : Intel wprowadza procesor : W kwietniu powstaje procesor Intel 80486, który zawiera 1,2 mln tranzystorów. 1990: Powstaje procesor Intel i486. Microsoft wprowadza ikony do Windows : Fortran 90 Linus Thorvalds opracowuje system operacyjny Linux. 1992: Pojawia się Windows 3.1 przeznaczony dla krajów naszego regionu. System Microsoftu nie ma jeszcze polskego menu, ale obsługuje polskie znaki diakrytyczne. 1993: W marcu powstaje procesor Pentium Microsoft wprowadza Windows NT. Do sprzedaży trafiają polskie wersje Word i Excel. Z Wordem konkuruje edytor QR-Tekst firmy Malkom. 1994: Uchwalona przez Sejm Ustawa o prawie autorskim miała ograniczyć piractwo komputerowe. 1995: Sun przedstawia światu język Java. Powstaje Visual Fortran sierpnia na rynku pojawia się Windows : Powstaje Pentium Pro 1998: W kwietniu Intel przedstawia procesor Pentium II (350 MHz i 400 MHz). W czerwcu Microsoft wypuszcza system operacyjny Windows /64

17 2 Języki programowania. 2.1 Rozwój programowania. Możliwość zaprogramowania maszyny, a tym samym dostosowanie jej działania do wymogów użytkownika w danym momencie, przyczyniła się do tego, że komputer stał się obecnie urządzeniem niemal niezbędnym w wielu dziedzinach. Byłoby to niemożliwe bez znaczących postępów w programowaniu, a w szczególności bez rozwoju języków i narzędzi automatyzujących pracę programisty. Pierwsze komputery były programowanie przez fizyczną zmianę układów elektronicznych (tzw. hardware'u) lub przestawienie przeznaczonych do tego przełączników. Była to metoda powolna, kosztowna, o bardzo ograniczonych możliwościach. W ten sam sposób były wprowadzane dane. Z biegiem czasu ilość danych do opracowywania wzrosła tak bardzo, że nie pozostało nic innego, jak tylko poszukać nowego systemu. Tak powstały dziurkowane karty i taśmy. Kolejnym krokiem było zastosowanie takich samych kart i taśm do przechowywania programów. Dzięki temu komputery zyskały pewną elastyczność. Można było stosunkowo szybko i łatwo załadować dany program do pamięci maszyny. Możliwość przechowywania w pamięci komputera programu i danych stanowiła wielki krok naprzód, lecz jednocześnie stworzyła nowe problemy. Teraz bowiem okazało się, że potrzebny jest prosty system porozumiewania się z komputerem i kodowania programów, które maszyna ma wykonywać. I tak doszło do pojawienia się pierwszych języków programowania. Żeby komputer wykonał określone zadanie, należy wskazać mu sposób, w jaki ma to uczynić. Nie jest to proste, gdyż trzeba posłużyć się językiem zrozumiałym dla maszyny, którego podstawę stanowi szereg precyzyjnych instrukcji. Takie porozumiewanie się z komputerem odbywa się za pomocą środków, których dostarczają języki programowania, a które w swoich początkach były bardzo prymitywne i trudne w użyciu. Wszystkie języki programowania wykorzystują system ściśle ustalonych reguł, które w większym lub mniejszym stopniu mają zbliżyć do siebie język naturalny człowieka i maszyny; są pośrednikiem między skompilowanym kodem maszynowym (zrozumiałym dla komputera) a językiem naturalnym. Ponieważ jednak komputer rozumie i posługuje się tylko tzw. językiem binarnym, którego podstawę stanowi rozróżnienie dwóch stanów, jakie może przyjąć wyłącznik (włączone/wyłączone), a reprezentowanych przez 0 i 1, to ciąg instrukcji - czyli program - trzeba przetworzyć tak, aby stał się zrozumiały dla maszyny. Na szczęście, tłumaczenie takiego kodu na język zrozumiały dla komputera jest procesem mechanicznym i powtarzalnym, więc może być wykonane przez samą maszynę. Służy do tego specjalny program tłumaczący zwany translatorem. Obecnie do tłumaczenia kodu z języka programowania na język maszynowy używa się dwóch typów programów tłumaczących: kompilatorów i interpreterów. Kompilator przekształca program napisany w języku wysokiego poziomu na program w języku zrozumiałym dla maszyny. W ten sposób otrzymuje się tak zwany kod wynikowy, który może być wykonywany dowolnie wiele razy. W przypadku kompilatorów należy rozróżniać trzy języki: ten, w którym napisano program i który jest mniej lub bardziej zbliżony do naturalnego (kod źródłowy); właściwy dla danego typu komputera język maszynowy, na który tłumaczony jest program (kod wynikowy); język samego kompilatora, którym może być język programu źródłowego lub maszynowy (albo jeszcze jakiś inny). Interpreter natomiast tłumaczy kolejno poszczególne instrukcje programu napisanego w języku wysokiego poziomu (może to być ten sam język, co w przypadku kompilatora), a te są natychmiast wykonywane. Tak więc, odmiennie niż kompilator, który jednorazowo przekształca program w całości, interpreter tłumaczy każdą instrukcję oddzielnie, bezpośrednio przed jej wykonaniem. Interpreter nie generuje programu wynikowego. Dlatego za każdym razem, kiedy wykonuje się 17/64

18 dany program, interpreter ponownie musi go tłumaczyć linia po linii. Co więcej, również powtarzające się fragmenty programu muszą być tłumaczone oddzielnie, za każdym razem od nowa. W przypadku interpretera rozróżnia się tylko dwa języki. Jeden - to język programu źródłowego, a drugi - to język, w jakim został napisany sam interpreter. Nie wyodrębnia się kodu wykonywalnego, gdyż jest on podawany stopniowo, w miarę jak mikroprocesor zgłasza taką potrzebę. Programy interpretowane wykonują się wolniej niż kompilowane, ale interpreter, jako środowisko programowania i uruchomieniowe, jest bardziej elastyczny, gdyż wszelkie błędy (termin przejęty z angielskiego: bug - pluskwa) mogą być wyłapywane i poprawiane już w trakcie normalnego wykonywania programu. Techniki programowania rozwijały się równolegle do ewolucji komputera. Pierwsze języki starały się maksymalnie wykorzystać niewielką moc ówczesnych procesorów oraz skromne możliwości systemów operacyjnych. W tamtym czasie do programowania używano często języka niskiego poziomy zwanego asemblerem (w jęz. angielskim assembler), który jest językiem symbolicznym, lecz ściśle związanym z maszyną, na której program będzie wykonywany. W asemblerze jedna instrukcja tłumaczy się na jedną instrukcję procesora. Mimo tej niedogodności asembler był dobrą alternatywą dla żmudnego wprowadzania do pamięci maszyny nie kończących się ciągów zer i jedynek lub liczb szesnastkowych, z drugiej strony, wpisany weń stopień komplikacji sprawił, że środowisko to było wyłączną domeną wysokiej klasy profesjonalistów. Wprowadzenie asemblera przyczyniło się głównie do tego, że programy stały się czytelniejsze, chociaż do kodu symbolicznego dodano instrukcje nie mające swojego odpowiednika w rozkazach procesora. Służą one do przekazywania informacji kompilatorowi i zostały nazwane "pseudorozkazami". Pseudorozkazem są na przykład te, które określają początek i koniec pewnych części programu (podprogramów i procedur) lub wskazują kompilatorowi sposób wykonania konkretnego zadania. Wkrótce stwierdzono, że język symboliczny nie rozwiązuje ostatecznie problemów związanych z programowaniem, gdyż zmiana procesora wymaga nowego asemblera, dostosowanego do instrukcji nowej maszyny, a programowanie w asemblerze wymaga bardzo dobrego poznania mikroprocesora, jego rejestrów, struktury pamięci i wielu innych rzeczy. Mimo tych wad języki symboliczne są nadal stosowane z dwóch zasadniczych powodów. Po pierwsze, istnieje jeszcze olbrzymia ilość oprogramowania napisanego w tych językach, z którego nie można po prostu zrezygnować. Po drugie, z języków symbolicznych korzysta się do pisania niektórych krytycznych sekcji programów, gdyż dzięki temu, że stoją blisko języka wewnętrznego maszyny, mają bardzo wydajny kod, co pozwala budować zajmujące niewiele miejsca i szybko działające programy, specjalnie dostosowane do danego modelu. Reasumując można powiedzieć, że programowanie w języku maszynowym lub symbolicznym ma pewne zalety (lepsze dostosowanie do sprzętu, maksymalna prędkość działania, minimalne zajęcie pamięci), ale i znaczne wady (niemożność napisania kodu nie związanego z maszyną, wyższy stopień trudności przy pisaniu programu oraz w rozumieniu kodu programu). Kolejny krok naprzód w dziedzinie programowania nastąpił wraz z pojawieniem się języków wysokiego poziomu. Ponieważ języki te nie są tak ściśle związane z konkretną maszyną, programista znający którykolwiek z nich jest w stanie zaprogramować dowolny komputer, pod warunkiem, że istnieje odpowiedni dla niego kompilator lub interpreter. Zazwyczaj kompilatory języków wysokiego poziomu działają dwuetapowo. W pierwszej fazie kod źródłowy jest przekształcany do pewnej postaci pośredniej, również niezależnej od maszyny. W drugiej fazie, otrzymany w ten sposób kod pośredni jest tłumaczony na kod wewnętrzny maszyny, na której ma być wykonywany dany program. W ten sposób, zmieniając jedynie program tłumaczący w drugiej fazie, niewielkim wysiłkiem można przekształcić dany kod do postaci różnych języków maszynowych. 18/64

19 Pierwsze języki wysokiego poziomu, jak COBOL, FORTRAN i APL, pochodzą z lat pięćdziesiątych i sześćdziesiątych. Choć znacznie uprościły proces, w praktyce nie wyszły poza krąg zastosowań zawodowych. Wszystkie języki programowania - również asembler - muszą być tłumaczone na język zrozumiały dla komputera, a ten rozumie tylko ciągi zer i jedynek i jedynie na nich operuje. Obecnie oprócz języków dysponujących zarówno kompilatorem jak i interpreterem, na przykład BASIC, stosowane są inne, tradycyjnie interpretowane, np. APL, oraz takie, które są niemal wyłącznie kompilowane, np. COBOL i FORTRAN. W miarę pojawiania się na rynku kolejnych języków wysokiego poziomu użytkownicy stwierdzili, że do konkretnych zadań jedne były lepsze od innych. Dlatego też COBOL stał się ulubionym narzędziem do tworzenia aplikacji dotyczących zarządzania, podczas gdy FORTRAN rozpowszechnił się jako język do prac naukowo-technicznych dzięki łatwości, z jaką radzi sobie z wyrażeniami i skomplikowanymi działaniami matematycznymi. Pomimo że języki, o których wyżej mowa, są nadal stosowane, to obecnie zawodowi programiści korzystają zazwyczaj z bardziej rozwiniętych języków wysokiego poziomu, w szczególności dla środowiska komputerów osobistych PC, które bardzo upraszczają programowanie. Takimi językami są np. PASCAL i C, choć ten ostatni jest stopniowo wypierany przez swoją wydajniejszą odmianę C++. Innym, szybko rozpowszechniającym się językiem, jest JAVA. Z założenia przeznaczony do wykorzystania w Internecie, umożliwia jednak konstruowanie złożonych aplikacji. Główne cechy wyróżniające język JAVA to przenośność pomiędzy różnymi platformami sprzętowymi i systemami operacyjnymi oraz czytelny kod źródłowy programów napisanych w tym języku. Do tworzenia stron Internetu korzysta się również z innego języka - HTML (angielski skrót nazwy Hypertext Markup Language). Oferuje on mniej możliwości niż Java, a zasadniczym jego przeznaczeniem jest właśnie tworzenie stron WWW. Odpowiedzią na konieczność szybkiego i łatwego konstruowania złożonych programów było pojawienie się na rynku tzw. języków programowania wizualnego. Są to narzędzia, które na bazie języków wysokiego poziomu, takich jak BASIC, PASCAL i C++, pozwalają na budowanie programu przez wybranie obiektów i elementów, które mają pojawić się na ekranie. Główną zaletą języków wizualnych jest to, że udostępniają użytkownikowi środowisko graficzne, pozwalające budować kompletne aplikacje, nawet bez dobrej znajomości skomplikowanej składni danego języka. Spośród tego typu środowisk programistycznych należy wymienić, w szczególności, Delphi i ObjectVision firmy Borland oraz Visual Basic Microsoftu. Czasem narzędzia te są określane także mianem automatycznych generatorów kodu źródłowego. 2.2 Generacje języków programowania. Języki programowania można podzielić na pięć wyraźnie różniących się generacji (niektórzy mówią o czterech). W miarę jak zmieniał się komputer, wystąpiła konieczność dostarczania użytkownikowi narzędzi programistycznych, które umożliwiłyby mu maksymalne wykorzystanie sprzętu. Nie ma jednak pełnej zbieżności chronologicznej między poszczególnymi generacjami języków i sprzętu. Pierwsza generacja - Programowanie pierwszych komputerów akceptujących zmianę oprogramowania odbywało się bezpośrednio w kodzie binarnym, który można przedstawić jako ciągi zer i jedynek. Każdy typ komputera operuje własnym kodem, który dlatego został określony nazwą język maszynowy lub wewnętrzny. I to właśnie stanowi główną wadę tych języków, gdyż programista każdorazowo musi dostosowywać się do języka konkretnej maszyny. Druga generacja - Ponieważ operowanie ciągami zerojedynkowymi nie jest wygodne dla programisty, przypisano im łatwiejsze do zrozumienia znaki mnemotechniczne. Tak narodziły się 19/64

20 języki symboliczne, zwane też asemblerami. Choć stanowią proste tłumaczenie języka maszynowego na symbole i są ściśle związane z danym modelem komputera, to ułatwiają pisanie instrukcji i czynią je bardziej czytelnymi. Trzecia generacja - Kolejnym krokiem w rozwoju języków programowania było powstanie języków wysokiego poziomu. Symbole asemblera reprezentujące konkretne instrukcje zostały zastąpione kodem nie związanym z maszyną, bardziej zbliżonym do języka naturalnego lub matematycznego. Czwarta generacja - Na czwartą generację języków programowania składa się szereg narzędzi, które umożliwiają budowę prostych aplikacji przez zestawianie prefabrykowanych modułów. Obecnie wielu specjalistów uważa, że nie są to języki programowania w ścisłym znaczeniu, gdyż częstokroć stanowią jedynie rozszerzenie języków już istniejących. Niektórzy autorzy proponują stosować nazwę czwarta generacja wyłącznie w odniesieniu do programowania obiektowego (OOP). Piąta generacja - Nazwę język piątej generacji stosuje się czasem w odniesieniu do języków używanych do tworzenia programów wykorzystujących tzw. sztuczną inteligencję (AI) lub inaczej - systemów ekspertowych. 2.3 Podstawowe definicje. Język - jest to ogólna nazwa zdefiniowanego zbioru znaków i symboli oraz reguł określających sposoby i kolejność ich użycia. Język, który jest stosowany do przetwarzania algorytmów nosi nazwę języka algorytmicznego, a przy zastosowaniu go do celów programowania określony jest jako język programowania. Ponieważ komputer posługuje się językiem binarnym, tzn. rozróżnia stany 0,1, program w języku programowania należy przetworzyć tak, aby był zrozumiały dla maszyny zadaniem tym zajmują się translatory. Język programowania - zbiór zasad składni, instrukcji, dzięki którym powstaje kod źródłowy programu. Procesor jest w stanie wykonywać program w kodzie maszynowym. Jednakże tworzenie programów w tym języku jest praktycznie niemożliwe. Dlatego programista używa języka zrozumiałego dla człowieka, który następnie jest kompilowany bądź interpretowany do postaci maszynowej. Istnieje wiele rodzajów języków programowania. Można je podzielić na języki strukturalne i obiektowe. Innym kryterium podziału jest zastosowanie języków (innych używa się do tworzenia programów multimedialnych, a innych do obliczeń numerycznych czy np. aplikacji sieciowych). Niektóre z języków są bardziej uniwersalne niż inne. Język niskiego poziomu (angielskie low-level language) język programowania, w którym środki strukturalizacji kodu są ograniczone do co najwyżej podprogramów i makroinstrukcji. Polecenia w nim są zapisywane symbolicznie, a jednemu rozkazowi dla komputera odpowiada jeden rozkaz programisty. Do języków niskiego poziomu zalicza się języki adresów symbolicznych, czyli asemblery. Poziom języków programowania nie określa jego jakości, lecz rodzaj zastosowań. Język wysokiego poziomu (angielskie high-level language) język programowania, zazwyczaj o budowie blokowej, spełniający wymagania programowania strukturalnego, programowania z użyciem obiektów lub nawet programowania obiektowego. Typowymi i najczęściej używanymi językami wysokiego poziomu są języki: C, C++, Smalltalk, Java, Pascal i Lisp, lecz również języki specjalizowane, np. język SQL służący do formułowania zapytań do baz danych lub edukacyjny język Logo. Istnieje wiele modyfikacji języków starszej generacji, np. Fortranu, Basica lub Cobolu, które po unowocześnieniu spełniają w zupełności kryteria języków wysokiego poziomu. Cechą znamienną dla nich jest możliwość bezpieczniejszego programowania, tj. programowania mniej 20/64

Historia informatyki

Historia informatyki Spis treści 1 CZYM JEST INFORMATYKA... - 2-1.1 DEFINICJE INFORMATYKI...- 2-1.2 POJĘCIA ZWIĄZANE Z INFORMATYKĄ...- 2-2 ELEMENTY HISTORII INFORMATYKI... - 2-2.1 OD STAROŻYTNOŚCI DO ŚREDNIOWIECZA...- 2-2.2

Bardziej szczegółowo

algorytm przepis rozwiązania przedstawionego zadania komputer urządzenie, za pomocą którego wykonywane są algorytmy

algorytm przepis rozwiązania przedstawionego zadania komputer urządzenie, za pomocą którego wykonywane są algorytmy Podstawowe pojęcia związane z informatyką: informatyka dziedzina wiedzy i działalności zajmująca się gromadzeniem, przetwarzaniem i wykorzystywaniem informacji, czyli różnego rodzaju danych o otaczającej

Bardziej szczegółowo

Historia komputerów. Szkoła Podstawowa nr 8 im. Jana Wyżykowskiego w Lubinie

Historia komputerów. Szkoła Podstawowa nr 8 im. Jana Wyżykowskiego w Lubinie Historia komputerów Informatyka - dziedzina nauki, która zajmuje się przetwarzaniem informacji przy pomocy komputerów i odpowiedniego oprogramowania. Historia informatyki: Pierwszymi narzędziami, które

Bardziej szczegółowo

O informatyce i jej historii. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

O informatyce i jej historii. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski O informatyce i jej historii R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski www.il.pw.edu.pl/~rg s-rg@siwy.il.pw.edu.pl Informatyka (1) Informatyka to gałąź wiedzy związana z procesami:! projektowania,

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy Programowanie w C++ 1.Czym jest programowanie Pisanie programów to wcale nie czarna magia, tylko bardzo logiczna rozmowa z komputerem. Oczywiście w jednym ze specjalnie stworzonych do tego celu języków.

Bardziej szczegółowo

Podstawy Informatyki Języki programowania

Podstawy Informatyki Języki programowania Podstawy Informatyki Języki programowania alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Wprowadzenie Języki programowania 2 Przykład Wczytywanie programu do pamięci Podsumowanie 3 Przykład

Bardziej szczegółowo

Architektura komputerów Historia systemów liczących

Architektura komputerów Historia systemów liczących Historia systemów liczących Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń - zintegrowany rozwój

Bardziej szczegółowo

Komputery. Komputery. Komputery PC i MAC Laptopy

Komputery. Komputery. Komputery PC i MAC Laptopy Komputery Komputery PC i MAC Laptopy 1 Spis treści: 1. Komputery PC i Mac...3 1.1 Komputer PC...3 1.2 Komputer Mac...3 2. Komputery przenośne...4 2.1 Laptop...4 2.2 Netbook...4 2.3 Tablet...5 3. Historia

Bardziej szczegółowo

2014-10-15. Historia komputera. Architektura komputera Historia komputera. Historia komputera. Historia komputera. Historia komputera

2014-10-15. Historia komputera. Architektura komputera Historia komputera. Historia komputera. Historia komputera. Historia komputera Architektura komputera dr inż. Tomasz Łukaszewski 1 2 500 p.n.e: pierwsze liczydło (abakus) Babilonia. 1614kostkiJohnaNapiera szkockiego matematyka pozwalające dodawać i odejmować 3 4 1621suwak logarytmicznyopracowany

Bardziej szczegółowo

Informatyka. Michał Rad

Informatyka. Michał Rad Informatyka Michał Rad 13.10.2016 Co i po co będziemy robić Plan wykładów: Wstęp, historia Systemy liczbowe Co to jest system operacyjny i po co to jest Sprawy związane z tworzeniem i własnością oprogramowania

Bardziej szczegółowo

Wykład pierwszy Rys historyczny rozwoju sprzętu komputerowego

Wykład pierwszy Rys historyczny rozwoju sprzętu komputerowego Wykład pierwszy Rys historyczny rozwoju sprzętu komputerowego ARK: W1 SG 2005 1/7 Ważniejsze daty w historii rozwoju komputerów 1/5? komputery astronomiczne (Stonehenge)? abak (RYS1a, RYS1b) ok. 1400 astrolabium

Bardziej szczegółowo

Historia komputera. Lubię to! - podręcznik

Historia komputera. Lubię to! - podręcznik Historia komputera Lubię to! - podręcznik Plan na dziś Definicja komputera Dlaczego powstał komputer? Historia komputerów Przyrządy do liczenia Co to jest komputer? Definicja z https://www.wikipedia.org/

Bardziej szczegółowo

Programowanie komputerów

Programowanie komputerów Programowanie komputerów Wykład 1-2. Podstawowe pojęcia Plan wykładu Omówienie programu wykładów, laboratoriów oraz egzaminu Etapy rozwiązywania problemów dr Helena Dudycz Katedra Technologii Informacyjnych

Bardziej szczegółowo

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania

Wstęp do Informatyki. Program, proces tworzenia programu Środowisko programistyczne Języki programowania Wstęp do Informatyki Program, proces tworzenia programu Środowisko programistyczne Języki programowania Program - definicje Program jest przekładem problemu użytkownika na język maszyny Niklaus Wirth:

Bardziej szczegółowo

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow. Informatyka Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: 865 1766, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl 1 Program zajęć Wykład: Wprowadzenie Budowa i działanie sprzętu komputerowego

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego Arytmetyka cyfrowa Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego (binarnego). Zapis binarny - to system liczenia

Bardziej szczegółowo

Technika mikroprocesorowa

Technika mikroprocesorowa Technika mikroprocesorowa zajmuje się przetwarzaniem danych w oparciu o cyfrowe programowalne układy scalone. Systemy przetwarzające dane w oparciu o takie układy nazywane są systemami mikroprocesorowymi

Bardziej szczegółowo

Wstęp do Informatyki. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Wstęp do Informatyki. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Wstęp do Informatyki dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Literatura 1. Brookshear, J. G. (2003). Informatyka w ogólnym zarysie. WNT, Warszawa. 3. Małecki, R. Arendt D. Bryszewski A. Krasiukianis

Bardziej szczegółowo

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Studia podyplomowe dla nauczycieli INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE Przedmiot JĘZYKI PROGRAMOWANIA DEFINICJE I PODSTAWOWE POJĘCIA Autor mgr Sławomir Ciernicki 1/7 Aby

Bardziej szczegółowo

Wprowadzenie do inżynierii przetwarzania informacji

Wprowadzenie do inżynierii przetwarzania informacji Dr inż. Robert Wójcik Wprowadzenie do inżynierii przetwarzania informacji 1. Maszyny i systemy cyfrowe 1.1. Historia komputerów i główne kierunki ich rozwoju 1.2. Reprezentacja informacji w elektronicznych

Bardziej szczegółowo

Podstawy programowania

Podstawy programowania Podstawy programowania Część pierwsza Od języka symbolicznego do języka wysokiego poziomu Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót

Bardziej szczegółowo

Języki Programowania. Generacje języków programowania. Wojciech Sobieski

Języki Programowania. Generacje języków programowania. Wojciech Sobieski Języki Programowania Generacje języków programowania Wojciech Sobieski Olsztyn, 2001-2016 Starożytność liczenie na czarnych i białych kamieniach, liczydła (Soroban, Abacus). Soroban Abacus Leonardo da

Bardziej szczegółowo

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład V Rzut okiem na języki programowania 1 Kompilacja vs. interpretacja KOMPILACJA Proces, który przetwarza program zapisany w języku programowania,

Bardziej szczegółowo

JAKIE IDEE WPŁYNĘŁY NAJSILNIEJ NA ROZWÓJ I EWOLUCJĘ INFORMATYKI?

JAKIE IDEE WPŁYNĘŁY NAJSILNIEJ NA ROZWÓJ I EWOLUCJĘ INFORMATYKI? JAKIE IDEE WPŁYNĘŁY NAJSILNIEJ NA ROZWÓJ I EWOLUCJĘ INFORMATYKI? Dlaczego dla informatyków ważne są liczby? Dlaczego dla informatyków ważne są liczby? bo w pamięci komputerów cyfrowych wszelkie dane (teksty,

Bardziej szczegółowo

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania Informatyczna Wieża Babel, czyli o różnych językach programowania Informatyczna Wieża Babel, czyli o różnych językach programowania Wstęp Aplikacje i programy, jakich dziś używamy, ukryte dla nas pod postacią

Bardziej szczegółowo

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński ppelczynski@swspiz.pl Programowanie niskopoziomowe dr inż. Paweł Pełczyński ppelczynski@swspiz.pl 1 Literatura Randall Hyde: Asembler. Sztuka programowania, Helion, 2004. Eugeniusz Wróbel: Praktyczny kurs asemblera, Helion,

Bardziej szczegółowo

Podstawy programowania wykład

Podstawy programowania wykład Podstawy programowania wykład WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 1 Materiały do wykładu

Bardziej szczegółowo

Wstęp do architektury komputerów

Wstęp do architektury komputerów Wstęp do architektury komputerów Podręczniki: Willians Stallings: Organizacja i architektura systemu komputerowego, WNT Notatki z wykładu: http://zefir.if.uj.edu.pl/planeta/wyklad_architektura.htm Egzamin:

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Jan Kazimirski 1 Opis zajęć Odrobina historii... Elementy techniki cyfrowej Maszynowa reprezentacja danych Budowa i zasady działania współczesnych komputerów Elementy programowania

Bardziej szczegółowo

Technologie informacyjne - wykład 12 -

Technologie informacyjne - wykład 12 - Zakład Fizyki Budowli i Komputerowych Metod Projektowania Instytut Budownictwa Wydział Budownictwa Lądowego i Wodnego Politechnika Wrocławska Technologie informacyjne - wykład 12 - Prowadzący: Dmochowski

Bardziej szczegółowo

HISTORIA ROZWOJU KOMPUTERÓW

HISTORIA ROZWOJU KOMPUTERÓW KOMPUTERÓW HISTORIA ROZWOJU Ludzkość wytwarza coraz więcej informacji. Tak wiele, że jej przetwarzanie, czyli pamiętanie, klasyfikowanie, poszukiwanie, obrazowanie i zestawianie jest ponad ludzkie siły.

Bardziej szczegółowo

Przeszłość i przyszłość informatyki

Przeszłość i przyszłość informatyki Przeszłość i przyszłość informatyki Rodzaj zajęć: Wszechnica Popołudniowa Tytuł: Przeszłość i przyszłość informatyki Autor: prof. dr hab. Maciej M Sysło Redaktor merytoryczny: prof. dr hab. Maciej M Sysło

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne page.1 Technologie Informacyjne Wersja: 4 z drobnymi modyfikacjami! Wojciech Myszka 2013-10-14 20:04:01 +0200 page.2 Cel zajęć Cele zajęć: Uaktualnienie i ujednolicenie wiedzy/terminologii oraz zdobycie

Bardziej szczegółowo

Podstawy informatyki. Podstawowe pojęcia Historia informatyki

Podstawy informatyki. Podstawowe pojęcia Historia informatyki Podstawy informatyki Podstawowe pojęcia Historia informatyki Plan wykładu Historia, budowa i rodzaje komputerów Systemy operacyjne budowa i użytkowanie Oprogramowanie, licencje Przetwarzanie tekstów Arkusze

Bardziej szczegółowo

Alan M. TURING. Matematyk u progu współczesnej informatyki

Alan M. TURING. Matematyk u progu współczesnej informatyki Alan M. TURING n=0 1 n! Matematyk u progu współczesnej informatyki Wykład 5. Alan Turing u progu współczesnej informatyki O co pytał Alan TURING? Czym jest algorytm? Czy wszystkie problemy da się rozwiązać

Bardziej szczegółowo

Systemy operacyjne i sieci komputerowe

Systemy operacyjne i sieci komputerowe Historia komputerów 1 1. Historia komputeryzacji 1620 suwak logarytmiczny narzędzie ułatwiające dokonywanie prostych obliczeń, logarytmowanie. Był stosowany przez inżynierów jeszcze w XX wieku. Wynalazca,

Bardziej szczegółowo

ALGORYTMY I PROGRAMY

ALGORYTMY I PROGRAMY ALGORYTMY I PROGRAMY Program to ciąg instrukcji, zapisanych w języku zrozumiałym dla komputera. Ten ciąg instrukcji realizuje jakiś algorytm. Algorytm jest opisem krok po kroku jak rozwiązać problem, czy

Bardziej szczegółowo

Definicje. Algorytm to:

Definicje. Algorytm to: Algorytmy Definicje Algorytm to: skończony ciąg operacji na obiektach, ze ściśle ustalonym porządkiem wykonania, dający możliwość realizacji zadania określonej klasy pewien ciąg czynności, który prowadzi

Bardziej szczegółowo

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład I: Kodowanie liczb w systemach binarnych 1 Część 1 Dlaczego system binarny? 2 I. Dlaczego system binarny? Pojęcie bitu Bit jednostka informacji

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

Wstęp do Informatyki dla bioinformatyków

Wstęp do Informatyki dla bioinformatyków Wstęp do Informatyki dla bioinformatyków Wykład 1. Wstęp do Wstępu Bartek Wilczyński bartek@mimuw.edu.pl Po pierwsze - Formalności 2 kolokwia (po 15 pkt) początek XI i koniec XII Dwa programy zaliczeniowe:

Bardziej szczegółowo

Zapisywanie algorytmów w języku programowania

Zapisywanie algorytmów w języku programowania Temat C5 Zapisywanie algorytmów w języku programowania Cele edukacyjne Zrozumienie, na czym polega programowanie. Poznanie sposobu zapisu algorytmu w postaci programu komputerowego. Zrozumienie, na czym

Bardziej szczegółowo

Pracownia Komputerowa. Wyk ad I Magdalena Posiada a-zezula

Pracownia Komputerowa. Wyk ad I Magdalena Posiada a-zezula Pracownia Komputerowa Wyk ad I Magdalena Posiada a-zezula Kontakt Zak ad Cząstek i Oddzia ywań Fundamentalnych pok 4.20, Pasteura 5. http://www.fuw.edu.pl/~mposiada email: Magdalena.Posiadala@fuw.edu.pl

Bardziej szczegółowo

Wprowadzenie do programowania

Wprowadzenie do programowania Wprowadzenie do programowania Olsztyn 2007-2012 Wojciech Sobieski Podstawowe pojęcia Język - jest to ogólna nazwa zdefiniowanego zbioru znaków i symboli oraz reguł określających sposoby i kolejność ich

Bardziej szczegółowo

Programowanie i techniki algorytmiczne

Programowanie i techniki algorytmiczne Temat 2. Programowanie i techniki algorytmiczne Realizacja podstawy programowej 1) wyjaśnia pojęcie algorytmu, podaje odpowiednie przykłady algorytmów rozwiązywania różnych 2) formułuje ścisły opis prostej

Bardziej szczegółowo

PRZESŁANKI I PIERWSZE KONCEPCJE AUTOMATYCZNEGO LICZENIA

PRZESŁANKI I PIERWSZE KONCEPCJE AUTOMATYCZNEGO LICZENIA PRZESŁANKI I PIERWSZE KONCEPCJE AUTOMATYCZNEGO LICZENIA Pierwszą maszyną cyfrową, w której operacje wykonywane były za pomocą układów elektronicznych, był ENIAC (Electronic Numerioal Integrator And Computer)

Bardziej szczegółowo

Podstawy Informatyki Systemy sterowane przepływem argumentów

Podstawy Informatyki Systemy sterowane przepływem argumentów Podstawy Informatyki alina.momot@polsl.pl http://zti.polsl.pl/amomot/pi Plan wykładu 1 Komputer i jego architektura Taksonomia Flynna 2 Komputer i jego architektura Taksonomia Flynna Komputer Komputer

Bardziej szczegółowo

Techniki multimedialne

Techniki multimedialne Techniki multimedialne Digitalizacja podstawą rozwoju systemów multimedialnych. Digitalizacja czyli obróbka cyfrowa oznacza przetwarzanie wszystkich typów informacji - słów, dźwięków, ilustracji, wideo

Bardziej szczegółowo

Algorytm. Krótka historia algorytmów

Algorytm. Krótka historia algorytmów Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

Elementy historii INFORMATYKI

Elementy historii INFORMATYKI Elementy historii INFORMATYKI Wykład 2. Elementy historii informatyki HISTORIA INFORMATYKI HISTORIA KOMPUTERÓW Wykład 2. Elementy historii informatyki Prehistoria informatyki: PASCAL i LEIBNIZ (1623 1662)

Bardziej szczegółowo

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI

Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI 1 Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI 1. Obliczenia w arkuszu kalkulacyjnym Rozwiązywanie problemów z wykorzystaniem aplikacji komputerowych obliczenia w arkuszu kalkulacyjnym wykonuje

Bardziej szczegółowo

Turing i jego maszyny

Turing i jego maszyny Turing Magdalena Lewandowska Politechnika Śląska, wydział MS, semestr VI 20 kwietnia 2016 1 Kim był Alan Turing? Biografia 2 3 Mrówka Langtona Bomba Turinga 4 Biografia Kim był Alan Turing? Biografia Alan

Bardziej szczegółowo

12:00 1 MAJA 2015, CZWARTEK

12:00 1 MAJA 2015, CZWARTEK Mój wymarzony zawód: 12:00 1 MAJA 2015, CZWARTEK Kacper Bukowski, Uczeń klasy III B Gimnazjum nr 164 z Oddziałami Integracyjnymi i Dwujęzycznymi im. Polskich Olimpijczyków w Warszawie www.kto-to-informatyk.pl

Bardziej szczegółowo

Języki i metodyka programowania

Języki i metodyka programowania Języki i metodyka programowania www.ee.pw.edu.pl/~slawinsm Dr inż. Maciej Sławiński M.Slawinski@ee.pw.edu.pl GE518l Konsultacje: śr. 13 00-13 45 SK201/GE518l pt. 10 15-11 00 GE518l/SK201 Algorytmika Literatura

Bardziej szczegółowo

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL

Programowanie. Pascal - język programowania wysokiego poziomu. Klasa 2 Lekcja 9 PASCAL Programowanie Pascal - język programowania wysokiego poziomu Klasa 2 Lekcja 9 PASCAL Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany

Bardziej szczegółowo

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym Struktura programu użytkownika w systemie mikroprocesorowym start inicjalizacja niekończaca się pętla zadania niekrytyczne czasowo przerwania zadania krytyczne czasowo 1 Znaczenie problematyki programowania

Bardziej szczegółowo

Modelowanie i Programowanie Obiektowe

Modelowanie i Programowanie Obiektowe Modelowanie i Programowanie Obiektowe Wykład I: Wstęp 20 październik 2012 Programowanie obiektowe Metodyka wytwarzania oprogramowania Metodyka Metodyka ustandaryzowane dla wybranego obszaru podejście do

Bardziej szczegółowo

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.

Informatyka. Prowadzący: Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow. Informatyka Prowadzący: Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl 1 Program zajęć Wykład: Wprowadzenie Budowa i działanie sprzętu komputerowego

Bardziej szczegółowo

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne.

Algorytm. Słowo algorytm pochodzi od perskiego matematyka Mohammed ibn Musa al-kowarizimi (Algorismus - łacina) z IX w. ne. Algorytm znaczenie cybernetyczne Jest to dokładny przepis wykonania w określonym porządku skończonej liczby operacji, pozwalający na rozwiązanie zbliżonych do siebie klas problemów. znaczenie matematyczne

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU I. KARTA PRZEDMIOTU. Nazwa przedmiotu: TECHNOLOGIA INFORMACYJNA 2. Kod przedmiotu: Ot 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Mechanika i budowa maszyn 5. Specjalność: Eksploatacja

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

Kod U2 Opracował: Andrzej Nowak

Kod U2 Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim

Bardziej szczegółowo

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne

Bardziej szczegółowo

1. CZYM JEST INFORMATYKA 1

1. CZYM JEST INFORMATYKA 1 1. CZYM JEST INFORMATYKA 1 ELEMENTY HISTORII 1.1. Czym jest informatyka Informatyka jest często kojarzona z komputerami, programowaniem i algorytmami, a w ostatnich latach również z całą sferą działalności

Bardziej szczegółowo

Programowanie w języku C++ Grażyna Koba

Programowanie w języku C++ Grażyna Koba Programowanie w języku C++ Grażyna Koba Kilka definicji: Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i zasad

Bardziej szczegółowo

Jak liczono dawniej? 1

Jak liczono dawniej? 1 Jak liczono dawniej? 1 SPIS TREŚCI PALCE... 3 KAMIENIE... 4 SYSTEM KARBOWY... 5 ABAKUS:... 6 MECHANICZNY KALKULATOR LEONARDA DA VINCI:... 7 TABLICE NAPIERA:... 8 SUWAK LOGARYTMICZNY:... 9 MECHANICZNY KALKULATOR

Bardziej szczegółowo

Mój wymarzony zawódprogramista. Błażej Paduszyński 3GB Szkoła Podstawowa nr 204 z oddziałami gimnazjalnymi

Mój wymarzony zawódprogramista. Błażej Paduszyński 3GB Szkoła Podstawowa nr 204 z oddziałami gimnazjalnymi Mój wymarzony zawódprogramista Błażej Paduszyński 3GB Szkoła Podstawowa nr 204 z oddziałami gimnazjalnymi Kim jest programista? Programista inaczej zwany developerem, tworzy programy komputerowe w różnych

Bardziej szczegółowo

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011 SYLLABUS na rok akademicki 010/011 Tryb studiów Studia stacjonarne Kierunek studiów Informatyka Poziom studiów Pierwszego stopnia Rok studiów/ semestr 1(rok)/1(sem) Specjalność Bez specjalności Kod katedry/zakładu

Bardziej szczegółowo

Algorytmika i programowanie usystematyzowanie wiadomości

Algorytmika i programowanie usystematyzowanie wiadomości Temat 1. Algorytmika i programowanie usystematyzowanie wiadomości Cele edukacyjne Usystematyzowanie podstawowych pojęć: algorytm, program, specyfikacja zadania, lista kroków, schemat blokowy, algorytm

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: TECHNOLOGIA INFORMACYJNA 2. Kod przedmiotu: Ot 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Automatyka i Robotyka 5. Specjalność: Informatyka

Bardziej szczegółowo

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika: PRZYPOMNIJ SOBIE! Matematyka: Dodawanie i odejmowanie "pod kreską". Elektronika: Sygnały cyfrowe. Zasadę pracy tranzystorów bipolarnych i unipolarnych. 12. Wprowadzenie 12.1. Sygnały techniki cyfrowej

Bardziej szczegółowo

LEKCJA TEMAT: Zasada działania komputera.

LEKCJA TEMAT: Zasada działania komputera. LEKCJA TEMAT: Zasada działania komputera. 1. Ogólna budowa komputera Rys. Ogólna budowa komputera. 2. Komputer składa się z czterech głównych składników: procesor (jednostka centralna, CPU) steruje działaniem

Bardziej szczegółowo

Logiczny model komputera i działanie procesora. Część 1.

Logiczny model komputera i działanie procesora. Część 1. Logiczny model komputera i działanie procesora. Część 1. Klasyczny komputer o architekturze podanej przez von Neumana składa się z trzech podstawowych bloków: procesora pamięci operacyjnej urządzeń wejścia/wyjścia.

Bardziej szczegółowo

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE WINDOWS 1 SO i SK/WIN 007 Tryb rzeczywisty i chroniony procesora 2 SO i SK/WIN Wszystkie 32-bitowe procesory (386 i nowsze) mogą pracować w kilku trybach. Tryby pracy

Bardziej szczegółowo

Historia modeli programowania

Historia modeli programowania Języki Programowania na Platformie.NET http://kaims.eti.pg.edu.pl/ goluch/ goluch@eti.pg.edu.pl Maszyny z wbudowanym oprogramowaniem Maszyny z wbudowanym oprogramowaniem automatyczne rozwiązywanie problemu

Bardziej szczegółowo

Języki i paradygmaty programowania. I. Wprowadzenie

Języki i paradygmaty programowania. I. Wprowadzenie Języki i paradygmaty programowania I. Wprowadzenie O źródłach wykład został przygotowany w ogromnej części w oparciu o serwis http://wazniak.mimuw.edu.pl/ (zgodnie z licencją serwisu) inne źródła: Wikipedia:

Bardziej szczegółowo

Język programowania PASCAL

Język programowania PASCAL Język programowania PASCAL (wersja podstawowa - standard) Literatura: dowolny podręcznik do języka PASCAL (na laboratoriach Borland) Iglewski, Madey, Matwin PASCAL STANDARD, PASCAL 360 Marciniak TURBO

Bardziej szczegółowo

Komputery to w dzisiejszych czasach urządzenie praktycznie nie do zastąpienia, trudno sobie wyobrazić pracę bez tego urządzenia. Niezwykła popularność uzyskały całkiem niedawno. To jak bardzo są przydatne

Bardziej szczegółowo

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

Bardziej szczegółowo

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej.

Efekt kształcenia. Ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną w zakresie algorytmów i ich złożoności obliczeniowej. Efekty dla studiów pierwszego stopnia profil ogólnoakademicki na kierunku Informatyka w języku polskim i w języku angielskim (Computer Science) na Wydziale Matematyki i Nauk Informacyjnych, gdzie: * Odniesienie-

Bardziej szczegółowo

O ALGORYTMACH I MASZYNACH TURINGA

O ALGORYTMACH I MASZYNACH TURINGA O ALGORYTMACH I MASZYNACH TURINGA ALGORYTM (objaśnienie ogólne) Algorytm Pojęcie o rodowodzie matematycznym, oznaczające współcześnie precyzyjny schemat mechanicznej lub maszynowej realizacji zadań określonego

Bardziej szczegółowo

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU I. KARTA PRZEDMIOTU 1. Nazwa przedmiotu: TECHNOLOGIA INFORMACYJNA 2. Kod przedmiotu: Ot 3. Jednostka prowadząca: Wydział Mechaniczno-Elektryczny 4. Kierunek: Automatyka i Robotyka 5. Specjalność: Elektroautomatyka

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów przeznaczonych do wykonania w komputerze (ang. software).

Bardziej szczegółowo

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego

wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego wstęp (podstawowe pojęcia związane z programowaniem, przegląd języków programowania, sieci działań, ogólne zasady programowania zorientowanego obiektowo) historia języka Delphi i ogólna charakterystyka

Bardziej szczegółowo

Opracował: Jan Front

Opracował: Jan Front Opracował: Jan Front Sterownik PLC PLC (Programowalny Sterownik Logiczny) (ang. Programmable Logic Controller) mikroprocesorowe urządzenie sterujące układami automatyki. PLC wykonuje w sposób cykliczny

Bardziej szczegółowo

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej.

Wymagania na poszczególne oceny szkolne dla klasy VI. (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej. 1 Wymagania na poszczególne oceny szkolne dla klasy VI (na podstawie Grażyny Koba, Teraz bajty. Informatyka dla szkoły podstawowej. Klasa VI ) 2 1. Obliczenia w arkuszu kalkulacyjnym słucha poleceń nauczyciela

Bardziej szczegółowo

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH ZATWIERDZAM Dziekan Wydziału Nauk Społecznych i Technik Komputerowych S Y L A B U S 1 Tytuł (stopień) naukowy oraz imię i nazwisko

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p. Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy Wykład 1 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan wykładów (1) Algorytmy i programy Proste typy danych Rozgałęzienia

Bardziej szczegółowo

Scenariusz lekcji. omówić dokonania w dziedzinie przetwarzania informacji do XIX wieku;

Scenariusz lekcji. omówić dokonania w dziedzinie przetwarzania informacji do XIX wieku; Scenariusz lekcji 1 TEMAT LEKCJI Historia informacji 2 CELE LEKCJI 2.1 Wiadomości Uczeń potrafi: omówić dokonania w dziedzinie przetwarzania informacji do XIX wieku; omówić działanie i zastosowanie pierwszych

Bardziej szczegółowo

Systemy liczbowe używane w technice komputerowej

Systemy liczbowe używane w technice komputerowej Systemy liczbowe używane w technice komputerowej Systemem liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach.

Bardziej szczegółowo

O badaniach nad SZTUCZNĄ INTELIGENCJĄ

O badaniach nad SZTUCZNĄ INTELIGENCJĄ O badaniach nad SZTUCZNĄ INTELIGENCJĄ Wykład 7. O badaniach nad sztuczną inteligencją Co nazywamy SZTUCZNĄ INTELIGENCJĄ? szczególny rodzaj programów komputerowych, a niekiedy maszyn. SI szczególną własność

Bardziej szczegółowo

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy 1 Wprowadzenie do informatyki i użytkowania komputerów Kodowanie informacji System komputerowy Kodowanie informacji 2 Co to jest? bit, bajt, kod ASCII. Jak działa system komputerowy? Co to jest? pamięć

Bardziej szczegółowo

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera Dariusz Wawrzyniak Plan wykładu Definicja, miejsce, rola i zadania systemu operacyjnego Klasyfikacja systemów operacyjnych Zasada działania systemu operacyjnego (2) Definicja systemu operacyjnego (1) Miejsce,

Bardziej szczegółowo

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa. INFORMATYKA Zajęcia organizacyjne Arytmetyka komputerowa http://www.infoceram.agh.edu.pl http://home.agh.edu.pl/~grzesik/ KONSULTACJE Zbigniew Grzesik środa, 9 ; A-3, p. 2 tel.: 67-249 e-mail: grzesik@agh.edu.pl

Bardziej szczegółowo

Jako pierwszych do liczenia używano palców.

Jako pierwszych do liczenia używano palców. Jako pierwszych do liczenia używano palców. Kolejnymi przedmiotami do liczenia były kamienie. Małe, okrągłe kamyki mogły być używane do wyrażania większych liczb niż starcza na to palców, a posiadały one

Bardziej szczegółowo