Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

1 Podstawy informatyki (2) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski.

Podobne prezentacje


Prezentacja na temat: "1 Podstawy informatyki (2) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski."— Zapis prezentacji:

1 1 Podstawy informatyki (2) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski

2 Podstawy informatyki 2 Dodawanie binarne Reguły dodawania cyfr binarnych. Kodowanie liczb przykład:

3 Podstawy informatyki 3 Notacja uzupełnieniowa do dwóch Do reprezentacji każdej wartości w notacji U2 wykorzystuje się tę samą ustaloną liczbę bitów. Reprezentacja liczb całkowitych Obecnie: - najpopularniejszy system reprezentacji liczb całkowitych - wykorzystuje się notację 32-bitową zakres: ÷ Wartość najbardziej znaczącego bitu decyduje o znaku reprezentowanej wartości. - Bit znaku ( sign bit ) 0 – wartość dodatnia 1 – wartość ujemna

4 Podstawy informatyki 4 Notacja uzupełnieniowa do dwóch Reprezentacja liczb całkowitych Przykład – system 4-bitowy Ciągi bitów reprezentujące wartości dodatnie i ujemne czytane od strony prawej do lewej są identyczne aż do pozycji pierwszej jedynki (włącznie). Od tego miejsca pozostałe wartości bitów są swoimi uzupełnieniami waga 0123bit

5 Podstawy informatyki 5 Notacja uzupełnieniowa do dwóch Reprezentacja liczb całkowitych Algorytm wyznaczania liczby przeciwnej: - wykonaj negację kolejnych bitów liczby wejściowej, - dodaj NOT NOT

6 Podstawy informatyki 6 Dodawanie w notacji uzupełnieniowej do dwóch Reprezentacja liczb całkowitych (3) Należy odrzucić ewentualny dodatkowy bit wyniku ze skrajnej lewej pozycji powstały w wyniku przeniesienia.

7 Podstawy informatyki 7 Problem przepełnienia Reprezentacja liczb całkowitych ? ? Problem przepełnienia ( overflow ) - powstaje wówczas gdy wartość, którą potrzeba zakodować, nie mieści się w zakresie wartości danego systemu reprezentacji liczb. - może wystąpić w przypadku dodawania dwóch wartości dodatnich lub dwóch wartości ujemnych. Błąd łatwy do wykrycia bowiem : suma liczb dodatnich daje wynik ujemny i odwrotnie...

8 Podstawy informatyki 8 Notacja z nadmiarem Reprezentacja liczb całkowitych Przykład – notacja z nadmiarem 8 Różnica w stosunku do systemu uzupełnieniowego do dwóch polega na odwróceniu bitu znaku.

9 Podstawy informatyki 9 Reprezentacja liczb rzeczywistych Kodowanie w systemie zmiennoprzecinkowym - bazuje na systemie pozycyjnym wagowym; - opiera się na podziale liczby na część ułamkową zwaną mantysą, oraz część wykładnika potęgi podstawy systemu zwanego cechą; - umożliwia zapis liczb rzeczywistych z ustalonym błędem względnym. M – mantysa ( w postaci znormalizowanej tzn. z pierwszą liczbą po przecinku większą od zera ) ; p – podstawa systemu ( zgodnie z zapisem pozycyjnym wagowym ) E – cecha ( exponent ) – wykładnik potęgi umożliwiający przesunięcie przecinka liczby rzeczywistej tak by uzyskać znormalizowaną postać mantysy.

10 Podstawy informatyki 10 System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych bit znaku 0 - wartość dodatnia ; 1 - wartość ujemna cechamantysa Ilość bitów przeznaczonych na cechę decyduje o zakresie liczbowym. Ilość bitów przeznaczonych na mantysę decyduje o błędzie zapisu. * Wg standardu IEEE IEEE – Institute of Electrical and Electronics Enginieers bit znaku ( 8 bitów )( 23 bity ) - Liczba rzeczywista ( 4 bajty )* bit znaku ( 11 bitów )( 52 bity ) - Liczba rzeczywista podwójnej precyzji ( 8 bajtów )*

11 Podstawy informatyki 11 System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych Sposób interpretacji liczb. Przykład kodowany w systemie 8-bitowym. Ciąg bitów : Bit znaku : 0 - liczba dodatnia Mantysa : Cecha ( liczba całkowita kodowana w notacji z nadmiarem ) - 3 bity nadmiar = 4 ( 2 (3-1) ) - wartość cechy : 2 przecinek ( kropka ) o dwie pozycje w prawo 3¼3¼ zatem po przesunięciu kropki :

