1 / 16

Strukture podataka - Uvod

Strukture podataka - Uvod. Sini ša Nešković. APSTRAKCIJE. Osnovni problem u programiranju je slo ž enost problema. Ne mo ž e se ceo problem posmatrati i re š avati odjednom. Slo ž enost se re š ava apstrakcijama, kontrolisanim uvo đ enjem detalja.

zahir-ellis
Download Presentation

Strukture podataka - Uvod

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Strukture podataka - Uvod Siniša Nešković

  2. APSTRAKCIJE • Osnovni problem u programiranju je složenost problema. • Ne može se ceo problem posmatrati i rešavati odjednom. • Složenost se rešava apstrakcijama, kontrolisanim uvođenjem detalja. • Detalji se zanemaruju na nekom nivou apstrakcije kako bi se broj koncepata sa kojima se projektant suočava sveo na razumnu meru.

  3. APSTRAKCIJE • Apstrakcija na jednom nivou se implementira preko one na nižem. • Dobija se hijerarhija apstrakcija. • Na dnu hijerarhije su apstrakcije (koncepti) podržane od strane implementacionog sredstva (programskog jezika ili računara-hardvera).

  4. APSTRAKCIJE • Specifikacija je opis apstrakcije • Neformalne i formalne specifikacije • Specifikacije je formalna ako je data na jeziku čija je sintaksa i semantika formalno definisana • Implementacija (apstrakcije) je njena materijalizacija na implementacionom sredstvu • Postoje proceduralne apstrakcije i apstrakcije podataka

  5. Proceduralne apstrakcije • Predstavljaju proširenje skupa operacija implementacionog sredstva (jezika ili računara) • Realizuju se preko procedura i funkcija u programskom jeziku • Primer • sin(x), izračunajPlatuRadnika(r)

  6. Proceduralne apstrakcije • Dekompozicijom (top down) se svode na jednostavnije (na nižem nivou apstrakcije) proceduralne apstrakcije sve dok se ne dodje do primitivnih (operacija implementacionog sredstva) • Top-down stepwise refinement postupak razvoja programa • Šta je primitivni nivo zavisi od imlementacionog sredstva • Npr. sin(x) je primitivna operacije u višim programskim jezicima, a složena (apstraktna) u mašinskom jeziku

  7. Proceduralne apstrakcije – Primer procedure izracunajPlatuRadnika(r) begin bruto = izracunajBrutoPrimanja(r); odbici = izracunajOdbitkeRadnika(r); plata = bruto - odbici; end; procedure izracunajBrutoPrimanja(r) begin bruto = brojBodova * vrednostBoda; end; procedure izracunajOdbitkeRadnika(r) begin odbici = sindikalnaClanarina(r) + rataKredita(r); end;

  8. Apstrakcije podataka • Podatak je nosilac informacije. Informacija je protumačeni podatak. • Konkretna vrednost podatka se može tretirati kao predstava nekog objekta iz realnog sistema. • Npr: 5 -> predstavlja temperaturu (Pera, 143/85, 5) -> predstavlja studenta

  9. Apstrakcije podataka – Načini apstrahovanja • Postoji tri načina apstrahovanja: • Klasifikacija, • Agregacija i • Generalizacija

  10. Apstrakcije podataka – Klasifikacija • Svi objekti istih osobina se klasifikuju u jedan tip • npr. Ceo broj (int), Student • Tip podatka se definiše se kao skup objekata (vrednosti) i operacija nad njima. • Int : Z, {+, -, *, } • Student: S, {upisiSemstar, poloziIspit, …} • Tipovi se mogu posmatrati : • i) Prema načinu implementacije • ii) Prema složenosti

  11. Apstrakcije podataka – Klasifikacija • Tipovi prema načinu implementacije: • 1. Fizički tipovi • tipovi podržani od strane računara (hardvera); • npr: int, char • 2. Jezički (virtuelni) tipovi • tipovi podataka koji su podržani od strane implementacionog jezika; • npr: zapis, niz • 3. Apstraktni tipovi podataka (ATP) • proširenje skupa tipova implementacionog sredstva; • npr: student, radnik

  12. Apstrakcije podataka – Klasifikacija • Tipovi prema složenosti: • 1. Prosti (primitivni) tipovi • Vrednost prostog tipa je nedeljiva • npr: int -> 5 • Složeni (strukturni) tipovi • Dobijaju se agregiranjem više drugih tipova • Vrednost je složena, sastoji se od drugih vrednosti; • npr: zapis -> (Pera, 143/85, 5) • Strukturni tipovi se nazivaju i Strukture podataka

  13. Apstrakcije podataka – Agregacija • Dobija se agregiranjem više tipova u jedan apstraktniji složeni tip. • Odnos objekata u strukturi može biti: • - ne postoji uredjenje -> kolekcija i skup • - 1:1 (linearno uredjenje) -> linearna struktura • - 1:M -> stablo • - M:M -> grafovi i mreže • Objekti u strukturi ne moraju biti istog tipa • Većina klasičnih programskih jezika podržava agregaciju

  14. Apstrakcije podataka – Generalizacija i specijalizacija • Uočavanjem zajedničkih osobina i operacija tipovi se apstrahuju u generički apstraktniji tip • Obrnut postupak je specijalizacija • Uzastopnom primenom generalizacije i specijalizacije se dobija hirerarhija tipova • Operacije i osobine se nasleđuju od nadtipa

  15. Apstrakcije podataka – Generalizacija i specijalizacija • Primer • Osoba • Ime, Prezime, Datum rođenja • Radnik – podtip od Osoba • Organizacija, Staž, Plata • Student – podtip od Osoba • Fakultet, godina studija, prosek • Vanredni student– podtip od Student • Iznos uplate semestra

  16. Apstrakcije podataka – Generalizacija i specijalizacija • Operacije koje se izvršavaju nad različitim tipovima se nazivaju polimorfne (generičke) operacije • Npr. UpisiSemestar(s), s: Student ili S: VanredniStudent • Pristup u programiranju koji koristi generalizaciju se naziva objektno orijentisano programiranje, a programski jezici koji podržavaju generalizaciju objektno orijentisani jezici • Generazlizacija se delimično može implementirati i u klasičnim jezicima

More Related