Utisci korisnika

Želeo bih da Vam se zahvalim na Vašoj brzoj pošiljci, sertifikatu i novom kursu, koji sam juče preuzeo putem Post-expresa. Još jedanput Vam se zahvaljujem na Vašoj profesionalnosti.…

Zaista sam prijatno iznenađena vašom brigom za korisnike, i zahvaljujem vam se na maksimalnoj podršci. Što se tiče vaših usluga sve je jasno, ja se uvijek vraćam i nastaviću…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

BAZA ZNANJA


Kurs: Strukture podataka i algoritamsko modelovanje

Modul: Tipovi i strukture podataka

Autor:

Naziv jedinice: Podatak i tipovi podataka


Materijali vezani uz ovu lekciju:

- Test podatak i tipovi podataka
- Podatak i tipovi podataka (PDF dokument)



Podatak

Pod podatkom se podrazumeva osnovni deo koji učestvuje u formiranju informacije. Obično je rezultat iskustva, posmatranja ili eksperimenta. Podaci mogu biti brojevi, reči, slike ili zvuk.

Sirovi podatak može biti bilo koji izlazni signal nekog uređaja koji konvertuje fizičke pakete u simbole, posmatrano u najširem smislu. Takav podatak dalje može da obradi čovek ili da se unese u računar radi dalje (složenije) obrade, čuvanja ili emitovanja drugom čoveku ili računaru. Sirovi podatak je relativan pojam jer je obrada podataka stepenast proces. Odnosno, ono što je obrađen podatak na jednom koraku, jeste sirov podatak za sledeći korak.

U zavisnosti od toga koju mašinu koristimo, reprezentacija podatka može biti različita. Za analogne računare podatak je predstavljao promenu napona, rastojanje dve tačke u prostoru ili bilo koja druga fizička veličina. Za digitalne računare podatak se predstavlja nizom brojevnih znakova 0 i 1 koji su predstavnici binarnog alfabeta, pomoću kojih se mogu predstaviti svi ostali znaci.

Računarski program se takođe može smatrati nekom vrstom kolekcije podataka koje se mogu interpretirati kao niz instrukcija. Neki programski jezici razlikuju podatke od programa, dok neki ne. Da bi se razlikovali, korisno je definisati takozvane metapodatke, odnosno ‘podatke o podacima '.

 

Važnost podatka i informacija

Termini, informacije i znanja često se koriste da bi se izrazili konceptualno preklopljeni  pojmovi. Glavna razlika je u nivou apstrakcije. Podatak je najniži nivo te apstrakcije, informacija je sledeći, dok je znanje najviši nivo te apstrakcije. Kao primer koji bi ovo ilustrovao imamo sledeće poređenje.  Mont Everest bi bio, uopšteno, podatak.  Knjiga koja bi opisivala njegove fizičke vrednosti (lokaciju, visinu, klimatske prilike...) bila bi informacija, dok bi izveštaj o najboljem i najsigurnijem načinu da se stigne na vrh bilo znanje.

 

Apstrakcije

U prethodnom pasusu su spomenute apstrakcije da bi se razlikovali nivoi složenosti podatka ili informacije. Osnovni problem u programiranju je složenost problema sa kojim se susrećemo. Isključujući trivijalne probleme, najčešći slučaj u praksi jeste da se ne može  ceo problem posmatrati i rešavati odjednom. Zato ljudi, programeri, pribegavaju različitim načinima rešavanja ovog problema. Složenost se rešava apstrakcijom, to jest kontrolisanim uvođenjem detalja. Detalji se zanemaruju na nekom nivou apstrakcije, kako bi se broj koncepata ili pojmova sa kojima se projektant susreće u radu sveo na razumnu meru, i time pojednostavio samo rešavanje problema. To i jeste osnovna ideja uvođenja apstrakcije. Postoje tri načina apstrakovanja: klasifikacija, agregacija i generalizacija.

 

Klasifikacija

Klasifikacija, kao način apstrakcije, podrazumeva klasifikovanje svih objekata istih osobina u jedan tip. Na primer, svi celi brojevi će biti klasifikovani kao jedan isti tip, poznat kao int (integer) ili ceo broj. Slično važi i za više nivoe apstrakcije. Recimo, ako bismo želeli da opišemo sve studente iz jedne obrazovne ustanove, kreiraćemo tip koji bi se zvao Student i koji bi u sebi sadržavao sve osobine vezane za jednog studenta:

