Wstęp do informatyki- wykład 2

Podobne dokumenty
Wstęp do informatyki- wykład 1 Systemy liczbowe

Wstęp do informatyki- wykład 1 Systemy liczbowe

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Wstęp do informatyki- wykład 1

1.1. Pozycyjne systemy liczbowe

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE 275,538 =

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

POLITECHNIKA OPOLSKA

Schematy blokowe. Algorytmy Marek Pudełko

POLITECHNIKA OPOLSKA

1259 (10) = 1 * * * * 100 = 1 * * * *1

Arytmetyka liczb binarnych

Systemy zapisu liczb.

Podstawy Informatyki dla Nauczyciela

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Pracownia Komputerowa wykład V

Kod U2 Opracował: Andrzej Nowak

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Pozycyjny system liczbowy

Zapis liczb binarnych ze znakiem

Zadanie 1. Test (6 pkt) Zaznacz znakiem X w odpowiedniej kolumnie P lub F, która odpowiedź jest prawdziwa, a która fałszywa.

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

PODSTAWY ALGORYTMIKI

Pracownia Komputerowa wykład VI

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Podstawy Informatyki Maszyna Turinga

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

KOŁO MATEMATYCZNE LUB INFORMATYCZNE - klasa III gimnazjum, I LO

Pracownia Komputerowa wyk ad VI

Podstawy Informatyki

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Teoretyczne Podstawy Informatyki

Technologie Informacyjne

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Wprowadzenie do informatyki - ć wiczenia

Wstęp do informatyki- wykład 7

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

Metoda znak-moduł (ZM)

Systemy liczbowe. 1. System liczbowy dziesiętny

Wykład 2. Informatyka Stosowana. 8 października 2018, M. A-B. Informatyka Stosowana Wykład 2 8 października 2018, M. A-B 1 / 41

Podstawy Informatyki

System Liczbowe. Szesnastkowy ( heksadecymalny)

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Wstęp do informatyki- wykład 5 Instrukcja selekcji if-else Operatory arytmetyczne i logiczne

Luty 2001 Algorytmy (7) 2000/2001

Systemy liczbowe używane w technice komputerowej

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Algorytmy i struktury danych. Wykład 4

Operacje arytmetyczne

Pracownia Komputerowa wyk ad V

Arytmetyka binarna - wykład 6

1 Wprowadzenie do algorytmiki

Zadanie 1. Potęgi (14 pkt)

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Techniki multimedialne

EGZAMIN MATURALNY Z INFORMATYKI

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Naturalny kod binarny (NKB)

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Architektura komputerów

Definicje. Algorytm to:

...o. 2. ZARYS ORGANIZACJI MASZYNY TYPOWEJ

MNOŻENIE W SYSTEMACH UZUPEŁNIENIOWYCH PEŁNYCH (algorytm uniwersalny)

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Wprowadzenie do informatyki - ć wiczenia

Wykład I Cyfrowa reprezentacja informacji Algorytmy metody prezentacji i zapisu

Systemy liczbowe. Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz

Arytmetyka stałopozycyjna

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

SCENARIUSZ LEKCJI. Autorzy scenariusza: Krzysztof Sauter (informatyka), Marzena Wierzchowska (matematyka)

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Kodowanie liczb całkowitych w systemach komputerowych

Moduł 2 Zastosowanie systemów liczbowych w informacji cyfrowej

Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)

Wymagania edukacyjne z matematyki dla klasy VII

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

Wymagania edukacyjne z matematyki dla uczniów klasy VII szkoły podstawowej

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

L6.1 Systemy liczenia stosowane w informatyce

Stan wysoki (H) i stan niski (L)

Zapis algorytmów: schematy blokowe i pseudokod 1

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

Transkrypt:

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 Grębosz, Opus magnum C++11, Helion, 2017 B. Stroustrup, Język C++. Kompendium wiedzy. Wydanie IV, Helion, 2014 S. B. Lippman, J. Lajoie, Podstawy języka C++, WNT, Warszawa 2003.

