150 likes | 373 Views
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,
E N D
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.
Sadržaj predmeta: STRUKTURE PODATAKA 1. Osnovni pojmovi 2. Elementarni podaci 3. Linearne strukture a) Vektori b) Matrice c) Povezani popisi d) Stogovi e) Redovi 4. Nelinearne strukture a) Stabla b) Grafovi ALGORITMI - oni koji koriste navedene strukture podataka - rekurzivne funkcije - posebno: sortiranje podataka
Osnovni pojmovi Algoritam (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: do{ S/= V[i++]; }while... Ponavljati.. ................ Sve dok.. Fizikalna Matemati-ALGO-StrukturaRačunalni stvarnost čki modelRITAM podatakaprogram
Elementarni podaci a) Znakovi b) Brojevi - cijeli - realni
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 č
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
Pozicioni brojni sustav 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.
Prikaz negativnih brojeva Komplement broja u pozicionom sustavu s bazom B definiran je kao: komp(N) = Bn N | Bn> 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
Primjer: algoritam komplementiranja 16-bitnog cijelog broja ZADANO: Niz V od 16 elemenata, elementi niza su 0 ili 1 TRAŽI SE: Promjeniti niz V tako da dobijemo dualni komplement Za svakii = 1 do 16 činiti Ako jeVi = 1 ondaVi = 0 U suprotnomVi = 1 i = 1 Ponavljati Ako jeVi = 1 ondaVi = 0 U suprotnomVi = 1 i = i +1 Sve dokjeVi-1 = 0
Realni brojevi u računalu (1/2) Karakteristika Mantisa 1.f: 11.f<2 31 30 29 28 27 26 25 24 23 22 21 .............. 2 1 0 1.f = 1+0.f = 1 +d222-1 +d212-2 +d202-3 + … +d12-22 +d02-23 Karakteristika: k=E+127 Eksponent: E=k127 Emin= 126 xmin 2128 1038 Emax= 127 xmax 2128 1038 Predznak P: 0 + 1 - x = ( 1)P2E 1.f
Realni brojevi u računalu (2/2) Specijalni slučajevi Predznak Karakteristika Mantisa Značenje 0 11111111 = 0 + 1 11111111 = 0 - 0 11111111 0 NaN 1 11111111 0 NaN 0 00000000 Broj se računa kao: 1 00000000 x = (-1)P0.f }
Pogreške u računanju s realnim brojevima u računalu (1/3) Primjer : Računanje broja p Ludolfovom metodom: Sn Sn+1 ln2 = 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 p = 2i-1 Si
Pogreške u računanju s realnim brojevima u računalu (2/3) T r=1 S Početno je (za upisani i opisani kvadrat) S= 2, T=2 Algoritam “LUDOLF” S= 2 , T=2 Učitatik/* broj ponavljanja */ Za svakii = 2 dokčiniti ps=2i1•S pt=2i1•T Ispisatips ipt S = S/ 2 + 4S2 T = 2T/( 4+T2+2)
Pogreške u računanju s realnim brojevima u računalu (3/3) Iter. Pi(pogr)Pi(upis) Pi(Opis) 2 2.82842712.8284271 4.0000000 3 3.0614674 3.0614674 3.3137085 4 3.12144523.1214452 3.1825979 5 3.13654853.1365485 3.1517248 6 3.14033133.1403313 3.1441183 7 3.14127733.1412773 3.1422236 8 3.14151383.1415138 3.1417503 9 3.14157303.1415730 3.1416321 10 3.14158773.1415876 3.1416025 11 3.14159153.1415915 3.1415951 12 3.14159253.1415925 3.1415932 13 3.14159273.1415927 3.1415927 ................................ 28 3.16227773.1415927 3.1415927 29 2.82842713.1415927 3.1415927 30 0.00000003.1415927 3.1415927 31 0.00000003.1415927 3.1415927