Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2....

34
1 Reprezentacja uzupełnieniowa Reprezentacja zmiennoprzecinkowa Schematy blokowe 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. Wstęp do informatyki- wykład 2

Transcript of Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2....

Page 1: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

1

Reprezentacja uzupełnieniowaReprezentacja zmiennoprzecinkowaSchematy blokowe

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.

Wstęp do informatyki- wykład 2

Page 2: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

2

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 xuz = 2n-|x|

(x)2 dla 0 <= x <= 2n-1 − 1

(x)u2 =

(2n − |x|)2 dla −2n-1 <= x < 0

W ten sposób po prawej stronie definicji mamy reprezentacje liczb nieujemnych, które umiemy już liczyć.

Page 3: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

3

Reprezentacja uzupełnieniowa

b) Wyznaczmy reprezentację liczby -1 na 8 bitach.

28 - |-1|= 28 – 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

Page 4: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

4

Reprezentacja uzupełnieniowa

c) Liczba –128 na 8 bitach

|x|=128

xuz=28–128 = 128 =27, po zamianie na postać binarną:

xuz=10000000

Ćw 6. Podać 8-bitową reprezentację uzupełnieniową liczb –122, –5 korzystając z

definicji.

Page 5: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

5

Reprezentacja uzupełnieniowa - metoda negacji bitów

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

Page 6: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

6

Reprezentacja uzupełnieniowa - metoda negacji bitów

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

● następnie dokonujemy negacji bitów 0<->1

35 1

17 1

8 0

4 0

2 0

1 1

0

0 0 1 0 0 0 1 1

~ 1 1 0 1 1 1 0 0

Page 7: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

7

Reprezentacja uzupełnieniowa - metoda negacji bitów

● do takiej reprezentacji dodajemy 1 :

w wyniku czego otrzymujemy reprezentacje uzupełnieniową liczby -35 na 8 bitach : -35 = 11011101u2.

Ćw 7.Wyznaczyć 16-bitowe reprezentacje uzupełnieniowe liczb -128, -1, -55, -44.

1 1 0 1 1 1 0 0+ 1

1 1 0 1 1 1 0 1

Page 8: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

8

Reprezentacja uzupełnieniowa – obliczanie wartości dziesiętnej

Zamiana liczb ujemnych zapisanych w reprezentacji uzupełnieniowej na liczbę dziesiętną

Na podstawie definicji xuz=2n-|x|

Zatem dla liczb ujemnych x=-2n+xuz. Ponieważ liczby ujemne na najstarszym bicie mają 1 i -2n+2n-1 =-2n-1, to wartość liczby o reprezentacji uzupełnieniowej xuz=(cn−1, cn−2, . . . , c1, c0)u2 jest równa

x =− 2n +1· 2n−1 +(cn-2 · 2n-2 +...+ c1 · 21 +c0 )

=− cn−1 · 2n−1 +(cn-2 · 2n-2 +...+ c1 · 21 +c0 )

Czyli najstarszy bit n-bitowej reprezentacji traktujemy jako -2n-1, a pozostałe tradycyjnie jako wartości, kolejno 2n-2,…,20.

Page 9: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

9

Wyznaczanie wartości dziesiętnej liczb w notacji uzupełnieniowej

Przykład. Wyznaczyć wartość dziesiętną liczby 11011101uz

11011101uz = -28-1*1 + 1*26 + 1*24 + 1*23 + 1*22 + 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.

-27 26 25 24 23 22 21 20

1 1 0 1 1 1 0 1

Page 10: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

10

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

01011101uz

= 0* 28-1 + 1*26 + 1*24 + 1*23 + 1*22 + 1== 0 + (64+16+8+4+1) = 93 (liczba 8 bitowa)

Ćw 7. Podać wartość dziesiętną liczby xuz=10011001

-27 26 25 24 23 22 21 20

0 1 0 1 1 1 0 1

Page 11: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

11

Algorytm Hornera dla reprezentacji uzupełnieniowej

Algorytm Hornera dla reprezentacji uzupełnieniowej (zamiana na wartość dziesiętną) Ponieważ z definicji wynika, że

x =− cn−1 · 2n−1 +(cn-2 · 2n-2 +...+ c1 · 21 +c0 )

zatem przed najstarszą cyfrą cn-1 stawiamy znak minus i postępujemy tak jak poprzednio w algorytmie Hornera:

bn-1 = - cn-1

bk = bk+1.p + ck, (k = n-2,...,0)

Page 12: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

12

Algorytm Hornera dla reprezentacji uzupełnieniowej

Przykład. Zapisać w postaci dziesiętnej liczbę 10111110 zapisaną w reprezentacji uzupełnieniowej korzystając z algorytmu Hornera.

Zatem ( 10111110)u2=-66.

c7

c6

c5

c4

c3

c2 c1 c

0

1 0 1 1 1 1 1 0

p=2 -1 -2 -3 -5 -9 -17 -33 -66

Page 13: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

13

Reprezentacja liczb rzeczywistych – stałopozycyjna

Ułamek to liczba postaci 0.c–1c–2...c–k

Zamiana ułamka dziesiętnego na binarny polega na mnożeniu liczby przez 2i wypisywaniu kolejnych cyfr przed kropką, tj.

ułamek mnożymy przez 2,● jeżeli otrzymujemy liczbę mniejsza od 1, to po prawej

stronie piszemy 0, a wynik przepisujemy pod spód,

● jeżeli wynik jest większy od 1 to po prawej stronie piszemy jeden, a część ułamkową z wyniku przepisujemy na dół,

● jeżeli wynik jest równy 1 to jedynkę przepisujemy po prawej stronie i kończymy procedurę przeliczania.

Page 14: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

14

Reprezentacja liczb rzeczywistych – stałopozycyjna

Przykład Przedstawmy reprezentacje liczby 0,125 =1/8

0.125 0 bo 0.125*2=0.25

0.25 0 bo 0.25*2=0.5

0.5 1 bo 0.5*2=1.0 1

0 STOP

Aby przedstawić reprezentację liczby rzeczywistej piszemy po 0. wszystkie bity od góry do dołu.

Zatem 0.125 = (0.001)2

20 . 2-1 2-2 2-3

0 . 0 0 1

Page 15: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

15

Zapis ułamków w systemie binarnym

Przykład Przedstawmy reprezentacje liczby 0,3

0.3 00.6 1 0.2 00.4 00.8 10.6 10.2 0

Stąd 0.3 = (0.0100110...)2

Ponadto zauważmy, że rozwinięcie ułamka 0,3 jest okresowe:

0.3 = 0.0(1001)2

Page 16: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

16

Zapis ułamków w systemie binarnym

Zatem możemy dostać rozwinięcie skończone np. 0.25 = (0.01)2; nieskończone np. 0.137 lub okresowe np. 0.3 = 0.0(1001)2

Obliczanie wartości dziesiętnej ułamków binarnych

Zapisać w postaci ułamka zwykłego 0.110

(0.110)2 = 1*2–1 + 1*2–2 + 0*2–3 = 0.5 + 0.25 + 0 = 0.75

20 . 2-1 2-2 2-3

0 . 1 1 0

Page 17: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

17

Zaokrąglenie ułamków

Jeżeli chcemy zaokrąglić ułamek na k-tej pozycji, to patrzymy się na k+1 cyfrę i jeśli jest ona zerem, to po prostu cały ogon odrzucamy (zaokrąglenie w dół), a jeśli jest jedynką, to dodajemy ją do uciętego na k-tym miejscu przybliżenia (zaokrąglenie w górę)

Przykład. Zaokrąglić ułamek 1/10 do czterech miejsc po przecinku

Wiemy, że 1/10=0.0(0011)

Zapisujemy ułamek z dokładnością do 5 cyfr po przecinku 0.00011 i dodajemy 1.

0.00011+ 10.00100

Następnie obcinamy do 4-ch miejsc zatem 1/10 = 0.0010 z dokładnością do 4-ch miejsc po przecinku.

Page 18: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

18

Liczby zmiennoprzecinkowe1 (ang. floating point numbers)

Zapis dużych liczb (lub bardzo małych) w notacji stałopozycyjnej jest niewygodny, gdyż wymaga sporej ilości cyfr. Dlatego liczby takie zapisuje się w sposób następujący: 3,25 × 1033

Zapis składa się z trzech liczb:

m - mantysy, u nas równej 3,25

p - podstawy systemu, u nas równej 10

c - cechy, u nas równej 33

Wartość liczby zmiennoprzecinkowej obliczamy zgodnie ze wzorem:

L = m × pc

