15
Strukture podataka i algoritmi (2+2) ra: : Informatika 2, Element, Zagreb, 1998. hutz: Theory and Problems of Data Structures, Mc G . : The Art of Computer Programming, Vol. 1. Fundame ithms, Vol. 2. Seminumerical Algorithms, on Wesley, 1997.

Strukture podataka i algoritmi (2+2)

  • Upload
    nanda

  • View
    83

  • Download
    0

Embed Size (px)

DESCRIPTION

Strukture podataka i algoritmi (2+2). Literatura: 1. Budin: Informatika 2, Element, Zagreb, 1998. 2. Lipschutz: Theory and Problems of Data Structures, Mc Graw Hill, 1986. 3. Knuth: The Art of Computer Programming, Vol. 1. Fundamental Algorithms, Vol. 2. Seminumerical Algorithms, - PowerPoint PPT Presentation

Citation preview

Page 1: Strukture podataka  i algoritmi (2+2)

Strukture podataka i algoritmi (2+2)

Literatura:

1. Budin: Informatika 2, Element, Zagreb, 1998.

2. Lipschutz: Theory and Problems of Data Structures, Mc Graw Hill, 1986.

3. Knuth: The Art of Computer Programming, Vol. 1. Fundamental Algorithms, Vol. 2. Seminumerical Algorithms, Addison Wesley, 1997.

Page 2: Strukture podataka  i algoritmi (2+2)

Sadržaj predmeta:

STRUKTURE PODATAKA1. Osnovni pojmovi2. Elementarni podaci3. Linearne strukture a) Vektori b) Matrice c) Povezani popisi d) Stogovi e) Redovi4. Nelinearne strukture a) Stabla b) Grafovi

ALGORITMI

- oni koji koriste navedene strukture podataka

- rekurzivne funkcije

- posebno: sortiranje podataka

Page 3: Strukture podataka  i algoritmi (2+2)

Osnovni pojmoviAlgoritam (po Muhammad ibn Musa al-Kwarizm): opis postupka koji nakon konačnog broja radnji daje suvisli rezultat .

Alogoritam je i dio posla u procesu koji od uočenog problema dovodi do rezultata (najčešće pomoću računalnog programa).

Slijed poslova:

Fizikalna Matemati- ALGO- Struktura Računalnistvarnost čki model RITAM podataka program

Pdp Ponavljati..................Sve dok..

do{ S/= V[i++];

}while...

Page 4: Strukture podataka  i algoritmi (2+2)

Elementarni podaci

a) Znakovib) Brojevi

- cijeli - realni

Page 5: Strukture podataka  i algoritmi (2+2)

Znakovni podaci

8 bitni ASCII kod definira 256 znaka (kontrolni i grafički - vidljivi)

Dec Hex Char 0 00 Nul 1 01 SOH .......................... 32 20 (blank) ............................. 65 41 A ............................ 97 61 a .............................159 9F č

Problem specijalnih “nacionalnih” znakova(u hrvatskom ČĆĐŠŽ).Rješenje: Kodna stranica(Code Page - CP)

Npr. CP 852Č 172 č 159 Ć 143 ć 134Đ 209 đ 208Š 230 š 231Ž 166 ž 167

Page 6: Strukture podataka  i algoritmi (2+2)

ASCII tablicaDec Hex Char Description000 00 ^@ NULL- Null001 01 ^A SOH - Start of Header002 02 ^B STX - Start of text003 03 ^C ETX - End of Text004 04 ^D EOT - End of Transm.005 05 ^E ENQ – Enquiry006 06 ^F ACK – Acknowledge007 07 ^G BEL – Bell008 08 ^H BS – Backspace009 09 ^I HT - Horizontal Tab010 0A ^J LF - Line Feed011 0B ^K VT - Vertical Tab012 0C ^L FF - Form Feed013 0D ^M CR - Carriage Return014 0E ^N SO - Shift Out015 0F ^O SI - Shift In016 10 ^P DLE - Data Link Escape017 11 ^Q DC1 – XON018 12 ^R DC2 - Not used019 13 ^S DC3 – XOFF020 14 ^T DC4 - Not used021 15 ^U NAK - Negative acknowl.022 16 ^V SYN - Synchronous Idle023 17 ^W ETB - End of Tran. Block024 18 ^X CAN - Cancel025 19 ^Y EM - End of Medium026 1A ^Z SUB - Substitute027 1B ^[ ESC - Escape028 1C ^\ FS - File Separator029 1D ^] GS - Group Separator030 1E ^^ RS - Record Separator031 1F ^_ DEL - Delete

