TEORETYCZNE PODSTAWY INFORMATYKI
|
|
- Anatol Marcinkowski
- 6 lat temu
- Przeglądów:
Transkrypt
1 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień
2 Zakres tematyki wykładu 2 Co to jest informacja? Algorytmy i struktury danych, poprawność algorytmu Złożoność obliczeniowa Rekursja, indukcja, iteracja, kombinatoryka i elementy teorii prawdopodobieństwa Modele danych: drzewa, listy, zbiory, relacje, grafy Wzorce, automaty, wyrażenia regularne i gramatyki
3 Literatura 3 H. Abelson, et al., Struktura i intepretacja programów komputerowych A. V. Acho, J. D. Ullman, Wykłady z informatyki z przykładami w języku C T. H. Cormen, Ch. F. Leiserson, R. L. Rivest, Wprowadzenie do algorytmów L. Banachowski, K. Diks, W. Rytter, Algorytmy i struktury danych A. Drozdek, D. L. Simon, Struktury danych w języku C D. Harel, Rzecz o istocie informatyki J.E. Hopcroft, J. Ullman, Wprowadzenie do teorii automatów, jezyków i obliczeń S. Kowalski, A. W. Mostowski, Teoria automatów i lingwistyka matematyczna Ch. H. Papadimitriou, Złożoność obliczeniowa W. Sikorski, Wykłady z podstaw informatyki W. M. Turski, Propedeutyka Informatyki N. Wirth, Algorytmy i struktury danych = programy
4 Warunki zaliczenia przedmiotu 4 Zaliczenie ćwiczeń z zadań tablicowych (1/3 ( końcowej oceny Egzamin pisemny: (2/3 oceny końcowej) Na końcu każdego wykładu podana jest lista pytań do danego wykładu. Z tej listy pytań zostaną wybrane pytania na egzaminie pisemnym. 15 pytań, każde punktowane w skali 0-2. Aby zaliczyć egzamin należy uzyskać co najmniej 15pkt
5 Informatyka: mechanizacja abstrakcji 5 Informatyka jest miedzy innymi nauką o abstrakcji, czyli nauką o tworzeniu właściwego modelu reprezentującego problem i znajdowaniu odpowiedniej techniki mechanicznego (automatycznego) jego rozwiązywania. Informatycy tworzą abstrakcje rzeczywistych problemów w formach które mogą być rozumiane i przetwarzane w pamięci komputera.
6 Informatyka: mechanizacja abstrakcji 6 Abstrakcja oznacza pewne uproszczenie, zastąpienie skomplikowanych i szczegółowych okoliczności występujących w świecie rzeczywistym zrozumiałym modelem umożliwiającym rozwiązanie naszego problemu. Oznacza to że pomijamy szczegóły które nie mają wpływu lub mają minimalny wpływ na rozwiązanie problemu. Ten etap rozwiązywania zadania nazywamy konstruowaniem modelu. Opracowanie odpowiedniego modelu ułatwia zajęcie się istotą problemu który mamy rozwiązać.
7 Informatyka: mechanizacja abstrakcji 7 W ramach tego wykładu omówimy Modele danych: abstrakcje wykorzystywane do opisywania problemów Struktury danych: konstrukcje języka programowania wykorzystywane do reprezentowania modelów danych. Przykładowo język C udostępnia wbudowane takie jak struktury czy wskaźniki, które umożliwiają reprezentowanie bardziej skomplikowanych struktur takich jak np. drzewa i grafy Algorytmy: techniki wykorzystywane do otrzymywania rozwiązań na podstawie operacji wykonywanych na danych reprezentowanych przez struktury danych lub na inne sposoby
8 Wykład 1a: 8 Informacja i zasady jej zapisu Czym jest informacja? Bity i Bajty Kodowanie informacji Systemy zapisu liczb ( dwójkowy ) System binarny Sposoby kodowania: liczb naturalnych, całkowitych, rzeczywistych Dlaczego pojawiają się błędy i zaokrąglenia Znaki i teksty Obrazy i dźwięki Kompresja i szyfrowanie
9 Czym jest informacja? 9 Istnieje kilka różnych definicji pojęcia informacja ( PWN (encyklopedia Konstatacja stanu rzeczy, świadomość. Obiekt abstrakcyjny, który w sposób zakodowany może być przesyłany, przetwarzany i używany do sterowania. Powiadamianie społeczeństwa lub określonych zbiorowości w sposób zobiektyzowany, systematyczny i konkretny za pomocą środków masowego przekazu. Interesuje nas ta druga definicja, ponadto: Informacją zajmuje się nauka zwana Teorią Informacji. Dotyczy ona przekazywania wiadomości ze źródła wiadomości do ich przeznaczenia odbiorcy. Informację możemy mierzyć ilościowo i jakościowo.
10 Teoria informacji 10 Teoria informacji dyscyplina zajmująca się problematyką informacji oraz metodami przetwarzania informacji, np. w celu transmisji lub kompresji. Naukowo teoria informacji jest blisko powiązana z matematyką dyskretną, a z jej osiągnięć czerpią takie dyscypliny jak informatyka i telekomunikacja.
11 Teoria informacji: historia 11 Za twórcę teorii informacji uważa się Claude'a E. Shannona, który prawdopodobnie po raz pierwszy użył tego terminu w 1945 roku w swojej pracy zatytułowanej "A Mathematical Theory of Cryptography". Natomiast w 1948 roku w kolejnej pracy pt. "A Mathematical Theory of Communication" przedstawił najważniejsze zagadnienia związane z tą dziedziną nauki. Shannon stworzył podstawy ilościowej teorii informacji, późniejsi autorzy próbowali stworzyć teorie wyjaśniające wartość (cenność) informacji. W Polsce Marian Mazur stworzył oryginalną teorię opisującą zarówno ilość jak i jakość informacji. Opisał ją m.in. w wydanej w 1970 roku książce Jakościowa teoria informacji. Wprowadził w niej rozróżnienie między informacjami opisującymi a informacjami identyfikującymi
12 Jak przekazujemy informację? 12 Informację przekazuje możliwość porównania dwóch stanów. Dzwonek dzwonka informuje nas, że ktoś nacisnął przycisk. Kiedy przycisk się zatnie i dzwonek dzwoni dalej, już nie informuje nas o niczym. Gdy przestanie dzwonić a my porównamy dwie sytuacje, uzyskamy informację, że usterka została usunięta. Brak zmian to brak przekazu informacji: niezmienny sygnał nosi nazwę szumu. Nie można go jednak ignorować, gdyż często zakłóca przekaz właściwej informacji.
13 Jednostka informacji: bit 13 Podstawową jednostką informacji jest bit, oznaczany też poprzez b (w ang. kawałek, skrót od binary digit, czyli cyfra dwójkowa). Bit jest to podstawowa elementarna jednostka informacji: wystarczająca do zakomunikowania jednego z co najwyżej dwóch jednakowo prawdopodobnych zdarzeń. Bit stanowi podstawę zapisu informacji w różnych typach pamięci komputera. Wszystkie inne jednostki składają się z jego wielokrotności. Bit przyjmuje jedną z dwóch wartości, które zwykle oznacza się jako 0 lub 1. Jest to oznaczenie stosowane w matematyce (wartość logiczna: 0 fałsz, 1 - prawda) oraz przy opisie informacji przechowywanej w pamięci komputera i opisie sposobów kodowania informacji.
14 Bajt 14 Jest to najmniejsza adresowalna jednostka informacji pamięci komputerowej, składająca się z bitów, w praktyce przyjmuje się że jeden bajt to 8 bitów (zostało to uznane za standard w 1964 r.). Jeden bajt może reprezentować zatem 2 8 = 256 różnych wartości, które mogą oznaczać zapisywane informacje. Bajt oznaczany jest poprzez B. Stosowanie przedrostków kilo, mega, giga itp. jako do określania odpowiednich potęg liczby dwa (np ) jest niezgodne z wytycznymi układu SI (np. kilo oznacza 1000, a nie 1024). W celu odróżnienia przedrostków o mnożniku 1000 od przedrostków o mnożniku 1024 (2 10 ), w styczniu 1997 r. pojawiła się propozycja ujednoznacznienia opracowana przez IEC (ang. International Electrotechnical Commission) polegająca na dodawaniu litery "i" po symbolu przedrostka dwójkowego, oraz "bi" po jego nazwie.
15 Wielokrotności bajtów 15
16 Kodowanie informacji 16 Jak to się dzieje że w pamięci komputera można przechowywać teksty, obrazy, dźwięki i liczby znacznie różniące się od zestawu 0 255? Dzięki kodowaniu informacji Bez kodowania nie ma zapisu różnorodnych informacji w pamięci komputera. Kodowanie występuje w każdym programie i na każdym poziomie.
17 Systemy zapisu liczb 17 System liczbowy to inaczej zbiór reguł zapisu i nazewnictwa liczb. Do zapisu liczb zawsze używa się pewnego skończonego zbioru znaków, zwanych cyframi (np. arabskimi lub rzymskimi), które jednak można zestawiać ze sobą na różne sposoby otrzymując nieskończoną liczbę kombinacji.
18 System jedynkowy 18 Najbardziej prymitywnym systemem liczbowym jest jedynkowy system liczbowy, w którym występuje tylko jeden znak (np. 1). W systemie tym kolejne liczby są tworzone przez proste powtarzanie tego znaku. Przykład: 3 w tym systemie zapisujemy jako 111, 5 w tym systemie zapisujemy jako
19 Systemy addytywne 19 W tych systemach liczby tworzy się przez dodawanie kolejnych symboli. Przykładem addytywnego systemu jest dobrze znany i wciąż stosowany rzymski system liczbowy z podstawowymi wielokrotnościami 10 i 5. Jego cyfry to: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500, M = 1000 W tym systemie w niektórych przypadkach występuje odejmowanie, a nie tylko dodawanie. Przykład: jeśli "X"=10,"V"=5,"I"=1 to XVI = = 16 jeśli "X"=10,"V"=5,"I"=1 to XIV = = 14
20 Systemy addytywne 20 Sześćdziesiątkowy system liczbowy, stosowany w Mezopotamii, w którym podstawowymi wielkościami były 10 i 60, był częściowo addytywny, częściowo pozycyjny. Jest on najstarszym znanym systemem każdego z tych dwóch rodzajów. W życiu codziennym spotykamy ślady babilońskiego systemu w podziale godziny na 60 minut, a minuty na 60 sekund, oraz w podziale kąta na minuty i sekundy kątowe. Zaletą systemów addytywnych jest możliwość zapisu nawet dużych liczb całkowitych (pod warunkiem że są okrągłe) za pomocą jednego znaku, a wadą złożoność, kłopoty interpretacyjne i zbyt wielka liczba cyfr przy mało okrągłych liczbach, oraz bardzo skomplikowany sposób dokonywania za ich pomocą prostych operacji arytmetycznych, wymagający zapamiętywania długich tabel.
21 Systemy pozycyjne 21 Są to systemy które posiadają symbole (cyfry) tylko dla kilku najmniejszych liczb naturalnych: 0, 1, 2,..., g 1, gdzie g to tzw. podstawa systemu, która może być dowolną liczbą naturalną większą niż 1. ( 10 = g Np. 5004,3 (podstawa systemu Cyfry te są kolejno umieszczane w ściśle określonych pozycjach i są mnożone przez odpowiednią potęgę g. W sytuacji, gdy dana potęga nie jest potrzebna do zapisu danej liczby, zostawia się w zapisie puste miejsce, lub częściej specjalny symbol. Współcześnie jest to cyfra 0.
22 Systemy pozycyjne 22 Na przykład liczbę 5004,3 w dziesiętnym systemie liczbowym (czyli systemie, którego podstawą jest 10) odczytuje się jako: = ,1 = 5004,3
23 Systemy pozycyjne 23 Zaletą systemów pozycyjnych jest ich Klarowność Łatwość dokonywania nawet złożonych operacji arytmetycznych Możliwość zapisu dowolnie dużej liczby, jednak do zapisu bardzo dużych liczb (nawet okrągłych) jest potrzebna duża liczba cyfr. Współcześnie powszechnie używany jest system dziesiątkowy. W informatyce często stosowany jest system dwójkowy (binarny), ósemkowy i szesnastkowy (heksadecymalny).
24 Systemy liczbowe w informatyce 24 Z racji reprezentacji liczb w pamięci komputerów za pomocą bitów, najbardziej naturalnym systemem w informatyce jest system dwójkowy. Ze względu na specyfikę architektury komputerów, gdzie często najszybszy dostęp jest do adresów parzystych, albo podzielnych przez 4, 8 czy 16, często używany jest szesnastkowy system liczbowy. Sprawdza się on szczególnie przy zapisie dużych liczb takich jak adresy pamięci, zakresy parametrów, itp.
25 Systemy liczbowe w informatyce 25 Na przykład: 2 16 = = = = i są znacznie łatwiejsze do zapamiętania. System szesnastkowy często spotykany jest też na stronach WWW (HTML), gdzie stosowany jest do zapisu kolorów.
26 Liczby naturalne w systemie binarnym 26
27 Liczby naturalne w systemie binarnym 27
28 Liczby naturalne w syst. binarnym 28 Jeśli ustalimy z góry pewną liczbę n bitów, za pomocą których będziemy reprezentowali liczby naturalne, to uzyskamy n - bitowe reprezentacje, uzupełniając je do pełnych n bitów zerami z lewej strony. Dla n = 8 (1 bajt), mamy kolejno : , , ,, możemy w ten sposób zapisać liczby od 0 do 255. Różnych wartości n bitowych jest 2n: od 0 do 2n - 1
29 Zapis dziesiętny binarnego 29 Metoda pierwsza: Oznaczmy poprzez m liczbę w zapisie dziesiętnym i załóżmy m > 0 Znajdujemy największą liczbę d = 2 k nie większą niż m. Piszemy jedynkę, odejmujemy od m wartość d, a następnie kolejno dla wszystkich mniejszych potęg dwójki sprawdzamy, czy mieszczą się one w tym co zostało z m. Jeśli dana potęga dwójki się nie mieści to dopisujemy zero, wpp. dopisujemy jedynkę i odejmujemy tę wartość od tego, co zostało z m. Przykładowo dla m = 13 patrz tabelka
30 Liczby całkowite 30 Umówmy się, że przeznaczymy określoną liczbę n bitów, aby reprezentować liczby całkowite. Powstaje pytanie: jak zapisywać liczby ujemne? Istnieją co najmniej 3 sposoby. Kodowanie w systemie znak-moduł Kodowanie w systemie znak-moduł odwrotny Kodowanie w systemie uzupełnieniowym
31 System znak - moduł 31 Kodowanie w systemie znak-moduł: Umawiamy się że jeden bit, np. pierwszy z lewej, rezerwujemy na określenie znaku liczby. Pozostałe n-1 bitów reprezentuje moduł liczby w tradycyjny sposób. Jeśli pierwszy bit znaku jest równy 0, to liczba jest nieujemna, a jeśli 1, to jest niedodatnia.
32 Ułamki 32 Podobnie jak w systemie dziesiętnym korzystamy z ujemnych potęg bazy (dziesiątki) po przecinku, tak tu będziemy rozważali binarne rozwinięcia ułamków za pomocą ujemnych potęg dwójki. Po przecinku, oddzielającym część całkowitą od ułamkowej, kolejne bity będą odpowiadały wartościom kolejno: ½, ¼, Zapisanie ułamka dziesiętnego binarnie jest proste, jeśli tylko mianownik ułamka jest potęgą dwójki. Wystarczy zapisać licznik binarnie, a następnie przesunąć przecinek o tyle pozycji w lewo, wynosi wykładnik potęgi dwójki. Np.: 5/16 zapisane binarnie to , jest to po prostu 5 czyli 101, przesunięte o 4 pozycje w prawo. ile
33 Ułamki 33 Co zrobić gdy mianownik nie jest potęgą dwójki? Przez u oznaczmy ułamek, który chcemy zapisać binarnie. Niech 0 < u < 1. Dopóki 0 < u, bądź otrzymujemy nie napotkane wcześniej wartości u, będziemy wykonywać: Pomnóż u przez 2 Jeżeli u jest mniejsze od 1, wpisz cyfrę 0 Wpp. wpisz cyfrę 1 i odejmij od u cyfrę 1. Gdy powtórzy się wartość u, otrzymamy szukany wynik, przy czym wypisany ciąg jest okresowy, a jego okresem jest ciąg bitów między powtórzeniami u.
34 Ułamki - przykład 34 Zauważmy iż nawet tak prosta liczba jak 1/10 ma nieskończone binarne rozwinięcie okresowe. Gdy chcemy reprezentować ją w komputerze, jesteśmy zmuszeni do zaokrąglenia tej wartości i w rzeczywistości otrzymujemy tylko coś koło 1/10.
35 Ułamki - zaokrąglenia 35 Skoro nie da się dokładnie reprezentować wartości wymiernych w komputerze, trzeba zaokrąglać. Reguły są bardzo proste. Jeśli chcemy zaokrąglić na k - tej pozycji, to ( k+1 ) patrzymy na cyfrę na następnej pozycji Jeśli jest ona równa 0, to zaokrąglamy w dół, obcinamy ogon rozwinięcia binarnego Wpp, zaokrąglamy w górę, również odrzucamy ogon, jednakże na k - tym miejscu przybliżenia dodajemy 1. je
36 Ułamki zaokrąglenia, przykład 36 Przybliżenie ułamka: ( 1/10 ) 10 = ( 0.0(0011) ) 2 Najlepsze przybliżenia uzyskujemy dla ułamków o mianownikach będących kolejnymi potęgami dwójki.
37 System stałopozycyjny 37 Liczby rzeczywiste mają część całkowitą i ułamkową, układ stałopozycyjny charakteryzuje się tym że przeznaczamy w nim stałą, z góry określoną liczbę (k) bitów na część całkowitą, tak jak i na ułamkową (u). Tym sposobem możemy przedstawić liczby z zakresu od -2 k-1 do 2 k-1 2 -u, i wartości w nim reprezentowane są rozłożone równomiernie co 2 -u. Jest to sposób nieekonomiczny. Gdy operujemy na dużych liczbach (np. w astronomii) nie potrzebujemy przeznaczać pamięci na część ułamkową. Gdy za to operujemy bardzo małymi liczbami (np. fizyka cząstek elementarnych), nie potrzebujemy przeznaczać dużo pamięci na część całkowitą
38 System zmiennopozycyjny 38 System zmiennopozycyjny jest intuicyjny i powszechnie stosowany. Gdy chcemy zapisać np. stałą Plancka nikt nie będzie pisał: h = 0, J s gdyż byłoby to nieczytelne. Zostanie użyty natomiast zapis: h = 6, J s W takim zapisie podaje się kilka cyfr znaczących (mantysę) oraz określamy rząd wielkości (cechę) poprzez podanie potęgi podstawy systemu.
39 System zmiennopozycyjny 39 Pojawia się problem jednoznaczności, np. liczbę 3/8 można przedstawić jako: 3/ / / / / Rozwiązaniem dla problemu jednoznaczności jest przyjęcie pewnego standardu. Np. dla systemu o podstawie 2): Mantysa musi mieścić się w przedziale (½, 1] dla wartości dodatnich oraz [- 1, -½) dla wartości ujemnych. Wyjątkiem jest reprezentacja zera.
40 System zmiennopozycyjny 40 Każdą niezerową liczbę rzeczywistą reprezentujemy za pomocą przybliżenia wymiernego w postaci pary (m, c), takich że: m ϵ [-1, -½) ( ½, 1] gdzie m jest mantysą, zaś c jest cechą. Interpretacja takiej reprezentacji wyraża się wzorem: x = m P c ( systemu gdzie dla tego przykładu P = 2 (podstawa System ten umożliwia zapis liczb rzeczywistych z ustalonym błędem względnym.
41 System zmiennopozycyjny 41
42 42 Standard zapisu liczb zmiennopozycyjnych Standard IEEE 754 (ang. Institute of Electrical and Electronics Engineers) dla liczby rzeczywistej: (4 ( bajty Standard IEEE dla liczby podwójnej precyzji: (8 bajtów)
43 Standard IEEE wartości specjalne 43
44 System zmiennopozycyjny 44
45 System zmiennopozycyjny a zero 45 Nie da się zera przedstawić w podanej postaci, gdyż żadna z liczb m2 c nie może być zerem dla mantys co do modułu większych od ½. Najczęściej stosowane rozwiązanie polega na tym, że wyłącza się jedną z cech (najmniejszą) i ustala, że jeśli liczba ma tę cechę, to jest równa zero niezależnie od mantysy.
46 Błąd obliczeniowy 46 Błąd bezwzględny: różnica między wartością zmierzoną/obliczoną x a wartością dokładną x 0 W systemie stałopozycyjnym obliczenia są wykonywane ze stałym max błędem bezwzględnym Błąd względny: błąd bezwzględny podzielony przez wartość dokładną W systemie zmiennopozycyjnym obliczenia są wykonywane ze stałym max błędem względnym
47 Znaki i teksty 47 Teksty składają się ze znaków. Podstawą zapisu jest jeden bajt. 1 bajt przyjmuje 256 różnych wartości. Aby zapisać tekst posługujemy się kodowaniem Ważną cechą kodowania jest jednoznaczność: przyjęcie pewnego sposobu kodowania powinno być powszechne: ASCII: standardowe, zależne od kraju Np. litera W: , czyli 87.
48 Znaki i teksty 48
49 ASCII 49 ASCII (ang. American Standard Code for Information Interchange) - 7-bitowy kod przyporządkowujący liczby z zakresu literom (alfabetu angielskiego), cyfrom, znakom przystankowym i innym symbolom oraz poleceniom sterującym. Litery, cyfry oraz inne znaki drukowane tworzą zbiór znaków ASCII. Jest to 95 znaków o kodach Pozostałe 33 kody (0-31 i 127) to tzw. kody sterujące służące do sterowania urządzeniem odbierającym komunikat, np. drukarką czy terminalem.
50 ASCII 50 Ponieważ kod ASCII jest 7-bitowy, a większość komputerów operuje na 8-bitowych bajtach, dodatkowy bit można wykorzystać na powiększenie zbioru kodowanych znaków. Powstało wiele różnych rozszerzeń ASCII wykorzystujących ósmy bit (np. norma ISO 8859), nazywanych stronami kodowymi. Również kodowanie UTF-8 można uważać za rozszerzenie ASCII, tutaj jednak dodatkowe znaki są kodowane na 2 i więcej bajtach.
51 Znaki i teksty 51 W rozszerzonym kodzie ASCII znajdują się niektóre znaki matematyczne oraz znaki symulujące elementy grafiki na komputerach. Przetwarzanie informacji nie oznacza samego zapisywania tekstów. Dodatkowe informacje (wytłuszczenie, różne czcionki, akapity ) też trzeba zakodować. Przykład: W kodzie ASCII znaki 0-31 i 127 nie są wykorzystane. Jeżeli umówimy się że po jednym z tych znaków następny zmienia znaczenie, to mamy 255 dodatkowych kodów. Np. kod 65 występujący po tym wybranym znaku nie będzie oznaczać litery A tylko jedną z funkcji sterujących pracą edytora.
52 Obrazy, dźwięki, 52 Ciągi bajtów muszą przechowywać teksty, liczby, muzykę, animacje: wszystkie informacje zapisywane w wyniku wykonywanych działań. Potrzebne jest zakodowanie informacji, inne niż w przypadku liczb czy też tekstów. Kodowanie koloru: model RGB, model YUV. Kodowanie obrazu: formaty: BMP (bitmapa), GIF, JPEG Kodowanie muzyki: formaty: MP1, MP2, MP3, MP4, WAV, OGG, Warto zauważyć pewną zależność: im większa precyzja, tym większy rozmiar pliku.
53 Kodowanie koloru RGB 53 Jeden z modeli przestrzeni barw, opisywanej współrzędnymi RGB. Jego nazwa powstała ze złożenia pierwszych liter angielskich nazw barw: R red (czerwonej), G green (zielonej) i B blue (niebieskiej), z których model ten się składa. Jest to model wynikający z właściwości odbiorczych ludzkiego oka, w którym wrażenie widzenia dowolnej barwy można wywołać przez zmieszanie w ustalonych proporcjach trzech wiązek światła o barwie czerwonej, zielonej i niebieskie. Model RGB jest jednak modelem teoretycznym a jego odwzorowanie zależy od urządzenia, co oznacza, że w każdym urządzeniu każda ze składowych RGB może posiadać nieco inną charakterystykę widmową, a co za tym idzie, każde z urządzeń może posiadać własny zakres barw możliwych do uzyskania.
54 Kodowanie koloru RGB 54 Model RGB miał pierwotnie zastosowanie do techniki analogowej, obecnie ma również do cyfrowej. Jest szeroko wykorzystywany w urządzeniach analizujących obraz (np. aparaty cyfrowe, skanery) oraz w urządzeniach wyświetlających obraz (np. telewizory, monitory komputerowe). Zapis koloru jako RGB często stosuje się w informatyce (np. palety barw w plikach graficznych, w plikach html). Najczęściej stosowany jest 24-bitowy zapis kolorów (po 8 bitów na każdą z barw składowych), w którym każda z barw jest zapisana przy pomocy składowych, które przyjmują wartość z zakresu W modelu RGB 0 (dla każdej ze składowych) oznacza kolor czarny, natomiast 255 (analogicznie) kolor biały. Kolor RGB można obliczyć tak: numer koloru = R * 256^2 + G * B
55 Kodowanie koloru YUV 55 Model barw, w którym Y odpowiada za jasność obrazu (luminancję), a pod UV zaszyta jest barwa - dwie chrominancje. Model YUV był wykorzystywany w czasie przechodzenia od telewizorów czarno-białych na kolorowe. Czarno-białe odbiorniki wyświetlały jedynie jasność obrazu, a kolorowe dodawały kolor, co pozwoliło posiadaczom czarno-białych nie pozbywać się odbiorników od razu. Y - luminacja (dla obrazu czarno-białego) U - przeskalowana składowa BV - przeskalowana składowa R Y = *R *G *B U = B Y V = R - Y
56 Kompresja 56 Jest to działanie mające na celu zmniejszanie objętości pliku. Przy kompresji wykorzystuje się podobieństwa i regularności występujące w plikach. Program przeprowadza analizę i wybiera fragmenty, które można zapisać w sposób zajmujący mniejszą liczbę bajtów. Wyróżniamy dwa typy: Kompresja bezstratna: odtworzona informacja jest identyczna z oryginałem, dekompresja jest w pełni odwracalna (np. GIF). Kompresja stratna: polega ona na eliminowaniu pewnych elementów oryginału, w celu lepszej efektywności kompresji (np. JPEG). Możemy powiązać jakość ze stopniem kompresji.
57 Szyfrowanie 57 Szyfr rodzaj kodu, system umownych znaków stosowany w celu utajnienia wiadomości, żeby była ona niemożliwa (lub bardzo trudna) do odczytania przez kogoś kto nie posiada odpowiedniego klucza. Szyfrowanie to procedura przekształcania wiadomości nie zaszyfrowanej w zaszyfrowaną. Wiadomość przed zaszyfrowaniem nazywa się tekstem jawnym (plaintext), a wiadomość zaszyfrowaną szyfrogramem (ciphertext). Kryptologia nauka o przekazywaniu informacji w sposób zabezpieczony przed niepowołanym dostępem. Kryptologię dzieli się na: Kryptografię, czyli naukę o układaniu systemów kryptograficznych, Kryptoanalizę, czyli naukę o ich łamaniu.
58 Szyfrowanie 58 Dwa najpopularniejsze algorytmy kryptografii asymetrycznej (czyli takiej, w której się używa zestawów dwu lub więcej powiązanych ze sobą kluczy, umożliwiających wykonywanie różnych czynności kryptograficznych) to RSA i ElGamal. RSA: Został stworzony w 1978 przez zespół: Ronald Rivest, Adi Shamir, Leonard Adleman (nazwa RSA jest akronimem utworzonym z pierwszych liter nazwisk jego twórców). RSA opiera się na trudności faktoryzacji dużych liczb. Znalezienie szybkiej metody faktoryzacji doprowadziłoby do złamania RSA, aczkolwiek nie ma dowodu, że nie da się go złamać w inny sposób. ElGamal: natomiast jest oparty na trudności problemu logarytmu dyskretnego w ciele liczb całkowitych modulo duża liczba pierwsza. Algorytm w połowie lat 80-tych przedstawił Egipcjanin Taher Elgamal. Algorytm ElGamala umożliwia szyfrowanie oraz obsługę podpisów cyfrowych. Setki modyfikacji algorytmu ElGamala (podobnie jak modyfikacje algorytmu RSA) mają różne inne zastosowania.
59 Wykład 1b 59 Struktury danych i algorytmy Typy danych i struktury danych Analiza algorytmów Sposoby zapisu algorytmów Rodzaje algorytmów Schematy blokowe i algografy Wybór algorytmu * Niektóre przykłady z wykł prof. T. Roughgarden, Standford, USA
60 Struktury danych i algorytmy 60 Struktury danych to narzędzia do reprezentowania informacji która ma być przetworzona przez program komputerowy, Algorytmy to przepisy wykonania czynności niezbędnych do jej przetworzenia. Wybór algorytmu do rozwiązania konkretnego problemu programistycznego pomaga w ustaleniu, jaką strukturę danych należałoby użyć, ale i odwrotnie wybrana struktura danych ma ogromny wpływ na szczegóły realizacji i efektywności algorytmu.
61 Typy danych i struktury danych 61 Dane są to obiekty którymi manipuluje algorytm. Te obiekty to nie tylko dane wejściowe lub wyjściowe (wyniki działania algorytmu), to również obiekty pośrednie tworzone i używane w trakcie działanie algorytmu. Dane mogą by różnych typów, do najpospolitszych należą liczby (całkowite, dziesiętne, ułamkowe) i słowa zapisane w rozmaitych alfabetach.
62 Typy danych i struktury danych 62 Interesują nas sposoby w jaki algorytmy mogą organizować, zapamiętywać i zmieniać zbiory danych oraz sięgać do nich. Zmienne czyli pudelka w których chwilowo przechowujemy jakąś wartość, Tablice czyli tabele (macierze), w których to możemy odwoływać się do indeksów, Listy i wektory Kolejki i stosy, Drzewa, czyli hierarchiczna struktura danych, Zbiory. Grafy. Relacje.
63 Typy danych i struktury danych 63 W wielu zastosowaniach same struktury danych nie wystarczają. Czasami potrzeba bardzo obszernych zasobów danych, stanowiących dla wielu algorytmów potencjalne dane wejściowe, a więc mające ustaloną strukturę i nadające się do odszukiwania i manipulowania nimi. Nazywa się je bazami danych (relacyjne i hierarchiczne). Kolejny krok to bazy wiedzy, których elementami są bazy danych, a które zawierają również informacje o związkach pomiędzy danymi.
64 Algorytmy 64 Algorytm to przepis postępowania prowadzący do rozwiązania konkretnego zadania; zbiór poleceń dotyczących pewnych obiektów (danych) ze wskazaniem kolejności w jakiej mają być wykonane. Jest jednoznaczną i precyzyjną definicją (specyfikacją) kroków które mogą być wykonywane mechanicznie. Algorytm odpowiada na pytanie jak to zrobić postawione przy formułowaniu zadania. Istota algorytmu polega na rozpisaniu całej procedury na kolejne, możliwie elementarne kroki. Algorytmiczne myślenie można kształtować niezależnie od programowania komputerów, chociaż każdy program komputerowy jest zapisem jakiegoś algorytmu.
65 Analiza algorytmów 65 Analiza algorytmów i powiązanych z nimi struktur danych. Znalezienie najlepszych sposobów wykonywania najczęściej spotykanych poleceń, musimy nauczyć się podstawowych technik projektowania dobrych algorytmów. Zrozumienie w jaki sposób wykorzystywać struktury danych i algorytmy tak, by tworzyć efektywne (szybkie) programy.
66 66 Mnożenie dwóch liczb całkowitych (szkolny algorytm) Wejście: dwie n-cyfrowe liczby x, y Wyjście: z = x * y Operacje: mnożenie i dodawanie dwóch 1-dno cyfrowych liczb Ilość operacji: ~ n dla każdego wiersza Ilość wszystkich operacji: ~ n * n = n 2 z dokładnością do stałej
67 67 Mnożenie dwóch liczb całkowitych (algorytm Karatsuba) Krok 1: policz Krok 2: policz Krok 3: policz Krok 4: policz Krok 5:
68 68 Mnożenie dwóch liczb całkowitych (algorytm Karatsuby) Rozpisujemy liczby x, y: a,b,c,d są liczbami n/2 cyfrowymi Reprezentujemy iloczyn jako Należy obliczyć: (1) ac (2) bd (3) (a+b) (c+d) = ac+ad+bc+bd Gauss trick: (3) (1) (2) = ad + bc Kilka mnożeń i dodawań liczb n/2 cyfrowych, czy to jest lepszy algorytm?
69 Sposoby zapisu algorytmu 69 Najprostszy sposób zapisu to zapis słowny Pozwala określić kierunek działań i odpowiedzieć na pytanie, czy zagadnienie jest możliwe do rozwiązania. Bardziej konkretny zapis to lista kroków Staramy się zapisać kolejne operacje w postaci kolejnych kroków które należy wykonać. Bardzo wygodny zapis to zapis graficzny schematy blokowe i grafy. Bardziej zaawansowana forma to zapis przy pomocy uproszczonego kodu języka programowania tzw. pseudo-kod
70 Algorytm - przykład 70 Przykład: dodanie dwóch liczb Sformułowanie zadania: oblicz sumę dwóch liczb naturalnych: a,b. Wynik oznacz przez S. Dane wejściowe: dwie liczby a i b Cel obliczeń: obliczenie sumy S = a + b Dodatkowe ograniczenia: sprawdzenie warunku dla danych wejściowych np. czy a, b są naturalne.
71 Zapis algorytmu: lista kroków 71 Zapis algorytmu przy pomocy listy kroków: sformułowanie zagadnienia (zadanie algorytmu), określenie zbioru danych potrzebnych do rozwiązania zagadnienia (określenie czy zbiór danych jest właściwy), określenie przewidywanego wyniku (wyników): co chcemy otrzymać i jakie mogą być warianty rozwiązania, zapis kolejnych ponumerowanych kroków, które należy wykonać, aby przejść od punktu początkowego do końcowego.
72 Algorytm - przykład 72 Sformułowanie zadania Znajdź rozwiązanie równania liniowego postaci a x + b = 0. Wynikiem jest wartość liczbowa lub stwierdzenie dlaczego nie ma jednoznacznego rozwiązania. Dane wejściowe Dwie liczby rzeczywiste a i b Cel obliczeń (co ma być wynikiem) Obliczenie wartości x lub stwierdzenie, że równanie nie ma jednoznacznego rozwiązania. gdy a = 0 to sprawdź czy b = 0, jeśli tak to równanie sprzeczne lub tożsamościowe gdy a 0 to oblicz x = -b/a
73 Schematy blokowe i algografy 73
74 74 Schemat blokowy rozwiązania równania liniowego
75 Grafy 75 Graf symbolizuje przepływ informacji. Graf składa się z węzłów i ścieżek. W przypadku algorytmów graf można wykorzystać aby w uproszczonej formie zilustrować ilość różnych dróg prowadzących do określonego w zadaniu celu. Graf pozwala wykryć drogi, które nie prowadzą do punktu końcowego, których to poprawny algorytm nie powinien posiadać.
76 76 Graf algorytmu rozwiązania równania liniowego P początek K koniec D działanie W warunek
77 Grafy 77 Jeżeli w grafie znajduje się ścieżka, która nie doprowadza do węzła końcowego, to mamy do czynienia z niepoprawnym grafem. W programie przygotowanym na podstawie takiego grafu, mamy do czynienia z przerwaniem próby działania i komunikatem o zaistnieniu jakiegoś błędu w działaniu. Węzeł grafu może mieć dwa wejścia jeżeli ilustruje pętle. Wtedy liczba ścieżek początek-koniec może być nieskończona, gdyż nieznana jest liczba obiegów pętli.
78 Schemat blokowy czy graf? 78 Graf to tylko schemat kontrolny służący do sprawdzenia algorytmu. Brak informacji o wykonywanych operacjach Schemat blokowy służy jako podstawa do tworzenia programów.
79 Rodzaje algorytmów 79 Algorytm liniowy: Ma postać ciągu kroków których jest liniowa ilość (np. stała albo proporcjonalna do liczby danych) które muszą zostać bezwarunkowo wykonane jeden po drugim. Algorytm taki nie zawiera żadnych warunków ani rozgałęzień: zaczyna się od podania zestawu danych, następnie wykonywane są kolejne kroki wykonawcze, aż dochodzimy do wyniku.
80 Rodzaje algorytmów 80 Algorytm z rozgałęzieniem: Większość algorytmów zawiera rozgałęzienia będące efektem sprawdzania warunków. Wyrażenia warunkowe umożliwiają wykonanie zadania dla wielu wariantów danych i rozważanie różnych przypadków. Powtarzanie różnych działań ma dwojaką postać: liczba powtórzeń jest z góry określona (przed rozpoczęciem cyklu), alg. najczęściej związany z działaniami na tablicach, liczba powtórzeń jest nieznana (zależy od spełnienia pewnego warunku), alg. najczęściej związany z obliczeniami typu iteracyjnego.
81 Algorytmy: dziel i zwyciężaj 81 Metoda: dziel i zwyciężaj : Dzielimy problem na mniejsze części tej samej postaci co pierwotny. Teraz te pod-problemy dzielimy dalej na coraz mniejsze, używając tej samej metody, aż rozmiar problemu stanie się tak mały, że rozwiązanie będzie oczywiste lub będzie można użyć jakiejś innej efektywnej metody rozwiązania. Rozwiązania wszystkich pod-problemów muszą być połączone w celu utworzenia rozwiązania całego problemu. Ten typ algorytmów zazwyczaj jest implementowany z zastosowaniem technik rekurencyjnych.
82 Algorytmy: dziel i zwyciężaj 82 Mamy posortować tablicę liczb, zakładamy że są różne Powtarzaj wielokrotnie scalaj
83 Algorytmy: dziel i zwyciężaj 83 Jak znaleźć minimum ciągu liczb? Dzielimy ciąg na dwie części, znajdujemy minimum w każdej z nich, bierzemy minimum z obu liczb jako minimum ciągu. Jak sortować ciąg liczb? Dzielimy na dwie części, każdą osobno sortujemy a następnie łączymy dwa uporządkowane ciągi (scalamy).
84 84 Algorytmy oparte na programowaniu dynamicznym Można stosować wówczas, kiedy problem daje się podzielić na wiele pod-problemów, których rozwiązania są możliwe do zapamiętania w jedno-, dwu- lub wielowymiarowej tablicy w taki sposób że w pewnej określonej kolejności można je wszystkie (a więc i cały problem) efektywnie rozwiązać. Jak obliczać ciąg Fibonacciego? 1 jeśli i = 1 F(i) = 1 jeśli i = 2 F(i-2)+F(i-1) jeśli i > 2 Aby obliczyć F(n), wartość F(k), gdzie k<n musimy wyliczyć F(n-k) razy. Liczba obliczeń rośnie wykładniczo. Korzystnie jest więc zachować (zapamiętać w tablicy) wyniki wcześniejszych obliczeń (F(k)).
85 Jak obliczać liczbę kombinacji? 85 Liczba kombinacji (podzbiorów) r-elementowych ze zbioru n-elementowego oznaczana ( n ), dana r jest wzorem:
86 Algorytmy z powrotami 86 Często możemy zdefiniować jakiś problem jako poszukiwanie rozwiązania wśród wielu możliwych przypadków. Dane: Pewna przestrzeń stanów, przy czym stan jest to sytuacją stanowiąca rozwiązanie problemu albo mogąca prowadzić do rozwiązania Sposób przechodzenia z jednego stanu do drugiego. Mogą istnieć stany które nie prowadzą do rozwiązania. Przykładami tego typu algorytmów są gry.
87 Algorytmy z powrotami 87 Metoda powrotów Wymaga zapamiętania wszystkich wykonanych ruchów czy też wszystkich odwiedzonych stanów aby możliwe było cofanie się (powroty). Stanów mogą być tysiące lub miliony więc bezpośrednie zastosowanie metody powrotów, mogące doprowadzić do odwiedzenia wszystkich stanów, może być zbyt kosztowne. Inteligentny wybór następnego posunięcia, tzw. funkcja oceniająca, może znacznie poprawić efektywność algorytmu. Np. aby uniknąć przeglądania nieistotnych fragmentów przestrzeni stanów.
88 Wybór algorytmu 88 Regułą jest że należy implementować algorytmy najprostsze, które wykonują określone zadanie. Prosty algorytm to łatwiejsza implementacja, czytelniejszy kod łatwość testowania., dokumentacji łatwość pisania Jeśli program ma działać wielokrotnie, jego wydajność i wykorzystywany algorytm stają się bardzo ważne. Błędy zaokrągleń, powstające przy reprezentacji liczb, a także przy wykonywaniu działań na nich rozwinęły się w samodzielna dziedzinę tzw. analiza numeryczna.
89 Wybór algorytmu 89 Istnieją również inne zasoby, które należy niekiedy oszczędnie wykorzystywać w pisanych programach: ilość przestrzeni pamięciowej wykorzystywanej przez zmienne generowane przez program obciążenie sieci komputerowej ilość danych odczytywanych i zapisywanych na dysku mniej obliczeń to lepsza dokładność numeryczna ( zaokrąglenia )
90 90 Algorytm optymalnego dodawania liczb naturalnych Posortuj dane od liczby najmniejszej do największej względem modułów. Dopóki są co najmniej dwa elementy w zbiorze powtarzaj następujące działanie: Pobierz z posortowanego zbioru dwie najmniejsze wartości (dlaczego najmniejsze?) Dodaj do siebie Włóż do zbioru z powrotem wynik dodawania Problemem nietrywialnym jest wykonywanie tego szybko użyj stosu.
91 Wybór algorytmu 91 Zrozumiałość i efektywność: to są często sprzeczne cele. Typowa jest sytuacja w której programy efektywne dla dużej ilości danych są trudniejsze do napisania/zrozumienia. Np. sortowanie przez wybieranie (łatwy, nieefektywny dla dużej ilości danych) i sortowanie przez dzielenie i scalanie (trudniejszy, dużo efektywniejszy). Zrozumiałość to pojęcie względne, natomiast efektywność można obiektywnie zmierzyć: testy wzorcowe, analiza złożoności obliczeń.
92 Efektywność algorytmu 92 Czas działania: Oznaczamy przez funkcje T(n) liczbę jednostek czasu, które zajmuje wykonanie programu lub algorytmu w przypadku problemu o rozmiarze n. Funkcje te nazywamy czasem działania. Dość często czas działania zależy od konkretnych danych wejściowych, nie tylko ich rozmiaru. W takim przypadku, funkcje T(n) definiuje się jako najmniej korzystny przypadek z punktu widzenia kosztów czasowych. Inną wyznaczaną wielkością jest też czas średni, czyli średni dla różnych danych wejściowych.
93 Testy wzorcowe 93 Podczas porównywania dwóch lub więcej programów zaprojektowanych do wykonywania tego samego zadania, opracowujemy niewielki zbiór typowych danych wejściowych które mogą posłużyć jako dane wzorcowe (ang. benchmark). Powinny być one reprezentatywne i zakłada się że program dobrze działający dla danych wzorcowych będzie też dobrze działał dla wszystkich innych danych. Np. test wzorcowy umożliwiający porównanie algorytmów sortujących może opierać się na jednym małym zbiorze danych, np. zbiór pierwszych 20 cyfr liczby ; jednym średnim, np. zbiór kodów pocztowych województwa krakowskiego; oraz na dużym zbiorze takim jak zbiór numerów telefonów z obszaru Krakowa i okolic. Przydatne jest też sprawdzenie jak algorytm działa dla ciągu już posortowanego (często działają kiepsko).
94 Uwagi końcowe 94 Na wybór najlepszego algorytmu dla tworzonego programu wpływa wiele czynników, najważniejsze to: prostota, łatwość implementacji efektywność
95 Pytania do wykładu 95 1) Co to jest algorytm i jakie znasz sposoby jego zapisu? 2) Scharakteryzuj, na czym polegają następujące typy algorytmów: liniowy z rozgałęzieniem z powrotami dziel i zwyciężaj zachłanny oparty o programowanie dynamiczne 3) Według jakich kryteriów efektywność algorytmu? 4) W jaki sposób badamy czas działania algorytmu?
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Analiza algorytmów Typy danych i struktury danych Sposoby zapisu algorytmów
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Typy danych i struktury danych Analiza algorytmów Sposoby zapisu algorytmów
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 2 2 Struktury danych i algorytmy Analiza algorytmów Typy danych i struktury danych Sposoby zapisu algorytmów
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 2: Struktury danych i algorytmy http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-20010 http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010 http://th-www.if.uj.edu.pl/~erichter/dydaktyka/dydaktyka2010/tpi-
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Zakres tematyki wykładu 2 Co to jest informacja? Algorytmy i struktury danych, poprawność algorytmu Złożoność
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Informatyka 2 Mimo że informatyka jest stosunkowo nową dziedziną nauki, wpływa znacząco na niemal wszystkie aspekty
Teoretyczne podstawy informatyki. Prof. dr hab. Elżbieta Richter-Wąs 1
Teoretyczne podstawy informatyki Prof. dr hab. Elżbieta Richter-Wąs 1 Informatyka Mimo że informatyka jest stosunkowo nową dziedziną nauki, wpływa znacząco na niemal wszystkie aspekty działalności człowieka.
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 1: Informacja i zasady jej zapisu http://th-www.if.uj.edu.pl/~erichter/dydaktyka/dydaktyka2010/tpi-2010 http://kiwi.if.uj.edu.pl/~erichter/dydaktyka2010/tpi-2010
Wykład z Technologii Informacyjnych. Piotr Mika
Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły
Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych
Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania
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
Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =
Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,
Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).
Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych
Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym
Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb
Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna
Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,
Wstęp do informatyki- wykład 1 Systemy liczbowe
1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz,
Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI
Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System
Technologie Informacyjne
System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne
Systemy zapisu liczb.
Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:
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
Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna
Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,
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
Podstawy Informatyki
Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 5 1 / 23 LICZBY RZECZYWISTE - Algorytm Hornera
Podstawy Informatyki dla Nauczyciela
Podstawy Informatyki dla Nauczyciela Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 2 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki dla Nauczyciela Wykład 2 1 / 1 Informacja
Teoretyczne Podstawy Informatyki
Teoretyczne Podstawy Informatyki cel zajęć Celem kształcenia jest uzyskanie umiejętności i kompetencji w zakresie budowy schematów blokowych algor ytmów oraz ocenę ich złożoności obliczeniowej w celu optymizacji
Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński
Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.
ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.
ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb
Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika
Wielkości liczbowe Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje 0 oraz liczby naturalne
Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika
Wielkości liczbowe Wykład z Podstaw Informatyki Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje oraz liczby naturalne od do 255
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki Wykład 2: Struktury danych i algorytmy http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2011/tpi-20011 http://th-www.if.uj.edu.pl/~erichter/dydaktyka/dydaktyka2011/tpi-2011
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
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
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
Arytmetyka komputera
Arytmetyka komputera Systemy zapisu liczb System dziesiętny Podstawą układu dziesiętnego jest liczba 10, a wszystkie liczby można zapisywać dziesięcioma cyframi: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Jednostka
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
Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):
1. SYSTEMY LICZBOWE UŻYWANE W TECHNICE KOMPUTEROWEJ System liczenia - sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Do zapisu
Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze
Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41
Programowanie w C++ Wykład 2 Katarzyna Grzelak 5 marca 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41 Reprezentacje liczb w komputerze K.Grzelak (Wykład 1) Programowanie w C++ 2 / 41 Reprezentacje
wagi cyfry 7 5 8 2 pozycje 3 2 1 0
Wartość liczby pozycyjnej System dziesiętny W rozdziale opiszemy pozycyjne systemy liczbowe. Wiedza ta znakomicie ułatwi nam zrozumienie sposobu przechowywania liczb w pamięci komputerów. Na pierwszy ogień
Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn
Metody numeryczne Wykład 2 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Arytmetyka zmiennopozycyjna
Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki
Studia Podyplomowe INFORMATYKA Podstawy Informatyki Wykład II Reprezentacja danych w technice cyfrowej 1 III. Reprezentacja danych w komputerze Rodzaje danych w technice cyfrowej 010010101010 001010111010
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.
Systemy liczbowe. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz
PODSTAWY TEORII UKŁADÓW CYFROWYCH Systemy liczbowe Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System liczbowy zbiór reguł jednolitego
Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44
Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia
Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne
Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)
SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M
SYSTEMY LICZBOWE SYSTEMY POZYCYJNE: dziesiętny (arabski):,, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M System pozycyjno wagowy: na przykład liczba 444 4 4 4 4 4 4 Wagi systemu dziesiętnego:,,,,...
LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q
LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone
System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.
2. Arytmetyka komputera. Systemy zapisu liczb: dziesietny, dwójkowy (binarny), ósemkowy, szesnatskowy. Podstawowe operacje arytmetyczne na liczbach binarnych. Zapis liczby binarnej ze znakiem. Reprezentacja
Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,
1 Kody Tunstalla Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9, 14.04.2005 Inne podejście: słowa kodowe mają ustaloną długość, lecz mogą kodować ciągi liter z alfabetu wejściowego o różnej
Wstęp do informatyki- wykład 2
MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci
Kod IEEE754 IEEE Institute of Electrical and Electronics Engineers IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci (-1) s 1.f
Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek
Pojęcie liczebności Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Naturalna zdolność człowieka do postrzegania
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Reprezentacja
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl http://orion.fis.agh.edu.pl/~grazyna/ D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Wprowadzenie, trochę historii, systemy liczbowe Kodowanie informacji,
TEORETYCZNE PODSTAWY INFORMATYKI
1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie
2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,
2 Arytmetyka Niech b = d r d r 1 d 1 d 0 będzie zapisem liczby w systemie dwójkowym Zamiana zapisu liczby b na system dziesiętny odbywa się poprzez wykonanie dodawania d r 2 r + d r 1 2 r 1 d 1 2 1 + d
Zadanie 1. Potęgi (14 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. otęgi (14 pkt) W poniższej tabelce podane są wartości kolejnych potęg liczby 2: k 0 1 2 3 4 5 6 7 8 9 10 2 k 1 2 4 8 16 32 64 128 256 512 1024 Ciąg a=(a 0,
Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy
Informatyka kodowanie liczb dr hab. inż. Mikołaj Morzy plan wykładu definicja informacji sposoby kodowania reprezentacja liczb naturalnych i całkowitych arytmetyka binarna arytmetyka oktalna arytmetyka
Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).
Wykład 1 1-1 Informatyka nauka zajmująca się zbieraniem, przechowywaniem i przetwarzaniem informacji. Informacja obiekt abstrakcyjny, który w postaci zakodowanej moŝe być przechowywany, przesyłany, przetwarzany
Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek
Wstęp do informatyki Podstawy arytmetyki komputerowej Cezary Bolek cbolek@ki.uni.lodz.pl Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki Pojęcie liczebności Naturalna zdolność człowieka do postrzegania
Wstęp do informatyki- wykład 1
MATEMATYKA 1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Stan wysoki (H) i stan niski (L)
PODSTAWY Przez układy cyfrowe rozumiemy układy, w których w każdej chwili występują tylko dwa (zwykle) możliwe stany, np. tranzystor, jako element układu cyfrowego, może być albo w stanie nasycenia, albo
Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:
Reprezentacja liczb rzeczywistych w komputerze. Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci: k = m * 2 c gdzie: m częśd ułamkowa,
Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:
Klasa 1 technikum Przedmiotowy system oceniania wraz z wymaganiami edukacyjnymi Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH
REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Pojęcie
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH
ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok
Pracownia Komputerowa wykład VI
Pracownia Komputerowa wykład VI dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada 1 Przypomnienie 125 (10) =? (2) Liczby całkowite : Operacja modulo % reszta z dzielenia: 125%2=62 reszta 1
1.1. Pozycyjne systemy liczbowe
1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego
Technologie Informacyjne Wykład 4
Technologie Informacyjne Wykład 4 Arytmetyka komputerów Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny Politechnika Wrocławska 30 października 2014 Część
Kodowanie informacji. Przygotował: Ryszard Kijanka
Kodowanie informacji Przygotował: Ryszard Kijanka Komputer jest urządzeniem służącym do przetwarzania informacji. Informacją są liczby, ale także inne obiekty, takie jak litery, wartości logiczne, obrazy
3.3.1. Metoda znak-moduł (ZM)
3.3. Zapis liczb binarnych ze znakiem 1 0-1 0 1 : 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 reszta 0 0 0 0 0 0 0 1 3.3. Zapis liczb binarnych ze znakiem W systemie dziesiętnym liczby ujemne opatrzone są specjalnym
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
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ęć
Kodowanie liczb całkowitych w systemach komputerowych
Kodowanie liczb całkowitych w systemach komputerowych System pozycyjny Systemy addytywne znaczenie historyczne Systemy pozycyjne r podstawa systemu liczbowego (radix) A wartość liczby a - cyfra i pozycja
Teoretyczne podstawy informatyki
Teoretyczne podstawy informatyki http://hibiscus.if.uj.edu.pl/~erichter/dydaktyka2008/tpi-2008 Prof. dr hab. Elżbieta Richter-Wąs 3.10.08 Zakres tematyczny 1. Co to jest informacja? 2. Algorytmy i struktury
INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227
INFORMATYKA W SZKOLE Dr inż. Grażyna KRUPIŃSKA grazyna@fis.agh.edu.pl D-10 pokój 227 Podyplomowe Studia Pedagogiczne 2 Algorytmy Nazwa algorytm wywodzi się od nazwiska perskiego matematyka Muhamed ibn
Arytmetyka liczb binarnych
Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1
teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015
teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015 1 zakres materiału zakres materiału 1. Czym jest teoria informacji? 2. Wprowadzenie matematyczne. 3. Entropia i informacja.
Algorytmy i struktury danych. Wykład 4
Wykład 4 Różne algorytmy - obliczenia 1. Obliczanie wartości wielomianu 2. Szybkie potęgowanie 3. Algorytm Euklidesa, liczby pierwsze, faktoryzacja liczby naturalnej 2017-11-24 Algorytmy i struktury danych
Architektura komputerów
Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię
Systemy liczenia. 333= 3*100+3*10+3*1
Systemy liczenia. System dziesiętny jest systemem pozycyjnym, co oznacza, Ŝe wartość liczby zaleŝy od pozycji na której się ona znajduje np. w liczbie 333 kaŝda cyfra oznacza inną wartość bowiem: 333=
Wstęp do Informatyki
Wstęp do Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 4 Bożena Woźna-Szcześniak (AJD) Wstęp do Informatyki Wykład 4 1 / 1 DZIELENIE LICZB BINARNYCH Dzielenie
Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.
Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów. Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Liczby zmiennoprzecinkowe i błędy
i błędy Elementy metod numerycznych i błędy Kontakt pokój B3-10 tel.: 829 53 62 http://golinski.faculty.wmi.amu.edu.pl/ golinski@amu.edu.pl i błędy Plan wykładu 1 i błędy Plan wykładu 1 2 i błędy Plan
Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia
Informacja w perspektywie obliczeniowej Informacje, liczby i obliczenia Cztery punkty odniesienia (dla pojęcia informacji) ŚWIAT ontologia fizyka UMYSŁ psychologia epistemologia JĘZYK lingwistyka nauki
0 + 0 = 0, = 1, = 1, = 0.
5 Kody liniowe Jak już wiemy, w celu przesłania zakodowanego tekstu dzielimy go na bloki i do każdego z bloków dodajemy tak zwane bity sprawdzające. Bity te są w ścisłej zależności z bitami informacyjnymi,
B.B. 2. Sumowanie rozpoczynamy od ostatniej kolumny. Sumujemy cyfry w kolumnie zgodnie z podaną tabelką zapisując wynik pod kreską:
Dodawanie dwójkowe Do wykonywania dodawania niezbędna jest znajomość tabliczki dodawania, czyli wyników sumowania każdej cyfry z każdą inną. W systemie binarnym mamy tylko dwie cyfry 0 i 1, zatem tabliczka
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5.
Zadanie 1. Zmiana systemów. Zadanie 2. Szyfr Cezara. Zadanie 3. Czy liczba jest doskonała. Zadanie 4. Rozkład liczby na czynniki pierwsze Zadanie 5. Schemat Hornera. Wyjaśnienie: Zadanie 1. Pozycyjne reprezentacje
Temat: Liczby definicje, oznaczenia, własności. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1
Temat: Liczby definicje, oznaczenia, własności A n n a R a j f u r a, M a t e m a t y k a s e m e s t r, W S Z i M w S o c h a c z e w i e Kody kolorów: pojęcie zwraca uwagę A n n a R a j f u r a, M a
RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.
RODZAJE INFORMACJI Informacje analogowe U(t) Umax Umax 0 0 R=(0,Umax) nieskończony zbiór możliwych wartości WE MASZYNA ANALOGOWA WY Informacje cyfrowe U(t) Umaxq Umax R=(U, 2U, 3U, 4U) # # MASZYNA # CYFROWA
MATeMAtyka 1. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Klasa pierwsza
MATeMAtyka 1 Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych Zakres podstawowy i rozszerzony Klasa pierwsza Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe
Zadanie 1. Suma silni (11 pkt)
2 Egzamin maturalny z informatyki Zadanie 1. Suma silni (11 pkt) Pojęcie silni dla liczb naturalnych większych od zera definiuje się następująco: 1 dla n = 1 n! = ( n 1! ) n dla n> 1 Rozpatrzmy funkcję
Pracownia Komputerowa wykład IV
Pracownia Komputerowa wykład IV dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny
Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu
Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu Wymagania edukacyjne niezbędne do uzyskania poszczególnych śródrocznych i rocznych ocen klasyfikacyjnych z obowiązkowych
Temat: Algorytm kompresji plików metodą Huffmana
Temat: Algorytm kompresji plików metodą Huffmana. Wymagania dotyczące kompresji danych Przez M oznaczmy zbiór wszystkich możliwych symboli występujących w pliku (alfabet pliku). Przykład M = 2, gdy plik
1 Wprowadzenie do algorytmiki
Teoretyczne podstawy informatyki - ćwiczenia: Prowadzący: dr inż. Dariusz W Brzeziński 1 Wprowadzenie do algorytmiki 1.1 Algorytm 1. Skończony, uporządkowany ciąg precyzyjnie i zrozumiale opisanych czynności
Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI
Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl http://orion.fis.agh.edu.pl/~grazyna/ D-10 pokój 227 WYKŁAD 1 WSTĘP DO INFORMATYKI Plan wykładu 2 Wprowadzenie, trochę historii, systemy liczbowe
PODSTAWY INFORMATYKI. Informatyka? - definicja
PODSTAWY INFORMATYKI Informatyka? - definicja Definicja opracowana przez ACM (Association for Computing Machinery) w 1989 roku: Informatyka to systematyczne badanie procesów algorytmicznych, które charakteryzują
Sortowanie zewnętrzne
Algorytmy i struktury danych Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski Sortowanie zewnętrzne 1 Wstęp Bardzo często
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR
INŻYNIERIA BEZPIECZEŃSTWA LABORATORIUM NR 2 ALGORYTM XOR ŁAMANIE ALGORYTMU XOR 1. Algorytm XOR Operacja XOR to inaczej alternatywa wykluczająca, oznaczona symbolem ^ w języku C i symbolem w matematyce.