TECHNOLOGIE INFORMACYJNE Tydzień 1 Prowadzący: Dr inż. Jerzy Szczygieł Co to jest informatyka Nauka o przetwarzaniu informacji za pomocą automatycznych środków technicznych INFORMACJA Wielkość abstrakcyjna, która może być przechowywana w pewnych obiektach, przesyłana pomiędzy obiektami, przetwarzana w pewnych obiektach i stosowana do sterowania pewnymi obiektami, przy czym przez obiekty rozumie się organizmy żywe, urządzenia techniczne oraz systemy takich obiektów. Definicje - pojęcia INFORMACJA INFORMATYKA Są to dane o otaczającej nas rzeczywistości Jest to dziedzina wiedzy zajmująca się gromadzeniem, przetwarzaniem i wykorzystaniem informacji ALGORYTM Jest to zbiór reguł rozwiązania określonego zadania, tj. przetworzenia informacji wejściowych (danych) na informacje wyjściowe (wyniki), w skończonej liczbie kroków. (Al-Chorezmi KOMPUTERY Są to urządzenia, które mogą przetwarzać informacje zgodnie z zadanym zestawem instrukcji DANE WEJŚCIOWE ALGORYTM WYNIKI Ewolucja społeczeństwa Historia komputerów Era prehistoryczna 9000 r. p.n.e. • Palce u rąk (dlatego mamy system dziesiętny) • Linie na ścianach • Budowle kamienne Historia komputerów Pierwszy „komputer” Liczydło Abak - pierwsze starożytne liczydło (3000 r. p.n.e.) wynalezione w starożytnym Babilonie. Udoskonalany przez kolejne cywilizacje Greków, Rzymian. Soroban- liczydło stosowane w Chinach około 400 r. p.n.e. Historia komputerów Wilhelm Schickard (1592-1635) J. M. Jacquard (1752-1834) Charles Babbage (1792-1871) 1821 Maszyna licząca Schickarda Maszyna tkacka Jacquarda Maszyna róznicowa pierwszy „prawdziwy” komputer Historia komputerów Elektryczność, wynalezienie lampy elektronowej 1946 rok Wreszcie prawdziwy komputer ENIAC Electronic Numerical Integrator Analyzer and Computer Historia komputerów Rozwój mikroelektroniki • Wynalezienie tranzystora – „zawór” (1947) • Wynalezienie układu scalonego (1958) Najważniejsze daty w historii Informatyki 1623 1801 1833 Shickard jest uznawany za twórcę pierwszej historii mechanicznej maszyny do liczenia. Jego maszyna miała pomóc Keplerowi w jego astronomicznych rachunkach. Maszyna ta wymagała od użytkownika manualnej pomocy w wielu czynnościach związanych z kolejnymi krokami. Mogła dodawać i odejmować 6 – cyfrowe liczby w układzie dziesiętnym. Francuz Jacquard buduje krosno tkackie, w którym wzorzec tkaniny był programowany na swego rodzajach kartach perforowanych. Proces tkania był kontrolowany przez algorytm (czyli przepis) zakodowany w postaci sekwencji otworów wybitych w karcie. Anglik Babbagre buduje maszynę sterowaną programowo. do wyliczania niektórych formuł matematycznych Wykonywała ona obliczenia metodą różnicową. Najważniejsze daty w historii Informatyki (cd) 1890 Pierwsze publiczne użycie na wielką skalę maszyny bazujących na kartach perforowanych. Amerykanin Hollerith użył swej maszyny do opracowywania danych statystycznych w spisie ludności. Przedsiębiorstwo Holleritha przekształciło się w 1911 r. w International Busines Machines Corp., czyli IBM. 1939 MARK I pierwsze urządzenie na przekaźnikach czyli urządzenie elektro-mechaniczne. Jest to praktyczna pełna realizacja maszyny Babbage'a 1946 ENIAC (Elektronie Numerical Integrator and Computer) uznawany za pierwszy kalkulator elektroniczny 1951 Pierwszy komercyjny komputer IBM 704 (architektura neumanowska Generacje komputerów Generacja Zerowa Komputery budowane w oparciu o przekaźniki elektro-magnetyczne. Przykład: Mark I (1939) Generacja Pierwsza (1946-1958) Komputery pierwszej generacji budowano z lamp elektronowych. Przykład: ENIAC (1946) Generacje komputerów Generacja Druga (1959-1964) Komputery budowane w oparciu o tranzystory. Przykład: XYZ (1958) Generacja Trzecia (1963-1970) Komputery działające w oparciu o układy scalone. Przykład: ODRA 1300 Generacje komputerów Generacja Czwarta (1971- do dziś) Komputery budowane na układach scalonych wysokiej skali integralności. Przykład: CRAY X - MP (1982) Generacja Czwarta PLUS Superkomputery o bardzo dużej mocy obliczeniowej Przykład: japoński NEC Generacja Piąta / i dalsze/ technika sztucznej inteligencji, zmiany w architekturze systemu Budowa komputera Budowa komputera Magistrala Procesor Pamięć Układy I/O procesor – (CPU) układ elektroniczny realizujący przetwarzanie informacji pamięć – przechowywanie informacji. układy wejścia/wyjścia (I/O)– komunikacja z otoczeniem Procesor Przebieg jednego cyklu rozkazowego można opisać za pomocą następującego algorytmu: 1. Zawartość miejsca pamięci wewnętrznej wskazywanego przez licznik rozkazów LR zostaje przesłana do układów sterujących procesora. 2. W układach sterujących następuje rozdzielenie otrzymanej informacji na dwa pola: pole operacji i pole argumentów. Pole operacji zawiera adres rozkazu, który należy wykonać. Pole argumentów zawiera adresy, pod którymi są przechowywane dane oraz adres przeznaczenia wyniku. 3. Na podstawie wyznaczonych adresów następuje przesłanie z pamięci wewnętrznej argumentów do odpowiednich rejestrów, a na podstawie adresu rozkazu arytmometr wykonuje odpowiednie działanie (operację arytmetyczną lub logiczną) na zawartościach rejestru. 4. Wynik przetwarzania (wynik wykonanej operacji) jest wysyłany do pamięci wewnętrznej pod adres przeznaczenia wyniku. 5. Następuje zmiana wartości licznika rozkazów LR tak, aby wskazywał on kolejny rozkaz dla procesora Algorytm cyklu rozkazowego START LR:=0 ODCZYT WYKONANIE PROCEDURY OBSŁUGI PZRERYWANIA Start jest inicjowany przez sygnał RESET Przerywanie jest inicjowane sygnałem INT DEKODOWANIE WYKONANIE TAK Czy jest żądana obsł. przeryw. LR:=LR+1 NIE ZAPIS Pamięć wewnętrzna Magistrala (szyna): Model komputera (szyna systemowa) Komunikacja pomiędzy komponentami odbywa się współdzielonymi zasobami zwanymi szyną systemową, która składa się z: •szyny danych, •szyny adresowej, •szyny sterującej. CPU System Bus (ALU, Registers and Control) Memory Input and Output (I/O) Data Bus Control Bus Adress Bus Typowy zestaw komputerowy Typowy komputer Jednostka centralna Monitor Drukarka Modem Klawiatura Mysz Wnętrze komputera Zasilacz Stacja dyskietek Twarde dyski Napędy CD-ROM DVD-ROM Karty rozszerzeń RAM Złącza rozszerzeń Procesor Wnętrze komputera Płyta główna Schemat przepływu informacji monitor klawiatura dysk twardy mysz skaner Procesor + ROM + RAM drukarka napęd dysków magnetofon ploter Urządzenia zewnętrzne: Klawiatura Mysz urządzenie wskazujące używane podczas pracy z interfejsem graficznym systemu komputerowego. Wynaleziona została przez Douglasa Engelbarta w 1963 r. Monitor ekranowy Obecnie dostępne są rodzaje monitorów: CRT i LCD Podstawowe parametry monitora to: •wielkość przekątnej ekranu podawana w calach np. 17”, 19”, 21 ” •rozmiar plamki świetlnej tj. piksela np. 0,25 mm, 0,26 mm, 0,28 m, •częstotliwość odświeżania obrazu np. 85 Hz. Drukarki igłowe (z ang. dot printers) atramentowe (z ang. ink jet printers) laserowe (z ang. laser jet printers) Ploter Skaner Skaner przetwarza dowolne obrazy (fotografie, rysunki, dokumenty) z postaci analogowej na cyfrową. Dyski magnetyczne: -dyski twarde, W ploterze kreślenie odbywa się za pomocą kolorowych pisaków poruszanych w kierunkach X i Y przez dwa silniki krokowe. Napędy dyskowe Taśmy magnetyczne -dyski elastyczne. Dyski MO Dyski optyczne: -CD, -DVD. Możliwości komputerów Komputery są zdolne do : Analizy niezmiernej ilości danych Sterowania robotami Gry w szachy na poziomie mistrzów Komputery nie są w stanie: Określić choćby w przybliżeniu wieku osoby na podstawie zdjęcia Ze sterty gałązek ułożyć ptasie gniazdo Wygrać z amatorem w szachy przy małej zmianie reguł GRUPY ZASTOSOWAŃ KOMPUTERÓW Obliczenia numeryczne, charakteryzujące się dość skomplikowanymi algorytmami i stosunkowo niewielką ilością danych. Czasem nazywa się je obliczeniami naukowotechnicznymi. Informacja i zarządzanie, charakteryzujące się na ogół prostymi algorytmami, ale zwykle bardzo dużą ilością danych. Typowe przykłady takich zastosowań, to informacja bibliograficzna, informacja turystyczna, systemy bankowe, systemy administracji, państwowej, itp. Sterowanie procesami, głównie technologicznymi. Aktualna sytuacja o procesie przekazywana jest do komputera poprzez system czujników. Komputer w oparciu o tzw. ‘ listę sytuacji i reakcji’ analizuje daną sytuację i w zależności od potrzeby odpowiednio reaguje. Domyślamy się że komputer musi pracować w tzw czasie rzeczywistym (tzn. wystarczająco szybko, żeby zdążyć z reakcją w każdej sytuacji wymagającej takiej reakcji) Symulacja. Chodzi tu o takie zastosowania, w których komputer „udaje” (symuluje) coś lub kogoś. Należą tu m.in. Wszelkiego rodzaju gry (szach, brydż, gry wojenne itd..), w których komputer występuje w charakterze gracza lub kilku graczy. Do tej grupy należą także programy komponujące muzykę, symulujące zachowanie rynku, itd.. Zastosowania tego typu należą do tzw. sztucznej inteligencji. Społeczeństwo Informacyjne Kodowanie informacji Sposób reprezentacji informacji w systemie Jak to się dzieje ze w pamięci komputera można przechowywać teksty, obrazy, dźwięki i liczby? Dzięki kodowaniu informacji. Kodowanie informacji jest to przedstawienie informacji w postaci komunikatu zrozumiałego przez odbiorcę. Do kodowania używamy określonego zbioru, np. cyfr, znaków, impulsów. • Kodowanie liczb • Kodowanie znaków alfabetu/grafiki/dźwięku Zapis Informacji ASCII American Standart Code for Information Interchange KOD STANDARDOWEGO ZESTAWU ZNAKÓW Cechy : Znaki zapisywane są w jednym bajcie Można zakodować 256 różnych znaków Standard ASCII - 128 znaków (znaki sterujące i alfanumeryczne) Extended ASCII - 256 znaków (standard ASCII + symbole naród) Kod ASCII Char Dec Hex Char Dec Hex Char Dec Hex Char Dec Hex NUL 0 0 SP 32 20 @ 64 40 ` 96 60 SOH 1 1 ! 33 21 A 65 41 a 97 61 STX 2 2 " 34 22 B 66 42 b 98 62 ETX 3 3 # 35 23 C 67 43 c 99 63 EOT 4 4 $ 36 24 D 68 44 d 100 64 ENQ 5 5 % 37 25 E 69 45 e 101 65 ACK 6 6 & 38 26 F 70 46 f 102 66 BEL 7 7 ` 39 27 G 71 47 g 103 67 BS 8 8 ( 40 28 H 72 48 h 104 68 HT 9 9 ) 41 29 I 73 49 i 105 69 LF 10 a * 42 2a J 74 4a j 106 6a VT 11 b + 43 2b K 75 4b k 107 6b FF 12 c , 44 2c L 76 4c l 108 6c CR 13 d - 45 2d M 77 4d m 109 6d SO 14 e . 46 2e N 78 4e n 110 6e SI 15 f / 47 2f O 79 4f o 111 6f DLE 16 10 0 48 30 P 80 50 p 112 70 DC1 17 11 1 49 31 Q 81 51 q 113 71 DC2 18 12 2 50 32 R 82 52 r 114 72 DC3 19 13 3 51 33 S 83 53 s 115 73 DC4 20 14 4 52 34 T 84 54 t 116 74 INFORMACJA CYFROWA Def.1. Informacją cyfrową nazywamy informację przedstawioną w postaci słów cyfrowych Def.2. Słowem cyfrowym nazywamy dowolny ciąg składający się z symboli 0 i/lub 1 Długość słowa Oznaczenie symboliczne Nazwa 1 4 8 16 32 64 a0 a3...a0 a7.....a0 a15.......a0 a31.........a0 a63...........a0 bit tetrada, kęs bajt słowo 16-bitowe, słowo podwójne słowo, dwusłowo słowo 64-bitowe, czterosłowo 1b - oznacza 1 bit 1B - oznacza 1 bajt 1B=8b 1kB=1024B (210) 1MB=1024kB 1GB=1024MB Przykład: 20 MB jest ilością informacji ośmiokrotnie większą niż 20Mb Systemy liczbowe Przedstawiając liczbę dziesiętną w systemie binarnym lub heksadecymalnym należy pamiętać, że w dalszym ciągu jest to ta sama liczba lecz przedstawiona za pomocą innego zestawu znaków. Można więc mówić o kodzie binarnym czy też kodzie heksadecymalnym. DZIESIĘTNY SYSTEM LICZBOWY Do zapisu dowolnej liczby system wykorzystuje dziesięć symboli (cyfr): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Dowolną liczbę w systemie dziesiętnym możemy przedstawić jako następująca sumę: n 1 (an-1...a1a0)D = an-1 gdzie: *10(n-1) +...+ a1 *101 i - numer pozycji w liczbie, ai - dowolna z cyfr od 0 do 9, n - ilość cyfr (pozycji) w liczbie Przykład: 424D = 4*102 + 2*101 + 5*100 pozycja jedynek (0) pozycja dziesiątek (1) pozycja setek (2) + a0 *100 = i a 10 i i0 DWÓJKOWY SYSTEM LICZBOWY Do zapisu dowolnej liczby system wykorzystuje dwa symbole (cyfry): 0, 1 Dowolną liczbę w systemie dwójkowym możemy przedstawić jako następująca sumę: n 1 (an-1...a1a0)B = an-1 gdzie: *2(n-1) +...+ a1 *21 + a0 *20 = i a 2 i i0 i - numer pozycji w liczbie, ai - dowolna z cyfr (0 lub 1), n - ilość cyfr (pozycji) w liczbie Przykład: 10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 HEKSADECYMALNY (SZESNASTKOWY) SYSTEM LICZBOWY Do zapisu dowolnej liczby system wykorzystuje szesnaście symboli (cyfr i liter): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F Dowolną liczbę w systemie heksadecymalnym możemy przedstawić jako następująca sumę:n1 (an-1...a1a0)H = an-1 gdzie: *16(n-1) +...+ a1 *161 + a0 *160 = i - numer pozycji w liczbie, ai - dowolna cyfra heksadecymalna, n - ilość cyfr (pozycji) w liczbie Przykład: 1C2H = 1*162 + C*161 + 2*160 i a 16 i i0 KONWERSJA LICZB 2. 10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = = 1*16 + 0*8 + 1*4 + 0*2 + 0*1 = 20D 20:2 = 10 10:2 = 5 5:2 = 2 2:2 = 1 1:2 = 0 czyli reszta=0 reszta=0 reszta=1 reszta=0 reszta=1 20D = 10100B kierunek odczytu wyniku 1. KONWERSJA LICZB 1. 1C2H = 1*162 + C*161 + 2*160 = = 1*256 + 12*16 + 2*1 = 450D 450:16 = 28 28:16 = 1 1:16 = 0 czyli reszta=2 reszta=C reszta=1 450D = 1C2H kierunek odczytu wyniku 2. reszty zapisujemy w postaci cyfry heksadecymalnej KONWERSJA LICZB Do konwersji zapisu binarnego na heksadecymalny i odwrotnie wykorzystuje się tabelę: cyfra heksadecymalna liczba binarna liczba dziesiętna 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 A 1010 10 B 1011 11 C 1100 12 D 1101 13 E 1110 14 F 1111 15 Przykład - uzupełnij 132 201 206 121 222 Przykład – Co tu pisze ? 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 ? 0 1 0 0 1 0 0 0 ? 0 1 0 0 0 0 0 1 ? ? ? Dodawanie liczb binarnych Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną: 0+0=0 0+1=1 1+0=1 1 + 1 = 10 0101 = 5(10) +0110 = 6(10) 1011 = 11(10) 1100 = 12(10) + 0011 = 3(10) 1111 = 15(10) 1010 = 10(10) +1010 = 10(10) 10100 = 20(10) 1111 = 15(10) +0001 = 1(10) 10000 = 16(10) Dodawanie liczb binarnych zadanie Zsumować liczby binarne: • 1111001(2) oraz 10010(2) • 01111111(2) oraz 1(2) Dodawanie liczb binarnych – problem: W pamięć komputera liczby binarne przechowywane są w postaci ustalonej ilości bitów (np. 8, 16, 32 bity). Jeśli wynik sumowania np. dwóch liczb 8 bitowych jest większy niż 8 bitów, to najstarszy bit (dziewiąty bit) zostanie utracony. Sytuacja taka nazywa się nadmiarem (ang. overflow) i występuje zawsze, gdy wynik operacji arytmetycznej jest większy niż górny zakres danego formatu liczb binarnych (np. dla 8 bitów wynik większy od 28 - 1, czyli większy od 255): 11111111(2) + 00000001(2) = 1 00000000(2) (255+1=0) Odejmowanie liczb binarnych Przy odejmowaniu korzystamy z tabliczki odejmowania: 0–0=0 0 - 1 = 1 i pożyczka do następnej pozycji 1-0=1 1-1=0 Odejmując 0 - 1 otrzymujemy wynik 1 i pożyczkę (ang. borrow) do następnej pozycji. Pożyczka oznacza konieczność odjęcia 1 od wyniku odejmowania cyfr w następnej kolumnie. Identycznie postępujemy w systemie dziesiętnym: 1101110(2) – 1111(2) =1011111(2) (110(10) – 15(10) = 95(10)) 1 1101110 1111 1 11 1101110 1111 11 11111 1101110 - 0001111 1011111 Odejmowanie liczb binarnych : zadanie Odjąć liczby binarne: • 10000000(2) - 0000001(2) = ??? • 10101010(2) - 01010101(2) = ??? Odejmowanie liczb binarnych – problem: Przy odejmowaniu również może dochodzić do nieprawidłowej sytuacji. Jeśli od liczby mniejszej odejmiemy większą, to wynik będzie ujemny. Jednakże w naturalnym systemie binarnym nie można zapisywać liczb ujemnych. Zobaczymy zatem co się stanie od liczby 0 odejmiemy 1, a wynik ograniczymy do 8 bitów: 11111111 00000000 - 00000001 11111111 Otrzymujemy same jedynki, a pożyczka nigdy nie znika. Sytuacja taka nazywa się niedomiarem (z ang. underflow) i występuje zawsze gdy wynik operacji arytmetycznej jest mniejszy od dolnego zakresu formatu liczb binarnych (dla naturalnego kodu dwójkowego wynik jest mniejszy od zera). Konwersja Konwersja dwójkowo-szesnastkowa i szesnastkowo-dwójkowa 0 0000 1 0001 2 0010 110101111011010101011101(2) 3 0011 1101 0111 1011 0101 0101 1101(2) 4 0100 5 0101 1101 0111 1011 0101 0101 1101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 D 7 B 5 5 D 110101111011010101011101(2) = D7B55D(16) D 7 B 5 5 D 1101 0111 1011 0101 0101 1101 D7B55G(16) = 111101010100000001(2)