Wzór pozwala obliczyć wartość liczby zmiennoprzecinkowej zapisanej w dowolnym systemie pozycyjnym, a nie tylko dziesiętnym.1 Za https://eduinf.waw.pl

Page 19: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

19

Postać znormalizowana liczby zmiennoprzecinkowej

Zapis zmiennoprzecinkowy – określenie to wynika z faktu iż położenie przecinka w mantysie nie jest ustalone i może się dowolnie zmieniać. Poniższe zapisy oznaczają tę samą liczbę:

325 × 1020 = 32,5 × 1021 = 3,25 × 1022 = 0,325 × 1023 = 0,0325 × 1024, itd.

Oczywiście zmiana położenia przecinka w mantysie wpływa na wartość cechy liczby.

Przesunięcie przecinka o 1 pozycję w lewo wymaga zwiększenia cechy o 1, a przesunięcie przecinka o 1 pozycję w prawo wymaga zmniejszenia cechy o 1.

Ponieważ liczbę zmiennoprzecinkową można zapisywać w różny sposób, przyjęto tzw. postać znormalizowaną.

Znormalizowana liczba zmiennoprzecinkowa to taka, w której mantysa spełnia nierówność: p > | m | ≥ 1

Page 20: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

20

Definicja formatu zmiennoprzecinkowego IEEE 754

Standard IEEE 754 definiuje dwa rodzaje liczb zmiennoprzecinkowych: 32-bitowe (pojedynczej precyzji - ang. single precision) oraz 64-bitowe (podwójnej precyzji - ang. double precision).

Kod binarny liczby zmiennoprzecinkowej podzielony jest na trzy pola zawierające komponenty zapisu zmiennoprzecinkowego:

Format zapisu zmiennoprzecinkowego IEEE 754

Page 21: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

21

Definicja formatu zmiennoprzecinkowego IEEE 754

● Bit znaku: pierwszy bit w zapisie liczby zwany jest bitem znaku. Stan 0 oznacza liczbę dodatnią, stan 1 liczbę ujemną. Aby zatem zmienić znak na przeciwny, wystarczy dokonać negacji tego bitu.