12 Podstawy informatyki 12 System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych Ciąg bitów : Bit znaku : 1 - liczba ujemna Cecha - 3 bity nadmiar = 4 ( 2 (3-1) ) - wartość cechy : -1 przecinek ( kropka ) o jedną pozycję w lewo Przykład : Mantysa : zatem po przesunięciu kropki :

13 Podstawy informatyki 13 System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych Liczba : 2 ¾ Cecha powinna mieć wartość 2 tj ( w 3-bitowej notacji z nadmiarem 4 ) Przykład : Wynik :

14 Podstawy informatyki 14 1 mantysa znormalizowana ( z pierwszą liczbą po przecinku większą od zera ) System zmiennoprzecinkowy Reprezentacja liczb rzeczywistych Liczba : - 3 / 8 Cecha powinna mieć wartość - 1 tj ( w 3-bitowej notacji z nadmiarem 4 ) Przykład : Wynik : 100

15 Podstawy informatyki 15 Błędy zaokrągleń Reprezentacja liczb rzeczywistych Liczba : 2,625 = 2 5 / 8 Cecha powinna mieć wartość 2 tj ( w 3-bitowej notacji z nadmiarem 4 ) Przykład : Wynik : 01 0 utracony bit czyli: 2 ½ a nie 2 5 / 8

16 Podstawy informatyki 16 Błędy zaokrągleń Reprezentacja liczb rzeczywistych Sytuacje prowadzące do powstania błędów zaokrągleń : - brak możliwości zapisu całej reprezentacji binarnej danej liczby; - dodawanie do bardzo dużych liczb wartości bardzo małych, które bywają obcinane; - brak skończonego rozwinięcia ułamka danej liczby jak np. w systemie dziesiętnym 1 / 3 = 0,333333(3) 0,25 = ( 0,111111(1) ) 5 0,1 = ( (0011) ) 2 0,3 = ( (0011) ) 2

17 Podstawy informatyki 17 Błędy zaokrągleń Reprezentacja liczb rzeczywistych Przykład - kodowany w systemie 8-bitowym (4 bity do zapisu mantysy ) Należy wykonać dodawanie : 2 ½ + 1 / / 8 Sposób 1 – wartości dodawane od lewej do prawej. 2 ½ + 1 / 8 = 2 5 / Dodanie kolejnej wartości 1 / 8 nic nie zmieni i wynik końcowy to 2 ½ czyli: 2 ½ a nie 2 5 / 8 utracony bit Sposób 2 – wartości dodawane od prawej do lewej. 1 / / 8 = 1 / / ½ = 2 3 / czyli: OK.

18 Podstawy informatyki 18 Błędy zaokrągleń Reprezentacja liczb rzeczywistych W wielu jednak przypadkach problemy wynikające z błędów zaokrągleń można bardzo łatwo wyeliminować. Czasami wystarczy tylko zmienić jednostki obliczeń. - zamiast liczyć z dokładnością do 0,01 zł – liczyć w groszach; - zamiast liczyć z dokładnością do 0,001m – liczyć w mm. Regułą jest np. by sumowanie wielu liczb zaczynać od wartości małych, by uzyskana w ten sposób wartość nie była obcięta przy jej dodaniu do wartości dużo większej. Czasami trzeba zaprojektować cały cykl obliczeń, czy też dokonać normalizacji przetwarzanych danych.

19 Podstawy informatyki 19 Algorytmy Algorytm - zbiór uporządkowanych, jednoznacznych i wykonywalnych kroków, które określają skończony proces. Algorytm jest tworem abstrakcyjnym, natomiast jego formalną reprezen- tacją jest (przeznaczoną do wykonania przez komputer) jest program. Pomimo, że algorytm musi mieć jednoznacznie określoną kolejność wykonywania jego kroków nie oznacza to jednak, że zawsze kroki muszą być wykonywane wg. porządku : krok1, krok2, krok3, itd.. Istnieją algorytmy zwane równoległymi ( parallel algorithms ), które składają się z kilku ciągów kroków, z których każdy jest przeznaczony do wykonywania na innym procesorze komputera wieloprocesorowego. Struktura takiego algorytmu reprezentuje wiele wątków, które rozdzielają się i ponownie łączą po wykonaniu przez poszczególne procesory fragmentów całego zadania.