2 System szesnastkowy (heksadecymalny) Zamiana systemu dwójkowego na szesnastkowy Aby zamienić liczbę o podstawie 2 na liczbę o podstawie 16 grupujemy od prawej po 4 bity rozwinięcia binarnego, odczytujemy wartość dziesiętna każdej grupy bitów i podstawiamy odpowiednią cyfrę z systemu szesnastkowego: 101111010110 (2) = 1011 1101 0110 = BD6 (16) =11=B =13=D =6 Zamiana systemu szesnastkowego na dwójkowy Aby zamienić liczbę o podstawie 16 na liczbę o podstawie 2 każdą cyfrę szesnastkową zapisujemy na 4 bitach uzupełniając o ile jest taka potrzeba z przodu odpowiednia ilością zer: BD6 (16) = 1011 1101 0110 = 101111010110 (2) =11=B =13=D =6 Pamiętajmy o konieczności zapisania każdej cyfry szesnastkowej dokładnie na 4 bitach, czyli o uzupełnieniu z przodu o ile zachodzi taka potrzeba odpowiednią ilością zer (tak jak to miało miejsce w powyższym przykładzie dla cyfry 6 która zapisaliśmy jako 0110)

3 Arytmetyka binarna Ćw 3. Liczby 0101 2, 0110 2, 1011 2, 11110011 2, 100111010100 2 zapisać w postaci szesnastkowej Ćw 4. Liczby A1C2D6, F3E5, 2018 zapisać w postaci binarnej. Ćw 5. Liczbę 255 zapisać: bezpośrednio w postaci szesnastkowej, zamienić na postać binarną, a następnie na szesnastkową. Działania na liczbach binarnych 0+0=0 1 0=1 1+0=1 0 0=0 1+1=10 10 1=1 1101 + 101 10010 1+1= 2 czyli w systemie binarnym jest to 0 i 1 na pozycji o jeden wyższej jest to analogia przy dodawaniu dziesiętnym np. 7+6=13 czyli 3 i 1 na pozycji o jeden wyższej (tzw. jeden dalej )

4 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu liczb całkowitych (dodatnich i ujemnych). Pierwszy bit od lewej jest bitem znaku (0 liczba dodatnia, 1 liczba ujemna), pozostałych n 1 bitów, to liczba zapisana w postaci binarnej, przy czym dla liczb ujemnych przechowuje się reprezentację binarną liczby x uz = 2 n - x (x) u2 = (x) 2 dla 0 <= x <= 2 n-1 1 (2 n x ) 2 dla 2 n-1 <= x < 0 W ten sposób po prawej stronie definicji mamy reprezentacje liczb nieujemnych, które umiemy już liczyć.

5 Reprezentacja uzupełnieniowa Przykłady a) Wyznaczmy reprezentacje liczby -35 na 8 bitach. Aby znaleźć reprezentację uzupełnieniową liczby -35 musimy wyznaczyć reprezentację binarną liczby 2 8 - -35 = 2 8 35= 256-35 = 221. Zatem na podstawie algorytmu Euklidesa dla liczby 221 otrzymujemy -35=(11011101) u2 221 1 110 0 55 1 27 1 13 1 6 0 3 1 1 1 0

6 Reprezentacja uzupełnieniowa b) Wyznaczmy reprezentację liczby -1 na 8 bitach. 2 8 - -1 = 2 8 1= 256-1 = 255 255=(11111111) u2 =-1 Sprawdźmy, że -1+1=0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 + 1 nadmiar 1 0 0 0 0 0 0 0 0

7 Reprezentacja uzupełnieniowa c) Liczba 128 na 8 bitach x =128 x uz =2 8 128 = 128 =2 7, po zamianie na postać binarną: x uz =10000000 Ćw 6. Podać 8-bitową reprezentację uzupełnieniową liczb 122, 5 korzystając z definicji.

Reprezentacja uzupełnieniowa - metoda negacji bitów 8 Liczby ujemne możemy reprezentować binarnie tylko przy ustalonej z góry ilości bitów. Najprostszą metodą zamiany jest metoda "negacji bitów" Metoda negacji bitów (dla liczb ujemnych) 1) wyznaczyć n-bitową reprezentację binarną liczby x 2) w uzyskanej reprezentacji zamienić 0 na 1 i 1 na 0 3) do wyniku dodać 1

Reprezentacja uzupełnieniowa - metoda negacji bitów 9 Przykład Przedstawmy reprezentacje liczby -35 na 8 bitach. Najpierw tworzymy w znany już sposób reprezentacje binarną liczby -35 =35 = 100011 teraz uzupełniamy zerami od lewej tą reprezentację do 8-u bitów 00100011 35 1 następnie dokonujemy negacji bitów 0<->1 17 1 0 0 1 0 0 0 1 1 ~ 1 1 0 1 1 1 0 0 8 0 4 0 2 0 1 1 0

