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 Są to dane o otaczającej nas rzeczywistości Jest to dziedzina wiedzy zajmująca się gromadzeniem, przetwarzaniem i wykorzystaniem informacji INFORMATYKA 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 Wskaż prawdziwe zdanie: Aby komputer przetworzył informacje Powinien być wyposażony w monitor b) Powinien być wyposażony w pamięć zewnętrzną. c) Powiniem mieć pamięć operacyjną d) Powinien być wyposażony w drukarkę. ________________________________________ 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
Soroban- liczydło stosowane w Chinach około 400 r. p.n.e. 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 1821 Wilhelm Schickard (1592-1635) Maszyna licząca Schickarda 1821 J. M. Jacquard (1752-1834) Maszyna tkacka Jacquarda Charles Babbage (1792-1871) 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
Rozwój mikroelektroniki Historia komputerów Rozwój mikroelektroniki Wynalezienie tranzystora – „zawór” (1947) Wynalezienie układu scalonego (1958)
Najważniejsze daty w historii Informatyki 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. 1623 1801 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. 1833 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
technika sztucznej inteligencji, zmiany w architekturze systemu 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 Pamięć Procesor Magistrala 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. 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 Start jest inicjowany przez sygnał RESET LR:=0 ODCZYT WYKONANIE PROCEDURY OBSŁUGI PZRERYWANIA Przerywanie jest inicjowane sygnałem INT DEKODOWANIE WYKONANIE LR:=LR+1 NIE TAK Czy jest żądana obsł. przeryw. 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 (ALU, Registers and Control) Input and Output (I/O) Memory Data Bus Control Bus Adress Bus System 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ń a) Umożliwiają zmianę możliwości funkcjonalnych komputera 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 Wskaż zestaw urządzeń zewnętrznych z których informacja przepływa tylko do procesora : Klawiatura, skaner, mysz Itd. _____________________ 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 Drukarki 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 laserowe (z ang. laser jet printers) igłowe (z ang. dot printers) atramentowe (z ang. ink jet printers)
Skaner Skaner Ploter Napędy dyskowe Skaner przetwarza dowolne obrazy (fotografie, rysunki, dokumenty) z postaci analogowej na cyfrową. W ploterze kreślenie odbywa się za pomocą kolorowych pisaków poruszanych w kierunkach X i Y przez dwa silniki krokowe. Napędy dyskowe Dyski magnetyczne: -dyski twarde, -dyski elastyczne. Dyski MO Taśmy magnetyczne 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 naukowo-technicznymi. 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) 1. Co jest charakterystyczne dla obliczeń numerycznych. (proste algorytmy i duża ilość danych i czy odwrotnie) Co to jest praca w czasie rzeczywistym 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
Dzięki kodowaniu informacji. 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
ASCII Zapis Informacji 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 Znak kodu ASCII zapisywany jest: W jednym bajcie W jednym bicie Na dwóch bitach Na dwóch bajtach ___________________________ Standard ASCII - 128 znaków (znaki sterujące i alfanumeryczne) Extended ASCII - 256 znaków (standard ASCII + symbole naród)
Kod ASCII
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=8b 1B - oznacza 1 bajt 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ę: (an-1...a1a0)D = an-1*10(n-1) +...+ a1*101 + a0*100 = gdzie: 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)
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ę: (an-1...a1a0)B = an-1*2(n-1) +...+ a1*21 + a0*20 = gdzie: 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ę: (an-1...a1a0)H = an-1*16(n-1) +...+ a1*161 + a0*160 = gdzie: i - numer pozycji w liczbie, ai - dowolna cyfra heksadecymalna, n - ilość cyfr (pozycji) w liczbie Przykład: 1C2H = 1*162 + C*161 + 2*160
kierunek odczytu wyniku KONWERSJA LICZB 1. 10100B = 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = = 1*16 + 0*8 + 1*4 + 0*2 + 0*1 = 20D 2. 20:2 = 10 10:2 = 5 5:2 = 2 2:2 = 1 1:2 = 0 reszta=0 reszta=1 kierunek odczytu wyniku czyli 20D = 10100B
kierunek odczytu wyniku KONWERSJA LICZB 1. 1C2H = 1*162 + C*161 + 2*160 = = 1*256 + 12*16 + 2*1 = 450D 2. 450:16 = 28 28:16 = 1 1:16 = 0 reszta=2 reszta=C reszta=1 kierunek odczytu wyniku reszty zapisujemy w postaci cyfry heksadecymalnej czyli 450D = 1C2H
KONWERSJA LICZB Do konwersji zapisu binarnego na heksadecymalny i odwrotnie wykorzystuje się tabelę: cyfra heksadecymalna liczba binarna liczba dziesiętna 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 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 ? 1 ? 1 ? 1 ? 1 ? 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) 1100 = 12(10) 1010 = 10(10) 1111 = 15(10) +0110 = 6(10) + 0011 = 3(10) +1010 = 10(10) +0001 = 1(10) 1011 = 11(10) 1111 = 15(10) 10100 = 20(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 11 1101110 - 1111 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: 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). 11111111 00000000 - 00000001
Konwersja Konwersja dwójkowo-szesnastkowa i szesnastkowo-dwójkowa 0000 1 0001 2 0010 3 0011 4 0100 5 0101 6 0110 7 0111 8 1000 9 1001 A 1010 B 1011 C 1100 D 1101 E 1110 F 1111 110101111011010101011101(2) 0111 1011 0101 0101 1101(2) 1101 0111 1011 0101 0101 1101 D 7 B 5 5 D 110101111011010101011101(2) = D7B55D(16) D7B55G(16) = 111101010100000001(2)