Wstęp do Informatyki dr inż. Paweł Pełczyński [email protected] Literatura 1. Brookshear, J. G. (2003). Informatyka w ogólnym zarysie. WNT, Warszawa. 3. Małecki, R. Arendt D. Bryszewski A. Krasiukianis R (1997). Wstęp do informatyki. Skrypt PŁ, Łódź. Prezentacje wykładowe dostępne na stronie: http://ppelczynski.swspiz.pl/ 2 Definicja pojęcia Informatyka Wikipedia: Informatyka (łac. informatio - "wyobrażenie", "wizerunek", "pomysł”) – dziedzina nauki i techniki zajmująca się przetwarzaniem informacji – w tym technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informacje. 3 Informacja i dane Informacja - właściwość pewnych obiektów, relacja między elementami zbiorów pewnych obiektów, której istotą jest zmniejszanie niepewności (nieokreśloności). W informatyce nośnikiem informacji są dane. Przetwarzanie informacji sprowadza się do przetwarzania danych. 4 Budowa komputera Wejście Procesor Wyjście Pamięć (program, dane) 5 Zasada działania komputera Każdy problem obliczeniowy można rozwiązać za pomocą sekwencji skończonego zbioru operacji Komputer wykonuje zadanie (rozwiązuje problem) poprzez wykonywanie ciągu prostych operacji Zbiór wszystkich operacji wykonywanych przez komputer jest nazywany listą instrukcji lub listą rozkazów Kolejność operacji jest zakodowana ciągiem instrukcji, nazywanym programem Wikipedia: "Maszyna posiadająca zdolność wykonywania dowolnego programu jest nazywana uniwersalną maszyna Turinga. Praktyczną 6 realizacją uniwersalnej Maszyny Turinga jest komputer" Cechy komputera Zdolność przetwarzania danych (wykonywania obliczeń) Programowalność – rodzaj wykonywanego zadania wyznacza program, a nie budowa komputera Uniwersalność – przeznaczenie komputera nie musi być znane podczas projektowania jego architektury, a jest definiowane przez wykonywany program Sekwencyjny (szeregowy) sposób pracy – w danym momencie jest wykonywana tylko jedna instrukcja (Ta zasada jest prawdziwa jedynie dla prostych komputerów, zbudowanych zgodnie z tzw. architekturą Von Neumanna) 7 Struktura prostego systemu mikroprocesorowego Magistrala danych Magistrala adresowa Mikroprocesor Magistrala sterująca Pamięć Układy wejścia, wyjścia (I/O) 8 Przykładowe zastosowania komputera Obliczenia Wspomaganie projektowania (CAD) Sterowanie procesami i urządzeniami Wspomaganie zarządzania Banki (bazy) danych, wyszukiwanie informacji... Grafika Przetwarzanie sygnałów i obrazów Rozrywka: gry, muzyka, filmy itd... 9 Historia rozwoju komputerów Wraz z powstaniem pasterstwa i rozwojem form wymiany towarów pojawiła się potrzeba liczenia. Dla ułatwienia prowadzenia obliczeń i pamiętania ich wyniku zaczęto stosować różnorodne pomoce, np. kamyki, liczenie na palcach, symbole reprezentujące liczby. Kości z Ishango, ok. 25 000 lat p.n.e. 10 Historia rozwoju komputerów 300 p.n.e. – Liczydło (Abakus) ok. 1500 – Projekt kalkulatora Leonarda Da Vinci 1623 – Wilhelm Schickard buduje pierwszy mechaniczny kalkulator 11 Historia rozwoju komputerów 1804 – Programowalne krosno Jacquarda 1820-40 – Charles Babbage konstruuje szereg programowalnych, mechanicznych maszyn liczących 12 Historia rozwoju komputerów 1854 – George Boole opracowuje algebrę stanowiącą formalizację praw logiki 1936 – Alan Turing definiuje maszynę zdolną do realizacji dowolnego algorytmu 1945 – John von Neumann opracowuje szeregową architekturę komputera Źródło fotografii: http://pl.wikipedia.org 13 Historia rozwoju komputerów 1948 – ENIAC – pierwszy komputer elektroniczny (18tys. Lamp elektronowych, 30 ton) Lata 50-te XXw. – zastosowanie tranzystorów do budowy komputerów Lata 60-te XXw. – zastosowanie układów scalonych 14 Historia rozwoju komputerów 1971 – Pierwszy mikroprocesor: Intel4004 (4-bitowy) 1978 – Pierwszy mikroprocesor 16-bitowy: Intel8086 (Zastosowany w pierwszych komputerach IMB PC XT) 1995 – ENIAC-on-a-chip, 7,4x5,3mm 2000 – PENTIUM IV 15 Prawo Moore’a Prawo Moore'a optymalna liczba tranzystorów w układzie scalonym w kolejnych latach posiada trend wykładniczy (podwaja się w niemal równych odcinkach czasu, co ok. 24miesiące). Źródło: http://pl.wikipedia.org/ 16 Typowe rodzaje danych Liczby (dane liczbowe) Teksty (dane tekstowe) Dane dźwiękowe Sygnały i dane pomiarowe Dane obrazowe Obrazy ruchome - filmy Wiele innych Z punktu widzenia sposobu przechowywania w komputerze programy komputerowe są rodzajem danych. 17 Sposoby reprezentacji liczb Początkowo wystarczało liczenie na palcach, kamyczki, itd. W celu pamiętania dużych liczb zaczęto wymyślać ich symboliczną reprezentację. Wyróżnia się dwa główne systemy liczbowe: - addytywne (np. rzymski) - pozycyjne (np. dziesiętny) 18 Sposoby reprezentacji liczb Przykłady systemów liczbowych: Skandynawia (średniowiecze) Majowie Źródło: http://pl.wikipedia.org/ 19 Sposoby reprezentacji liczb Dziesiętny system liczbowy, zwany też systemem decymalnym lub arabskim, to system pozycyjny. Podstawą pozycji są kolejne potęgi liczby 10. Do zapisu liczb używa się 10 cyfr (symboli): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Przykład: 7625=7*103+6*102+2*101+5*100 20 Reprezentacja liczb w komputerze Liczby i inne dane w technice cyfrowej (w komputerach) najłatwiej jest reprezentować za pomocą ciągów symboli zero-jedynkowych. Ograniczenie zbioru symboli do dwóch wynika z łatwości realizacji dwóch wartości napięcia na wyjściu układów cyfrowych: - „0” – napięcie bliskie potencjałowi masy „1” – napięcie bliskie napięciu zasilania - 21 Reprezentacja liczb w komputerze Pozycyjny system dwójkowy (binarny) – dwie cyfry 0 i 1, zasada zapisu jak dla systemu dziesiętnego: 1011=1*23+0*22+1*21+1*20 Wadą tego podejścia jest konieczność konwersji liczb dziesiętnych na dwójkowe podczas wprowadzania danych i odwrotnie podczas ich prezentacji. 22 Reprezentacja liczb w komputerze Zalety: Łatwość realizacji operacji arytmetycznych Łatwość pamiętania danych binarnych Sumator jednopozycyjny Pamięć jednej cyfry - przerzutnik typu D 23 Źródło: http://pl.wikipedia.org/ Reprezentacja liczb w komputerze Podstawowa objętość danych, pozwalająca na zapisanie jednej cyfry binarnej to jeden: bit Jednostki pochodne: 1 bajt = 8 bitów 1 kilobajt (1kB) = 210 bajtów 1 megabajt (1MB) = 210 kB 1 gigabajt (1GB) = 210 MB … 24 Reprezentacja liczb w komputerze Dla ułatwienia czytania liczb binarnych stosuje się notację heksadecymalną (szesnastkową). Jedna cyfra szesnastkowa odpowiada czterem cyfrom binarnym (bitom) Dec Bin (NBC) Hex 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 … … … 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F 25 Reprezentacja danych tekstowych w komputerze Tekst jest ciągiem znaków skończonego alfabetu, np. alfabetu łacińskiego. Każdemu znakowi można przypisać wartość liczbową Powstaje kod, pozwalający na pamiętanie tekstów w postaci ciągów liczb, np. kod ASCII Fragment kodu ASCII Przykład: liczba = {108, 105, 99, 122, 98, 97} 26 Reprezentacja dźwięków i innych sygnałów w komputerze Sygnał jest próbkowany i przetwarzany na postać cyfrową (ciąg liczb) x(t),y( n ) 2 1 -1 0 -1 -2 1 2 t,n 27 Reprezentacja obrazów w komputerze Obraz cyfrowy jest mozaiką pikseli o jasności reprezentowanej liczbami w tablicy dwuwymiarowej. Każdy piksel obrazu barwnego jest opisany trzema liczbami, określającymi intensywność poszczególnych składowych koloru. 28 Reprezentacja programów w komputerze Program jest ciągiem prostych instrukcji dla mikroprocesora, które można kodować liczbami. 29