Reprezentacja uzupełnieniowa - metoda negacji bitów 10 do takiej reprezentacji dodajemy 1 : 1 1 0 1 1 1 0 0 + 1 1 1 0 1 1 1 0 1 w wyniku czego otrzymujemy reprezentacje uzupełnieniową liczby -35 na 8 bitach : -35 = 11011101 u2. Ćw 7.Wyznaczyć 16-bitowe reprezentacje uzupełnieniowe liczb -128, -1, -55, -44.

Reprezentacja uzupełnieniowa obliczanie wartości dziesiętnej 11 Zamiana liczb ujemnych zapisanych w reprezentacji uzupełnieniowej na liczbę dziesiętną Na podstawie definicji x uz =2 n - x Zatem dla liczb ujemnych x=-2 n +x uz. Ponieważ liczby ujemne na najstarszym bicie mają 1 i -2 n +2 n-1 =-2 n-1, to wartość liczby o reprezentacji uzupełnieniowej x uz= (c n 1, c n 2,..., c 1, c 0 ) u2 jest równa x = 2 n +1 2 n 1 +(c n-2 2 n-2 +...+ c 1 2 1 +c 0 ) = c n 1 2 n 1 +(c n-2 2 n-2 +...+ c 1 2 1 +c 0 ) Czyli najstarszy bit n-bitowej reprezentacji traktujemy jako -2 n-1, a pozostałe tradycyjnie jako wartości, kolejno 2 n-2,,2 0.

Wyznaczanie wartości dziesiętnej liczb w notacji uzupełnieniowej Przykład. Wyznaczyć wartość dziesiętną liczby 11011101uz -2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 1 1 0 1 1 1 0 1 11011101 uz = -1* 2 8-1 + 1*2 6 + 1*2 4 + 1*2 3 + 1*2 2 + 1= = -128 + (64+16+8+4+1) = -128 + 93 = -35 Podsumowując aby podać wartość dziesiętną liczby zapisanej w notacji uzupełnieniowej podnosimy 2 do potęgi o jeden niższej niż ilość bitów (8-1), tą wartość przemnażamy przez pierwszy bit od lewej ze znakiem minus. Z pozostałych bitów (w tym przypadku 1011101) odczytujemy wartość dziesiętna tak jak dla liczb dodatnich i wartość tą dodajemy do wcześniej otrzymanej potęgi dwójki. 12

Wyznaczanie wartości dziesiętnej liczb w notacji uzupełnieniowej Zauważmy, że jeżeli pierwszy bit od lewej jest równy 0, to mamy reprezentacje liczby dodatniej, w pozostałych przypadkach zawsze będzie to liczba ujemna. Przykład. Wyznaczyć wartość dziesiętną liczby 01011101uz -2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 0 1 0 1 1 1 0 1 01011101 uz = 0* 2 8-1 + 1*2 6 + 1*2 4 + 1*2 3 + 1*2 2 + 1= = 0 + (64+16+8+4+1) = 93 (liczba 8 bitowa) Ćw 7. Podać wartość dziesiętną liczby x uz =10011001 13

Algorytm Hornera dla reprezentacji uzupełnieniowej 14 Algorytm Hornera dla reprezentacji uzupełnieniowej (zamiana na wartość dziesiętną) Ponieważ z definicji wynika, że x = c n 1 2 n 1 +(c n-2 2 n-2 +...+ c 1 2 1 +c 0 ) zatem przed najstarszą cyfrą c n-1 stawiamy znak minus i postępujemy tak jak poprzednio w algorytmie Hornera: b n-1 = - c n-1 b k = b k+1.p + c k, (k = n-2,...,0)

Algorytm Hornera dla reprezentacji uzupełnieniowej 15 Przykład. Zapisać w postaci dziesiętnej liczbę 10111110 zapisaną w reprezentacji uzupełnieniowej korzystając z algorytmu Hornera. c 7 c 6 c 5 c 4 c 3 c 2 c1 c 0 1 0 1 1 1 1 1 0 p=2-1 -2-3 -5-9 -17-33 -66 Zatem ( 10111110) u2 =-66.