Student atributi:

  • Ime, Prezime
  • brojIndeksa, brojLK
  • prosekOcena, polozeniIspiti

Student operacije:

  • poloziIspit
  • prijaviIspit
  • idiNaKonsultacije
  • upisiSemestar

Tip podatka se definiše kao skup objekata, odnosno, vrednosti i operacija koje se mogu primeniti nad njima. U nastavku imamo prikaz ove definicije za slučaj tipa celih brojeva. Kao što se vidi, postoji celobrojna vrednost Z, data u primeru, kao i skup operacija primenljiv nad celim brojevima: sabiranje, oduzimanje, množenje i celobrojno deljenje. U slučaju složenijeg tipa podataka, kao što je tip Student iz prethodnog primera, vidimo da postoje, korisnički definisane, operacije kao što su poloziIispit, prijaviIspit i slično.

Int Z

sabiranje (+), oduzamanje (-), množenje (*), celobrojno delenje (/)
Z = 3 + 45, Z = 67 - 7

Svi tipovi podataka se mogu posmatrati:

  • prema načinu implementacije
  • prema složenosti


Prema načinu implementacije

Tipovi prema načinu implementacije mogu biti:

  1. fizički tipovi
  2. jezički ili virtuelni tipovi 
  3. apstraktni tipovi podataka

1. Fizički tipovi su tipovi podržani od strane računara, odnosno hardvera, kao što su na primer celobrojni ili int, znakovni ili karakter i slično.

2. Jezički ili virtuelni tipovi su tipovi podataka koji su podržani od strane implementacionog jezika. Na primer, to bi bili niz, struktura, polje, unija, itd...

3. Apstraktni tipovi podataka, skraćeno ATP, su oni tipovi podataka koji predstavljaju proširenje skupa tipova programskog jezika. Već smo pominjali tip Student, pa to može biti i neki radnik i bilo šta drugo. Suština je da ti novi, apstraktni tipovi podataka olakšaju rešavanje konkretnog problema, a da ga ne moramo modelirati fizičkim tipovima podataka, već tipovima koji su intuitivno razumljiviji i koji bliže opisuju prirodu problema koji se rešava.

Prema složenosti

Tipovi prema složenosti se dele na:

  1. proste ili primitivne
  2. složene ili strukturne tipove.

Proste ili primitivne tipove karakteriše to da je njihova vrednost nedeljiva.

Složeni ili strukturni tipovi se dobijaju agregiranjem više drugih tipova, pa se kaže da je vrednost složena, u smislu da se sastoji od različitih vrednosti. Strukturni tipovi se negde još nazivaju i Strukture podataka.

 

Agregacija

Agregacija predstavlja agregiranje više tipova u jedan apstraktnije složeni tip.

Odnos objekata u strukturi može biti sledeći:

  • ne postoji uređenje -> kolekcija i skup
  • jedan prema jedan ili linearno uređenje -> linearna struktura
  • jedan prema M -> stablo
  • M prema M -> grafovi i mreže

Objekti u strukturi ne moraju biti istog tipa. Danas većina klasičnih programskih jezika podržava agregaciju.

  

Generalizacija

Uočavanjem zajedničkih osobina i operacija, tipovi se apstrakuju u generički apstraktniji tip. Obrnut postupak naziva se specijalizacija. Uzastopnom primenom generalizacije i specijalizacije dobija se hijerarhija tipova. Operacije i osobine se nasleđuju od nadtipa.

  

Generalizacija i specijalizacija

Dole vidimo jedan primer za generalizaciju i specijalizaciju. Operacije koje se izvršavaju nad različitim tipovima se nazivaju polimorfne (generičke) operacije. upisiSemestar je primer generičke operacije. Pristup u programiranju, koji koristi generalizaciju, se naziva objektno-orijentisano programiranje, a programski jezici koji podržavaju generalizaciju objektno-orijentisani jezici.

Primer generalizacije i specijalizacije:

  • 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

Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:2