20 Podstawy informatyki 20 Algorytmy Przykład. Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich. Krok 1. Przypisz zmiennym x i y odpowiednio większą i mniejszą wartość wejściową. Krok 2. Podziel x przez y, a resztę z dzielenia nazwij r. Krok 3. Jeśli r nie jest zerem, to przypisz zmiennej x wartość y, zmiennej y wartość r i powróć do kroku 2; w przeciwnym razie aktualna wartość zmiennej b jest poszukiwanym największym wspólnym dzielnikiem.

21 Podstawy informatyki 21 Algorytmy Przykład : Krok 1. Sporządź listę wszystkich całkowitych liczb dodatnich. Krok 2. Uporządkuj listę malejąco (od liczby największej do najmniejszej). Krok 3. Pobierz pierwszy element uporządkowanej listy. Powyższa instrukcja nie jest jednak algorytmem ! Kroki 1 i 2 nie są możliwe do wykonania.

22 Podstawy informatyki 22 Algorytmy Sformułowanie algorytmu wymaga zastosowania pewnej formy jego zapisu – zastosowania pewnego języka przekazu np.: - opisu słownego, - instrukcji obrazkowej (jak np. w przypadku instrukcji wiązania krawata), - wzoru matematycznego np. : W wielu jednak przypadkach (zwłaszcza opisów słownych) sformułowany algorytm może okazać się niejednoznaczny na przyjętym poziomie szczegółowości.

23 Podstawy informatyki 23 Algorytmy Przykład niejednoznaczności opisu słownego: do obliczenia wyniku końcowego użyj liczby pierwszej spośród wszystkich zgromadzonych liczb. - pierwszej w kolejności gromadzenia ? - może jednak dowolnej liczby pierwszej ? Problem niejednoznaczności zapisu algorytmu może być wyeliminowany poprzez zastosowanie określonego zestawu konstrukcji pierwotnych. Każda konstrukcja pierwotna jest zdefiniowana za pomocą: 1. składni ( syntax ) – opisującej symboliczną reprezentację konstrukcji, 2. semantyki ( semantics ) – opisującej znaczenie danej konstrukcji.

24 Podstawy informatyki 24 Algorytmy Zestaw konstrukcji pierwotnych do reprezentacji algorytmów przeznaczo- nych do wykonywania na komputerze mógłby być określony przez zbiór rozkazów maszynowych danego komputera. Zapisywanie algorytmów na tym poziomie szczegółowości byłoby jednak niezwykle żmudne i trudne, prowadziłoby do powstawania wielu błędów, a w wielu przypadkach wręcz nie do zrealizowania. Obecnie do zwięzłego zapisu algorytmu w fazie jego projektowania wykorzystywane są takie rozwiązania jak: - pseudokod, - sieci działań (schematy blokowe), - diagramy ( klas, współpracy, przepływu danych,...)

25 Podstawy informatyki 25 Pseudokod Algorytmy Pseudokod - forma zapisu algorytmu składająca się ze struktur składniowo-semantycznych przypominających elementy składniowe występujące w języku programowania. Opracowanie pseudokodu polega na zdefiniowaniu spójnej, zwięzłej notacji do reprezentowania powtarzających się struktur semantycznych. Elementy składowe pseudokodu traktuje się jako konstrukcje pierwotne, za pomocą których wyrażane są dalsze pojęcia.

26 Podstawy informatyki 26 Pseudokod przykłady Algorytmy Instrukcja warunkowa if ( jeżeli ) if ( warunek ) { instrukcja_1 } else { instrukcja_2 } if ( warunek ) { instrukcja } if ( sprzedaż maleje) { obniż cenę o 5 % } if ( rok jest przestępny ) { podziel wynik przez 366 } else { podziel wynik przez 365 }

27 Podstawy informatyki 27 Pseudokod przykłady Algorytmy Instrukcja while ( dopóki ) while ( warunek ) { instrukcja } while ( są jeszcze bilety ) { sprzedaj bliet } Sprawdź warunek instrukcja Warunek fałszywy Warunek prawdziwy

28 Podstawy informatyki 28 Pseudokod przykłady Algorytmy Instrukcja do while ( wykonuj dopóki ) do { instrukcja } while ( warunek ) do { pobieraj dane } while ( baza pusta ) Sprawdź warunek instrukcja Warunek fałszywy Warunek prawdziwy

29 Podstawy informatyki 29 Pseudokod przykłady Algorytmy Operatory operatoroperacjaZastosowanie * mnożenie wyrażenie * wyrażenie / dzielenie wyrażenie / wyrażenie % dzielenie modulo ( reszta z dzielenia ) wyrażenie % wyrażenie + dodawanie wyrażenie + wyrażenie - odejmowanie wyrażenie - wyrażenie operatoroperacjazastosowanie = przypisanie inicjowanie zmiennej (obiektu) wartością początkową przypisanie zmiennej nowej wartości Operatory arytmetyczne