Schematy blokowe 16 Algorytm skończony ciąg jasno zdefiniowanych czynności, koniecznych do wykonania pewnego rodzaju zadań. Sposób postępowania prowadzący do rozwiązania problemu. Schematy blokowe są tzw. metajęzykiem. Oznacza to, że jest to język bardzo ogólny, służy do opisywania algorytmów w taki sposób, by na jego podstawie można było je zaimplementować w każdym języku. Częściami składowymi schematów blokowych są proste figury geometryczne, np. prostokąt, romb, koło, równoległobok itd... W tych figurach umieszczamy warunki oraz proste instrukcje, na przykład:

Schematy blokowe 17 przypisania(podstawienia) = porównania x == y (czy x jest równe y) x!= y (czy x jest różne od y) x > y (czy x jest większe od y) <, >=, <= instrukcje zawierające działania arytmetyczne: +, -, *, / (dla liczb całkowitych dzielenie / oznacza dzielenie całkowite, % oznacza resztę z dzielenia) wyrażenia zawierające operatory logiczne && (logiczne AND) oraz (logiczne OR)

Schematy blokowe 18 Poszczególne elementy schematu łączy się za pomocą strzałek. W większości przypadków blok ma jedną strzałkę wchodzącą i jedną wychodzącą, lecz są także wyjątki. Ta figura oznacza początek lub koniec algorytmu. W każdym algorytmie musi się znaleźć dokładnie jedna taka figura z napisem "Start" oznaczająca początek algorytmu oraz dokładnie jedna figura z napisem "Stop" lub "End " oznaczająca koniec algorytmu. Najczęściej popełnianym błędem w schematach blokowych jest umieszczanie kilku stanów końcowych, zależnych od sposobu zakończenia programu. Blok symbolizujący początek algorytmu ma dokładnie jedną strzałkę wychodzącą a blok symbolizujący koniec ma co najmniej jedną strzałkę wchodzącą.

Schematy blokowe 19 Jest to figura oznaczająca proces. W jej obrębie umieszczamy wszelkie obliczenia lub podstawienia. Proces ma dokładnie jedną strzałkę wchodzącą i dokładnie jedną strzałkę wychodzącą Romb symbolizuje blok decyzyjny. Umieszcza się w nim jakiś warunek (np. x>2). Z dwóch wybranych wierzchołków rombu wyprowadzamy dwie możliwe drogi: gdy warunek jest spełniony (strzałkę wychodzącą z tego wierzchołka należy opatrzyć etykietą "Tak" lub "true") oraz gdy warunek nie jest spełniony ("Nie" lub "false"). Każdy romb ma dokładnie jedną strzałkę wchodzącą oraz dokładnie dwie strzałki wychodzące.

Schematy blokowe 20 Prostokąt stosowany do wczytania danych. Figura ta ma dokładnie jedną strzałkę wchodzącą i jedną wychodzącą Prostokąt stosowany do wyświetlenia danych. Figura ta ma dokładnie jedną strzałkę wchodzącą i jedną wychodzącą. Ta figura symbolizuje proces, który został już kiedyś zdefiniowany. Można ją porównać do procedury, którą definiuje się raz w programie, by następnie móc ją wielokrotnie wywoływać. Warunkiem użycia jest więc wcześniejsze zdefiniowanie procesu. Podobnie jak w przypadku zwykłego procesu i tu mamy jedno wejście i jedno wyjście.

Schematy blokowe 21 Koło symbolizuje tzw. łącznik stronicowy. Może się zdarzyć, że chcemy "przeskoczyć" z jednego miejsca na kartce na inne (np. by nie krzyżować strzałek). Możemy w takim wypadku posłużyć się łącznikiem. Umieszczamy w jednym miejscu łącznik z określonym symbolem w środku (np. cyfrą, literą) i doprowadzamy do nie go strzałkę. Następnie w innym miejscu kartki umieszczamy drugi łącznik z takim samym symbolem w środku i wyprowadzamy z niego strzałkę. Łącznik jest często porównywany do przeskoku (z jednego miejsca na kartce do drugiego). Łączniki występują więc w parach, jeden ma tylko wejście a drugi wyjście.

Schematy blokowe 22 Istnieje wiele odmian, drobnych różnic w schematach blokowych. Np. operacje wejścia/wyjścia często są reprezentowane przez równoległobok. Inną formą zapisu algorytmów są schematy N-S (Schematy Nassi Schneidermana)

Przykład sprawdzenie czy x>y 23 Narysu schemat blokowy algorytmu, który pobiera od użytkownika dwie liczby a następnie sprawdza która z nich jest większa.