● Bity kodu cechy Liczby zmiennoprzecinkowe IEEE 754 zapisują cechę w kodzie z nadmiarem ( wartość binarna słowa kodowego jest równa kodowanej liczbie pomniejszonej o pewną stałą zwaną nadmiarem (ang. excess lub bias

● W pojedynczej precyzji cecha posiada 8 bitów, a nadmiar wynosi 127. Zatem w polu cechy można zapisać wartości od -127 (wszystkie bity b30...b23 wyzerowane) do 128 (wszystkie bity b30...b23 ustawione na 1)

● W podwójnej precyzji cecha zbudowana jest z 11 bitów, nadmiar wynosi 1023. Najmniejszą wartością będzie -1023, a największą 1024. Wzrost ilości bitów cech liczb zmiennoprzecinkowych wpływa a ich zakres.

Page 22: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

22

Definicja formatu zmiennoprzecinkowego IEEE 754

● Bity ułamkowe mantysy:W pojedynczej precyzji mantysa posiada 23 bity, a w podwójnej precyzji 52 bity. Wzrost liczby bitów mantys liczb zmiennoprzecinkowych wpływa na ich precyzję, czyli dokładność odwzorowywania liczb rzeczywistych.

● Mantysy są zapisywane w stałoprzecinkowym kodzie U1. Ponieważ mantysa jest prawie zawsze znormalizowana, to jej wartość liczbowa zawiera się pomiędzy 1 a 2. Wynika stąd, iż pierwszy bit całkowity mantysy zawsze wynosi 1. Skoro tak, to nie musi on być zapamiętywany - będzie automatycznie odtwarzany w czasie wykonywania obliczeń na liczbie zmiennoprzecinkowej. W polu mantysy zapamiętujemy tylko bity ułamkowe. Dzięki tej prostej sztuczce zyskujemy jeden dodatkowy bit mantysy - zwiększamy jej rozdzielczość do 24 bitów dla formatu pojedynczej precyzji i do 53 bitów dla formatu podwójnej precyzji.

Page 23: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

23

Wartość liczby IEEE 754

● Wartość liczby IEEE 754 obliczamy wg poznanych zasad.Z kodu wydzielamy poszczególne pola znaku z, cechy c i mantysy m.

● Odczytana mantysa zawiera tylko bity ułamkowe. Dodajemy zatem na początku 01 i przecinek. W wyniku otrzymujemy dodatnią liczbę stałoprzecinkową w kodzie U1.

Wartości wag pozycji w zapisie U1

waga -2n-1+1 2n-2 2n-3 22 21 20

cyfra bn-1 bn-2 bn-3 ... b2 b1 b0

bn-1bn-2...1b0 (U1) = bn-1(-2n-1+1) + bn-22n-2 + ... + b121 + b020

● Teraz obliczamy wartość cechy i mantysy, a następnie wyliczamy wartość liczby wg wzoru:

L(IEEE 754) = (-1)zm2c

Page 24: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

24

Zakres liczb IEEE 754

● Zakres liczb zmiennoprzecinkowych IEEE 754 w pojedynczej precyzji

Z(IEEE 754) = - 3,4 × 1038 ... 3,4 × 1038

● Zakres liczb zmiennoprzecinkowych IEEE 754 w podwójnej precyzji

Z(IEEE 754) = - 1,8 × 10308 ... 1,8 × 10308

● Pojedyncza precyzja

min(IEEE 754) = ±1,4 × 10-45

● Podwójna precyzja

min(IEEE 754) = ±4,9 × 10-324

❑∪❑

Page 25: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

25

Precyzja liczb IEEE 754● Oprócz zakresu, na który wpływa głównie długość formatu

bitowego cechy, dla liczb zmiennoprzecinkowych nie mniej ważnym parametrem jest precyzja zapisu, czyli z jaką dokładnością dana liczba może być reprezentowana.

● Precyzję podaje się najczęściej jako przybliżoną ilość dziesiętnych cyfr znaczących.

● Precyzję zapisu liczby zawsze wyznacza ilość dostępnych bitów mantysy. Jedną cyfrę dziesiętną koduje (statystycznie) log210 bitów mantysy.

● Liczby pojedynczej precyzji IEEE 754 oferują precyzję 7 cyfr dziesiętnych. Zatem nadają się one do bardzo prostych rachunków, gdzie nie wymagana jest zbyt duża dokładność.

● Liczby podwójnej precyzji IEEE 754 oferują precyzję 15...16 cyfr dziesiętnych. Zatem nadają się do dokładnych obliczeń naukowych i inżynierskich. Stosuj je zawsze tam, gdzie wymagana jest duża dokładność końcowych wyników.

Page 26: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

26

Schematy blokowe

● 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:

Page 27: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

27

Schematy blokowe

● 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)

Page 28: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

28

Schematy blokowe

● 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ą.

Page 29: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

29

Schematy blokowe

● 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.

Page 30: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

30

Schematy blokowe

● 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.

Page 31: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

31

Schematy blokowe

● 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.

Page 32: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

32

Schematy blokowe

● 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)

Page 33: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

33

Przykład – sprawdzenie czy x>y, czy y>x, czy x==y?START

WE: x, y

x>ytak

WY: x jest większe od y

nie

x<ytak

WY: y jest większe od x

WY: x jest równe y

nie

STOP

Page 34: Wstęp do informatyki- wykład 2 - KUL3].pdf · 2018. 10. 21. · Wstęp do informatyki- wykład 2. 2 Reprezentacja uzupełnieniowa Reprezentacja uzupełnieniowa służy do zapisu

34

Przykład – f-cja liniowa f(x)=ax+b- miejsce zerowe

● Dane wejściowe: współczynniki a,b funkcji liniowej f(x)=ax+b

● Dane wyjściowe: miejsce zerowe f(x0)=ax0+b=0 lub informacja iż to nie jest funkcja liniowa(a==0)

● Rozwiązanie: Jeśli a!=0 to x0=-b/a, jeśli a==0 to nie jest to funkcja liniowa ( jest to funkcja stała f(x)=b)

● Uwagi: Ponieważ współczynnik a mógł być uzyskany na drodze wcześniejszych obliczeń numerycznych i może zawierać błędy zaokrągleń, to przy porównaniu z zerem musimy zastosować podane we wstępie zasady. Otóż zamiast zwykłego sprawdzania, czy: a==0zastosujemy test: |a|<εgdzie ε jest wybraną dokładnością przyrównania do 0, np.ε=0.0000000001 powinno być w większości typowych przypadków wystarczająco dokładne