Dec Hex Char096 60 `097 61 a098 62 b099 63 c100 64 d101 65 e102 66 f103 67 g104 68 h105 69 i106 6A j107 6B k108 6C l109 6D m110 6E n111 6F o112 70 p113 71 q114 72 r115 73 s116 74 t117 75 u118 76 v119 77 w120 78 x121 79 y122 7A z123 7B {124 7C |125 7D }126 7E ~127 7F ^?

Dec Hex Char032 20 SPC033 21 !034 22 "035 23 #036 24 $037 25 %038 26 &039 27 '040 28 (041 29 )042 2A *043 2B +044 2C ,045 2D -046 2E .047 2F /048 30 0049 31 1050 32 2051 33 3052 34 4053 35 5054 36 6055 37 7056 38 8057 39 9058 3A :059 3B ;060 3C <061 3D =062 3E >063 3F ?

Dec Hex Char064 40 @065 41 A066 42 B067 43 C068 44 D069 45 E070 46 F071 47 G072 48 H073 49 I074 4A J075 4B K076 4C L077 4D M078 4E N079 4F O080 50 P081 51 Q082 52 R083 53 S084 54 T085 55 U086 56 V087 57 W088 58 X089 59 Y090 5A Z091 5B [092 5C \093 5D ]094 5E ^095 5F _

Page 7: Strukture podataka  i algoritmi (2+2)

Cijeli brojevi

Cijeli brojevi u računalu Z

Dijelimo ih po broju bita na koliko ih prikazujemo u memoriji:• 8-bitni• 16-bitni• 32-bitni• 64-bitni

Mogu biti također• s predznakom • bez predznaka

Page 8: Strukture podataka  i algoritmi (2+2)

Definirano: Baza B i znamenke di s vrijednostima [0,B1]Broj N napisan nizom od n znamenaka dn-1,dn-2,... ,d2,d1,d0 ima vrijednost

N=

Kod za cijele brojeve definira pomoću bitova (znamenaka 0 i 1) pozitivne i negativne brojeve. Negativni brojevi definirani su preko dualnog komplementa.

1

0

n

i

ii Bd

Pozicioni brojni sustav

Page 9: Strukture podataka  i algoritmi (2+2)

Komplement broja u pozicionom sustavu s bazom B definiran je kao:

komp(N) = Bn N | B

n > N

Komplementiranje binarnog broja (B = 2) zove se dualno komplementiranje. Obavlja se u dva koraka:

1. Unarno kompementirati broj (01 i 10), tj. invertirati 2. Aritmetički dodati 1

Prikaz negativnih brojeva

Page 10: Strukture podataka  i algoritmi (2+2)

Za svaki i = 1 do 16 činiti Ako je Vi = 1 onda Vi = 0 U suprotnom Vi = 1i = 1Ponavljati Ako je Vi = 1 onda Vi = 0 U suprotnom Vi = 1 i = i +1Sve dok je Vi-1 = 0

Primjer: algoritam komplementiranja 16-bitnog cijelog broja

ZADANO: Niz V od 16 elemenata, elementi niza su 0 ili 1TRAŽI SE: Promjeniti niz V tako da dobijemo dualni

komplement

Page 11: Strukture podataka  i algoritmi (2+2)

31 30 29 28 27 26 25 24 23 22 21 .............. 2 1 0

Predznak P: 0 + 1 -

Karakteristika: k=E+127Eksponent: E=k127Emin= 126 xmin 2128 1038

Emax= 127 xmax 2128 1038

Mantisa 1.f: 11.f<2

x = ( 1)P2E 1.f

1.f = 1+0.f = 1 +d222-1

+d212-2

+d202-3

+ …

+d12-22

+d02-23

Karakteristika

Realni brojevi u računalu (1/2)

Page 12: Strukture podataka  i algoritmi (2+2)

Realni brojevi u računalu (2/2)

Specijalni slučajevi

Predznak Karakteristika Mantisa Značenje0 11111111 = 0 +1 11111111 = 0 - 0 11111111 0 NaN1 11111111 0 NaN0 00000000 Broj se računa kao:1 00000000 x = (-1)P0.f}

Page 13: Strukture podataka  i algoritmi (2+2)

Primjer : Računanje broja Ludolfovom metodom:Sn Sn+1 ln

2 = S2n+1(Sn/2)2

(1ln)2 = 1(Sn/2)2

Sn+1 = 2 4(Sn/2)2

Prilago-

đeno za Sn+1 = Sn/ 2 + 4Sn2

numerički račun:

ln

Za opisane mnogokutnike: Tn+1=2Tn/( 4+Tn2 +2)

Za i-tu iteraciju je = 2i-1 Si

Pogreške u računanju s realnim brojevima u računalu (1/3)

Page 14: Strukture podataka  i algoritmi (2+2)

Pogreške u računanju s realnim brojevima u računalu (2/3)

Početno je (za upisani i opisani kvadrat) S= 2, T=2

Algoritam “LUDOLF”

S= 2 , T=2Učitati k /* broj ponavljanja */Za svaki i = 2 do k činitis=2i1•S

t=2i1•T

Ispisati s i t

S = S/ 2 + 4S2

T = 2T/( 4+T2+2)

r=1

T

S

Page 15: Strukture podataka  i algoritmi (2+2)

Pogreške u računanju s realnim brojevima u računalu (3/3)

Iter. Pi(pogr) Pi(upis) Pi(Opis)

2 2.8284271 2.8284271 4.0000000 3 3.0614674 3.0614674 3.3137085 4 3.1214452 3.1214452 3.1825979 5 3.1365485 3.1365485 3.1517248 6 3.1403313 3.1403313 3.1441183 7 3.1412773 3.1412773 3.1422236 8 3.1415138 3.1415138 3.1417503 9 3.1415730 3.1415730 3.1416321 10 3.1415877 3.1415876 3.1416025 11 3.1415915 3.1415915 3.1415951 12 3.1415925 3.1415925 3.1415932 13 3.1415927 3.1415927 3.1415927 ................................ 28 3.1622777 3.1415927 3.1415927 29 2.8284271 3.1415927 3.1415927 30 0.0000000 3.1415927 3.1415927 31 0.0000000 3.1415927 3.1415927