30 Podstawy informatyki 30 Pseudokod przykłady Algorytmy Operatory operatoroperacjaZastosowanie == równe wyrażenie == wyrażenie != nierówne wyrażenie != wyrażenie < mniejsze niż wyrażenie < wyrażenie <= mniejsze lub równe wyrażenie <= wyrażenie > większe niż wyrażenie > wyrażenie >= większe lub równe wyrażenie >= wyrażenie Operatory logiczne

31 Podstawy informatyki 31 Pseudokod przykłady Algorytmy Przykład. Algorytm wyszukiwania sekwencyjnego Dana jest lista nazwisk uporządkowanych alfabetycznie. Poszukiwany algorytm dający możliwość sprawdzenia czy na liście znajduje się poszukiwane nazwisko.

32 Podstawy informatyki 32 Przykład. Algorytm wyszukiwania sekwencyjnego Algorytmy, pseudokod element sprawdzany = pierwszy element listy while ( wartość szukana > element sprawdzany oraz są jeszcze elementy do sprawdzenia ) { element sprawdzany = kolejny element listy } if ( wartość szukana == element sprawdzany ) { szukany element został odnaleziony } else { nie znaleziono szukanego elementu } if ( lista jest pusta ) { nie znaleziono szukanego elementu } else { }

33 Podstawy informatyki 33 Pseudokod przykłady Algorytmy Przykład. Algorytm sortowania listy Ola Ewa Ala Iza Ula Ola Ewa Ala Iza Ula Ola Ewa Ala Iza Ula Ola Ala Iza Ula Ola Ala Iza Ula Ewa Lista początkowa : Ewa Ola Ala Iza Ula Ola Ala Iza Ula Ewa Ola Ala Iza Ula

34 Podstawy informatyki 34 Przykład. Algorytm sortowania listy Algorytmy Ewa Ola Ala Iza Ula Ewa Ola Ala Iza Ula Ewa Ola Iza Ula Ewa Ola Iza Ula AlaEwa Ala Ewa Ola Iza Ula Ewa Ola Iza Ula Ala Ewa Ola Iza Ula Ewa Ola Iza Ula

35 Podstawy informatyki 35 Przykład. Algorytm sortowania listy Ala Ewa Ola Iza Ula Ala Ewa Ola Iza Ula Ala Ewa Ola Ula Ala Ewa Ola Ula Iza Ala Ewa Ola Ula Ala Ewa Iza Ola Ula Ala Ewa Ola Ula

36 Podstawy informatyki 36 Przykład. Algorytm sortowania listy Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ala Ewa Iza Ola Ula Ala Ewa Iza Ola Ala Ewa Iza Ola Ula

37 Podstawy informatyki 37 Przykład. Algorytm sortowania Algorytmy, pseudokod N = 2 while ( N nie przekracza długości listy ) { pobierz N-ty element jako przenoszony; zapamiętaj tymczasowo wartość przenoszonego elementu, pozostawiając po tym elemencie wolne miejsce na liście; while ( jest jeszcze element powyżej wolnego miejsca i element jest większy niż element przenoszony ) { przesuń element z listy na pozycję wolnego miejsca tworząc w ten sposób nowe wolne miejsce nad przesuniętym elementem; } wstaw przenoszony element w wolne miejsce na liście; N = N + 1; }

38 Podstawy informatyki 38 Przykład Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich zapisany pseudokodem x = liczba większa y = liczba mniejsza r = x % y while ( r!=0 ) { x = y y = r r = x % y } największy wspólny dzielnik to y

39 Podstawy informatyki 39 Algorytmy Przykład. Algorytm Euklidesa znajdowania największego wspólnego dzielnika całkowitych liczb dodatnich. Krok 1. Przypisz zmiennym x i y odpowiednio większą i mniejszą wartość wejściową. Krok 2. Podziel x przez y, a resztę z dzielenia nazwij r. Krok 3. Jeśli r nie jest zerem, to przypisz zmiennej x wartość y, zmiennej y wartość r i powróć do kroku 2; w przeciwnym razie aktualna wartość zmiennej b jest poszukiwanym największym wspólnym dzielnikiem.


Pobierz ppt "1 Podstawy informatyki (2) wykład : 15 godz. ćwiczenia : 15 godz. Prowadzący: dr inż. Jacek Piątkowski."

Podobne prezentacje


Reklamy Google