programiranje teorija

17
1. Rješavanje problema primjenom računara prolazi kroz tri faze: Analiza problema; Razvoj algoritma za rješavanje problema; Transformacija algoritma u računarski program (programiranje). 2. Analiza problema je najkritičnija faza u rješavanju problema. Cilj ove faze je da pružiti preciznu definiciju i opis problema, specifikaciju ulaznih podataka, specifikaciju izlaznih podataka (rezultate koji se očekuju), kao i postupak da se do takvih rezultata dođe. Problemi koji se mogu jednostavno izraziti matematičkim jezikom mogu se i precizno definisati i opisati pri rješavanju na računaru. Za klasu nematematičkih problema to nije tačno. Za fazu analize problema postoji više različitih, manje ili više formalizovanih, postupaka. Ne ulazeći u suštinu metoda, u najširem smislu, one obuhvataju: 1. uočavanje (identifikaciju) problema, 2. definisanje (formulisanje) ciljeva rješenja, 3. definisanje sistema koji omogućuje ostvarivanje definisanih ciljeva, 4. analizu definisanog sistema (studije izvodljivosti - tehničke i ekonomske), 5. projektovanje novog sistema, 6. uvođenje i eksploataciju projektovanog sistema 4. Karakteristične osobine za algoritam jesu: 1. broj operacija koje se moraju izvršiti za rješenje konkretnog problema nije unaprijed poznat, 2. procedura određena algoritmom je deterministički proces koji se može ponavljati bilo kad i od stranebilo koga; ona mora biti data u obliku konačnog broja instrukcija koje tačno definišu operacije broja instrukcija koje tačno definišu operacije koje se izvršavaju u svakoj fazi procedure, 3. instrukcije koje čine algoritam definišu proceduru koja se može izvršiti na odgovarajućem skupu podatakai koja u svakom slučaju dovodi do korektnog rezultata. 5. Važne osobine algoritma jesu:

Upload: marija-stajic

Post on 01-Dec-2015

190 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: programiranje teorija

1. Rješavanje problema primjenom računara prolazi kroz tri faze: Analiza problema; Razvoj algoritma za rješavanje problema; Transformacija algoritma u računarski program (programiranje).

2. Analiza problema je najkritičnija faza u rješavanju problema. Cilj ove faze je da pružiti preciznu definiciju i opis problema, specifikaciju ulaznih podataka, specifikaciju izlaznih podataka (rezultate koji se očekuju), kao i postupak da se do takvih rezultata dođe. Problemi koji se mogu jednostavno izraziti matematičkim jezikom mogu se i precizno definisati i opisati pri rješavanju na računaru. Za klasu nematematičkih problema to nije tačno. Za fazu analize problema postoji više različitih, manje ili više formalizovanih, postupaka. Ne ulazeći u suštinu metoda, u najširem smislu, one obuhvataju:1. uočavanje (identifikaciju) problema,2. definisanje (formulisanje) ciljeva rješenja,3. definisanje sistema koji omogućuje ostvarivanje definisanih ciljeva,4. analizu definisanog sistema (studije izvodljivosti - tehničke i ekonomske),5. projektovanje novog sistema,6. uvođenje i eksploataciju projektovanog sistema

4. Karakteristične osobine za algoritam jesu:1. broj operacija koje se moraju izvršiti za rješenje konkretnog problema nije unaprijed poznat,2. procedura određena algoritmom je deterministički proces koji se može ponavljati bilo kad i od stranebilo koga; ona mora biti data u obliku konačnog broja instrukcija koje tačno definišu operacije broja instrukcija koje tačno definišu operacije koje se izvršavaju u svakoj fazi procedure,3. instrukcije koje čine algoritam definišu proceduru koja se može izvršiti na odgovarajućem skupu podatakai koja u svakom slučaju dovodi do korektnog rezultata.

5. Važne osobine algoritma jesu:KonačnostAlgoritam se mora okončati poslije konačnog broja koraka.DefinisanostSvaki korak algoritma mora biti precizno definisan (operacije koje treba da se izvedu moraju biti rigorozno specificirane, bez dvosmislenosti).UlazOznačava ulazne podatke u algoritam. Za izvođenje pojedinog algoritma može biti potrebno više ulaznih podataka, ali i nijedan. Ulazni podaci su veličine iz datog skupa i predstavljaju početne vrijednosti za početak izvođenja algoritma.Izlaz

Page 2: programiranje teorija

Označava izlazne podatke kao rezultat primjene algoritma na ulazne podatke. Svaki algoritam posjeduje jednu ili više izlaznih veličina.EfikasnostKriteriji efikasnosti mogu biti vrijeme (računara ili čovjeka) okončanja algoritma, prilagođenost algoritma za realizaciju na računaru, jednostavnost, elegancija itd.

6. Tehnike prikazivanja algoritama: Prirodni jezik (koračna forma) Dijagrami toka (Flowcharts) Pseudo kôd (Pseudo cod) Nasi-Šnajderman dijagrami (Nassi-Sneiderman – Nasi-Šnajderman dijagrami (Nassi-Sneiderman –N/S diagrams) Džeksonovi strukturalni dijagrami (Jackson Structured Diagrams – JSD)

7. Prirodni jezikOvom tehnikom se algoritam prikazuje kao niz brojem označenih koraka. Svaki korak sadrži jednu ili više rečenica prirodnog Svaki korak sadrži jednu ili više rečenica prirodnog jezika (npr. srpskog) kojim se opisuje proces (operacija) koju u tom koraku treba izvršiti.

8. Blok dijagrami algoritmaBlok dijagrami su grafička predstava algoritama sa ciljem njihove specifikacije pomoću skupa grafičkih simbola koji označavaju pojedine operacije u algoritmu označavaju pojedine operacije u algoritmu i skupa pravila za povezivanje grafičkih simbola.

9. Pseudo kôdOva tehnika je veoma slična prirodnom jeziku s tom razlikom što se umjesto prirodnog jezika koristi neki drugi jezik (sličan prirodnom) koji ima precizniju sintaksu, koristi manji broj unaprijed zadatih riječi, pa je time lakše definisati i semantiku (značenje) rečenica koje se formiraju u tom jeziku.

10. Nasi-Šnajdermanovi dijagrami (N/S dijagrami)I kod Nasi-Šnajdermanovih algoritama se koriste grafički simboli kao i kod dijagrama toka, ali se ovdje čitav algoritam stavlja u jedan jedini pravougaonik (boks). Simboli (koraci algoritma) se izvršavaju počev od prvog simbola na vrhu boksa i nastavljaju redom do poslednjeg simbola na vrhu boksa i nastavljaju redom do poslednjeg na prikazanog dnu boksa. Svaki simbol sadrži ili prirodnimjezikom ili pseudokodom prikazane naredbe (procese).

11. Džeksonovi strukturalni dijagrami (Jackson Structured Diagrams) – JSD dijagrami

Page 3: programiranje teorija

Džeksonovi dijagrami slijede ideju o podjeli problema na niz potproblema manje složenosti (strategija poznata kao “devide and conquer” – podijeli pa vladaj). Ali oni takođe zadovoljavaju i teoremu o programskoj strukturi, to jest JSD dijagrami imaju grafički simbol za sve tri osnovne jest JSD dijagrami imaju grafički simbol za sve tri osnovne komponente algoritma – sekvencu, odluku i repeticiju.

12. Simbol odvijanja toka algoritmaSimbol odvijanja toka algoritma služi za označavanje logičkog toka odvijanja algoritma povezujući blokove koji predstavljaju algoritamske korake. Predstavljen je strelicama. Normalan smjer strelica je sa lijeva na desno i odozgo Normalan smjer strelica je sa lijeva na desno i odozgo na dole. I ostali smjerovi su dozvoljeni. Strelice se ne smiju sjeći, a ako je to neizbježno, koriste se konektori.

14. Simbol ulaza/izlazaSimbol ulaza/izlaza se koristi za predstavljanje ulazno/izlaznih operacija koje uvode podatke u obradu i/ili ispisuju rezultate obrade.

15. Simbol obradeSimbol obrade se koristi za predstavljanje svih operacija u kojima dolazi do transformacije informacionih struktura najčešće aritmetičkim, logičkim ili operacijama prenosa informacionog sadržaja.

16. Simbol odluke – aritmerički testSimbol odluke (testa) služi za označavanje operacija odlučivanja ili grananja toka izvođenja algoritma, a prema nekom kriterijumu odlučivanja.Razlikuju se dvije vrste testa:• aritmetički i• logički. Kod aritmetičkog testa iz bloka odlučivanja postoje dva ili tri izlaza - ilustrovano je na narednoj slici. Dvotačka ( : ) se koristi za označavanje poređenja aritmetičkih izraza E1i E2Odvojanje algoritma se nastavlja: lijevom granom, ako je ispunjen uslov E1> E2 desnom granom, ako je ispunjen uslov E1< E2 donjom granom, ako je ispunjen uslov E1= E2Znaci >, < i = se mogu kombinovati po dva.

17. Simbol odluke – logički test

Page 4: programiranje teorija

Kod logičkog testa iz bloka odlučivanja postoje dva izlaza (slika desno). Nailaskom na logički test algoritam se, u zavisnosti od logičkog izraza L, odvija jednom od grana: ukoliko je logički izraz istinit DA ukoliko je logički izraz istinit algoritam se odvija granom označenom sa DA ili ukoliko je logički izraz neistinit algoritam se odvija granom označenom sa NE.

18. Simbol povezivanja (konektor)Simbol povezivanja služi za povezivanje dijelova algoritma kada se: za blok dijagrame koristi više stranica te nije moguće koristiti strelice koje ukazuju na tok odvijanja algoritma ili dovodi do ukrštanja strelica.Unutar konektora se upisuje oznaka (broj ili slovo) koja identifikuje konektor. Konektori sa istom oznakom predstavljaju tačke u algoritmu koje se poklapaju (može ih biti dvije ili više).

19. Simbol podalgoritmaSimbol podalgoritma se koristi da označi više algoritamskih koraka pogodno grupisanih u cjelinu i koju nije potrebno dalje razlagati u detalje. Motivacija za korišćenje podalgoritama: ponavljajuće dijelove grupisati u podalgoritam, dekompozicija problema na manje.

20. Simbol komentaraSimbol komentara omogućava upisivanje komentara ili bližeg opisa karakterističnih koraka algoritma. Stavlja se pored toka odvijanja algoritma.

21. ProgramiranjeNakon analize problema i razvoja odgovarajućeg algoritma za rješavanje problema slijedi transformacija algoritma u računarski program, odnosno implementacija algoritma na računaru.Suština programiranja je kodiranje (prevođenje) algoritma (ili računarskih metoda) na određeni programski jezik.

22. ProgramProgram se može definisati kao niz naredbi (instrukcija) pisanih u određenom programskom jeziku (izvornom jeziku) koji posjeduje implicitan ili eksplicitan redoslijed izvršavanja na računaru.

23. Programski jezici:• Programski jezik je skup naredbi zaizvršavanje računarskih zadataka.• Predstavlja skup riječi i skup pravila na • Predstavlja skup riječi i skup pravila na osnovu kojih se piše program.• Razvojni ciklus programa skup pravila na kojima se zasniva razvoj softvera.

Page 5: programiranje teorija

24. Razvoj programskih jezika• Programski jezici su podijeljeni po generacijama• Jezici najnižeg nivoa su najstariji• Postoji pet generacija programskih jezika:– Mašinski jezici– Asemblerski jezici– Proceduralni jezici– Problem-orijentisani jezici– Prirodni jezici

25. Mašinski i asemblerski jezici.Jezici prve generacije• Mašinski jezici:– Sastoje se od binarnihbrojeva (0 i 1)– Nije potrebno prevođenje – Nije potrebno prevođenje– Vezan je za konkretanračunar (mašinu)• Svaka familija procesoraima svoj (poseban) mašinski jezik.

Jezici druge generacije• Asemblerski jezici:– Nadogradnja mašinskih jezika– Niži programski jezik– Koristi kratke slovne zamjene za programske naredbe.• Ove slovne zamjene senazivaju mnemonici– Program se prvo piše kaosource code (tekstualni fajl),a potom se prevodi u mašinski jezik.

26. Jezici treće generacije• Proceduralni jezici:– Jezici visokog nivoa– Kreiranje programa na visokom nivouapstrakcije– Lakši za čitanje, pisanje i prepravke odmašinskih i asemblerskih jezika– Koriste compiler ili interpreter za prevod koda• Fortran i COBOL su jezici treće generacije• Kompajler je program koji prevodi kôd (source code) u objektni kôd.• Interpreter prevodi po jednu liniju kôda i odmah je izvršava.

27. Jezici četvrte generacije• Jezici četvrte generacije obuhvataju:– Report generators• Jezici za formiranje (štampanje) izvještaja iz baze podataka – Query languages• Jezici za formiranje upita kod baza podataka

Page 6: programiranje teorija

30 . Razvojni ciklus programa• Plansko rješavanje problema programiranja i podjela na značajne cjeline• Šest faza:1. Definisanje problema2. Dizajniranje programa3. Pisanje koda (Coding)4. Testiranje i debagovanje5. Formalizovanje rješenja6. Implementacija i praćenje rada programa

31. Faza 1: Definisanje problema• Prvi korak• Sistem analitičari formiraju zahtjeve i dostavljaju programeru• Zahtjevi:– Ulazni podaci– Obrada– Izlaz– Korisnički interfejs

32. Faza 2: Dizajniranje programa i Faza 3: Pisanje kôdaFaza 2: Dizajniranje programa• Odgovornost programera– Top-down dizajn: polazi se od glavnog cilja pase potom program dijeli na manje cjeline (funkcije/moduli)– Kontrolne strukture se koriste da bi se provjerilokako svaki modul funkcioniše• Definisanje algoritma: objašnjenje korak po korakkako riješiti problem• Alati za dizajniranje programa:– Sistemski dijagram toka– grafički prikaz glavnefaze obrade i različite izvore podataka.Programski dijagram toka – grafički prikaz logikeproblemaFaza 3: Pisanje kôda• Preslikavanje algoritma u specifične programske naredbe• Odabiranje programskog jezika i pisanje programa u skladu sa sintaksnim pravilima

33. Faza 4: Testiranje i otklanjanje grešaka (Debugging)• Greške nastale usljed pogrešnog logičkog pristupa ili pri unosu teksta se nazivaju bagovima (bug, bugs). bagovima (bug, bugs).• Proces traženja i ispravljanja tih grešaka se naziva debagovanje (debugging).• Proces otklanjanja grešaka i testiranje programa po pravilu oduzima vrijeme veće od onoga koje je bilo potrebno za samo programiranje.

34. Faza 5: Formalizacija rješenja

Page 7: programiranje teorija

• Formiranje dokumentacije– Definicija problema. Namjena i mogućnostiprograma, autor(i) i naručioc posla.– Opis sistema na kom program radi (hardver isofver). Potrebni ulazni podaci i oblik i tip izlaznih podataka.– Detaljan opis programa, dijagram toka, listingprograma, podaci korišćeni pri testiranju i rezultati testa– Uputstvo za instaliranje i održavanje– Uputstvo za operatera

35. Algoritamske promjenljiveAlgoritamske promjenljive se označavaju imenima koja se obično sastoje od jednog ili više slovnih i brojnih znakova. Prvi znak je slovo.Imena promjenljivih se biraju tako da ukazuju na prirodu promjenljive koju predstavljaju. Preporučuje se da se imena promjenljivih u algoritmu i u odgovarajućem programu poklapaju jer je na taj način olakšano “održavanje” programa.

36. Osnovne algoritamske strukture• Linijska struktura /tok obrade isključivo odozgo na dole/Rješavanje različitih realnih problema dovodi do različitih više ili manje složenih algoritama.Razlikuju se:• Struktura sa grananjem /algoritam sadrži simbol odluke – u algoritmu se nalazi dvije ili više algebarskih grana/• Ciklična struktura /izvršavanje se vraća na prethodno većizvršene algoritamske korake/• Struktura sa podalgoritmima

37.Linijska algoritamska struktura• Postoji samo jedna grana izvršavanja.• Svaki algoritamski korak se izvršava samo jednom.izvršava samo jednom.• U praksi se rijetko susreću, jer se pomoću njih mogu riješiti samo elementarni zadaci.

38. Struktura sa grananjemStrukture sa granjanjem (razgranate algebarske strukture) pojavljuju se uvijek kada algoritam sadrži simbol odluke.U zavisnosti od vrste simbola odluke i od broja simbola odluke algoritam može da sadrži dvije ili više grana. Prilikom izvršavanja algoritma nailaskom na simbol odluke vrši se ispitivanje uslova postavljenih u simbolu odluke.

Page 8: programiranje teorija

Izvođenje algoritma se nastavlja samo jednom od grana, a kojom – to zavisi od uslova postavljenih u simbolu odluke.

39. Petlja (ciklična struktura)Ciklične algoritamske strukture su prirodni nastavak razgranatih algebarskih struktura.Ciklične algoritamske strukture omogućavaju da se na jednostavan način riješe složeni da se na jednostavan način riješe složeni problemi, u okviru kojih se zahtijeva da se višestruko ponovi ista sekvenca obrade na istim ili različitim podacima.Ciklične algoritamske strukture se često nazivaju petlje.Ciklične algoritamske strukture mogu biti:- proste i- složene.

40. Proste ciklične strukturePod prostim cikličnim strukturama podrazumijeva se algoritam koji sadrži samo jedan ciklus.Proste ciklične struktureU svakoj cikličnoj strukturi uočavaju se tri dijela:- početak ciklusa,- tijelo ciklusa i- kraj ciklusa. Početak ciklusa čine pripremni simboli u kojima se promjenljivima dodjeljuju inicijalne rijednosti.Tijelo ciklusa čine simboli koji se tokom izvršavanja algoritma ponavljaju.Proste ciklične strukture mogu biti:- sa unaprijed određenim brojem ponavljanja tijela ciklusa i- sa promjenljivim brojem ponavljanja tijela ciklusa.

41. Ciklične algoritamske strukture tipa Do Until

Spadaju u proste ciklične strukture. Algoritamski koraci sadržani u tijelu petlje obavezno se izvršavaju bar jednom. Ako postavljeni uslov u simbolu odluke nije ispunjen, algoritamskikoraci iz tijela petlje će se ponovo izvršavati. Ovom strukturom se rješavaju problemi kod kojih se može definisati cilj (uslov završetka) koji treba da bude dostignut.

42. Ciklične algoritamske strukture tipa Do While

Spadaju u proste ciklične strukture. Algoritamski koraci sadržani u tijelu petlje mogu da se i ne izvrše. Prije ulaska u tijelo petlje ispituje se uslov postavljen u

Page 9: programiranje teorija

simbolu odluke. Ako uslov nije ispunjen algoritamski koraci sadržani u tijelu petlje se preskaču. Ako je uslov ispunjen algoritamski koraci sadržani u tijelu petlje se izvršavaju, pa se ponovo vrši ispitivanje uslovaOvom strukturom se rješavaju problemi kod kojih se može definisati uslov izvršavanja algoritamskih koraka iz tijela petlje.

43. Indeksirane promjenljive

Indeksirana promjenljiva je konačan skup promjenljivih sa istim simboličkim nazivom irazličitim indeksom. Članovima niza pridružuje se niz promjenljivih sa realnim brojem kao indeksom, npr.: A1, A2, A3, ...,AN. Indeks je veličina koja se mijenja, tj. K=1,2, ..., N. Na taj način u algoritmu dobijemo indeksirane promjenljive.Indeksna promjenljiva može imati:

• samo jednu dimenziju i tada se nazivajednodimenziona matrica, vektor ili niz;• dvije dimenzije i tada se naziva matrica;• više dimenzija i tada se naziva višedimenzionamatrica.

44. Složene ciklične strukture

Kod složenih cikličnih struktura algoritam se sastoji od dva ili više ciklusa. Ako su ciklusi nezavisni, dijelovi takvog algoritma su proste ciklične strukture. Ako neki ciklus obuhvata jedan ili više ciklusa govorimo o ugniježdenim cikličnim strukturama. One sadrže spoljašnji i unutrašnji ciklus. Broj izvršavanja algoritamskih simbola u unutrašnjem ciklusu jednak je proizvodu broja izvršavanja tog ciklusa i brojeva izvršavanja svih ciklusa koji ga obuhvataju.Kod cikličnih struktura nije dozvoljeno preklapanje tokova obrade, tj. uskakanje u tijelo ciklusa.45. Struktura sa podalgoritmima

Veza između algoritma i podalgoritma – lista ulazno-izlaznih parametara – stvarna lista parametara – parametri koji se prosljeđuju podalgoritmu iz glavnog algoritma – formalna lista parametara – lista parametara pozvanog algoritmaBroj, redoslijed i vrsta parametara stvarne i formalne liste mora da se poklapa.

46. Podalgoritam i rekurzija

Podalgoritam je algoritam koji rješava jedan aspekt problema i biva angažovan (pokrenut, pozvan) od strane glavnog algoritma ili drugog podalgoritma.Parametri podalgoritama prema mjestu njihovog definisanja :

Page 10: programiranje teorija

Formalni parametriStvarni parametri Prema smjeru prenosa vrijednosti:1. Ulazni parametri2. Izlazni parametri 3. Ulazno-izlazni parametri Postoji posebna klasa podalgoritama koji su samo sebi i superordinirani i subordinirani rekurzivni podalgoritmi. Rekurzivan podalgoritam poziva sam sebe sa različitim vrijednostima ulaznih parametara potreban broj puta. Samopozivanje rekurzivnog algoritma mora biti uslovljeno.

47. Rekurzivni podalgoritmi.

Postoji posebna klasa podalgoritama koji su samo sebi i superordinirani i subordinirani rekurzivni podalgoritmi.Rekurzivni podalgoritmi se sastoje iz tri dijela:Dio koji se izvršava u dubinuUslovljeni pozivDio koji se izvršava ka površini

1. Primjena MATLAB-a u rješavanju inženjerskih problema

MATLAB je moderan, multifunkcionalan programski sistem koji je u prvom redu namijenjen rješavanju problema u tehnici. MATLAB pruža korisniku mogućnost da numerički i logički obradi podatke pomoću mnoštva raspoloživih programskih jedinica, da vizuelno prikaže podatke i da proširi funkcionalne mogućnosti kreiranjem i izvršavanjem sopstvenih programa. Mnogobrojne grafičke mogućnosti omogućavaju korisniku da formira dvo- i trodimenzionalne kolor grafike kako na ekranu, tako i na štampaču ili na ploteru. MATLAB je sistem koji se nalazi u neprekidnom razvoju kome doprinose mnogobrojni stvaraoci u svijetu. Na mnogim univerzitetima MATLAB je usvojen kao standardno sredstvo u okviru kurseva iz oblasti matematike, inženjerstva i nauke, a u industriji MATLAB se koristi kao sredstvo u istraživanjima čiji je cilj dalji razvoj proizvodnje.

2. Osnovno okruženje MATLAB-a

Osnovno okruženje MATLAB-a predstavlja tekstualni prozor u kome se zadaju MATLABkomande. Komande se izvršavaju neposredno nakon unosa. Poseban simbol (») predstavlja MATLAB prompt. Pored toga, moguće je pisati i programe u programskom jeziku kojeg nudi MATLAB.

3. Unošenje podataka

Page 11: programiranje teorija

Matrice se u MATLAB mogu unositi na nekoliko načina:• direktnim unošenjem elemenata,• generisanjem pomoću funkcija ili izraza ugrađenih u MATLAB,• definisanjem u M datoteci,• prenošenjem iz spoljne datoteke sa podacima. Kraj svake vrste matrice označava se znakom ;Matrica se mora ograničiti uglastim zagradama [].

4. Definisanje promenljivih

U literaturi iz oblasti MATLAB-a termin promjenljiva koristi se uopšte za objekte, čije vrijednosti mogu da se mijenjaju u toku rada programa.Promenljive se definišu tako što im se dodijeli vrijednost. Naziv promenljive je niz slova i cifara koji mora početi slovom, pri čemu se velika i mala slova razlikuju. Elemente matrice je neophodno odvojiti bar jednim white space karakterom. Prilikom definisanja vrijednosti promenljivih posebno je koristan operator dvotačka (:). Ovaj operator je namijenjen za definisanje vektora čiji se elementi dobijaju inkrementiranjem početne vrijednosti za konstantan korak. Operator dvotačka se može koristiti i za dodjelu vrijednosti matrici, ali samo u slučaju da je matrica bila prethodno definisana MATLAB automatski dodjeljuje vrijednost posljednjeg izračunatog izraza promenljivoj ans. Tako se može dobiti i vrijednost izraza koji nisu dodijeljeni kao vrijednost nijednoj promjenljivoj.

5. Spoljašnji dio objekta

Informacioni objekti (objekti sa podacima) koje obrađujemo pomoću računara sadrže u sebi različite tipove podataka. svaki objekat uvijek se može posmatrati kao spoj dva dijela: spoljašnjeg i unutrašnjeg.Spoljašnji dio objekta sastoji se iz jednog ili većeg broja pokazatelja (imena, identifikatora,..., oznaka). To je ono što programer "vidi" od cijelog objekta, tj. ono čemu može direktno da pristupi i da ga koristi

6. Unutrašnji dio objekta

Unutrašnji dio objekta jeste prikaz podataka koji objekat čine unutar računara; taj prikaz ostaje skriven za korisnika. Unutrašnji dio objekta čine jedna ili više vrijednosti i jedan ili više pokazatelja položaja tih vrijednosti.

7. Implicitnog deklarisanja tipa podatka

Prilikom dodjeljivanja jedne vrijednosti promjenljivoj implicitno se utvrđuje tip te promenljive. Kada se promjenljivoj određenog tipa dodijeli jedna vrijednost

Page 12: programiranje teorija

drugog tipa, tip promjenljive će dinamički biti promijenjen, tj. postaće isti kao tip vrijednosti koja je u pitanju. Tip podataka jednogobjekta određuje interni prikaz i način interpretacijetog prikaza. Tip podatka karakteriše se sljedećim svojstvima:(1) imenom za identifikaciju tog tipa;(2) opsegom vrijednosti;(3) notacijom za prikazivanje konstanti tog tipa,(4) skupom operacija i relacija za objekte tog tipa.

8. Nizovi (polja)

Skup pojedinačnih vrijednosti sa istim tipom podatka nazivamo niz. Pojedinačni element niza identifikuje se pomoću indeksa. Ako elementi nekog niza posjeduju samo jedan indeks, onda je riječ o jednodimenzionom nizu. Dvodimenzioni niz sastoji se od promjenljivih sa dva indeksa.

9. Tip podataka double

Tip podataka double služi za memorisanje numeričkih nizova (ili skalara, koji se u MATLAB-u takođe tretiraju kao nizovi). Elementi ovih nizova mogu da budu realni ili kompleksni brojevi (znači da ne postoji poseban tip podataka za kompleksne brojeve). Brojevi koji se registruju u okviru tipa double, čine jedan podskup realnih odnosno kompleksnih brojeva. Konstante tipa double prikazuju se kao zbir realnog dijela i imaginarnog dijela broja.

10. Tip podataka char

Tip podataka char služi za memorisanje nizova čiji elementi sadrže tekstualne podatke, tj. Nizove ASCII-znakova. Niz znakova koji predstavlja tekstualni podatak uvijek je ograničen apostrofima ('), ako apostrof treba da bude znak koji će pripadati samom tekstu, onda se taj znak piše udvojeno, tj. pišu se dva uzastopna apostrofa.

11. Tip podataka sparse

Tip podataka sparse služi za racionalno memorisanje matrica sa malo elemenata različitih od nule (tzv. "rijetke" matrice). Kod rada sa ovim matricama MATLAB primjenjuje naročitooptimizovane algoritme.

12. Tip podataka cell

Objekat čiji je tip podatka cell (koristi se i termin cell array - što bi se moglo doslovno prevesti kao "niz ćelija") sličan je entitetu koga nazivamo niz brojeva,

Page 13: programiranje teorija

ali je ovde riječ o nizu objekata (matrica, vektora, itd.). Pored toga, objekat sa tipom cell može da bude skup komponenti sa različitim sadržajima (numeričkim, tekstualnim, itd.).

13. Tip podataka struct

U MATLAB-u se koristi pojam structure koji se odnosi na skupove podataka koji se sastoje od određenog broja komponenti. Za razliku od nizova, ove komponente mogu imati različit tip podatka i za razliku od nizova tipa cell, ove komponente imaju jednoznačno simboličkoime.Svaka komponenta poziva se isključivo preko svog imena. Komponente jedne strukture (tj. objekta tipa structure) mogu da budu objekti tipa cell, ili da budu matrice ili drugi objekti tipa structure. U MATLAB-u važi koncept dinamičkih struktura što znači da se oblik objekata tipa structure nikada ne definiše eksplicitno. Dodjeljivanjem sadržaja pojedinim komponentama strukture, koje u trenutku dodjeljivanja ne postoje, formiraju se nove komponente objekta. Jasno je da objekti tipa struct služe da bi se objekti sa različitim tipovima objedinili i da bi zatim postojala mogućnost da se svi tako sabrani podaci mogu navesti pod imenom objekta tipa struct. Međutim, postoji mogućnost i da se manipuliše sa pojedinim komponentama objekta; ovakav način pristupa podacima naziva se selekcija. U slučaju da jedna struktura kao komponente ima druge strukture, selekcija može da se protegne na više nivoa.

14. Logičke promenljive

U MATLAB-u ne postoji osnovni tip podatka zalogičke vrijednosti (tj. tip podatka za – memorisanje logičkih vrijednosti istinito i lažno). Logičke vrijednosti simuliraju se ipak uz pomoć tipa double. Promjenljiva tipa double, koja tokom rada programa uzima jedino vrijednosti 0 i 1, u MATLAB-u se interpretira kao logička promjenljiva. Numerička vrijednost 1 označava vrijednost istinitog iskaza, a numerička vrijednost 0 lažnog iskaza. Iako za memorisanje logičke vrijednosti ne posjeduje sopstveni tip podataka MATLAB pravi razliku između numeričkih i logičkih objekata sa tipom double; jedan numerički niz sa vrijednostima 0 i 1, prije nego što će moći biti primijenjen kao logički objekat, mora da bude konvertovan naredbom logical.

15. Logički i relacioni operatori

16. Upotreba dvotačke (:)

Ovaj operator je namijenjen za definisanje vektora čiji se elementi dobijaju inkrementiranjem početne vrijednosti za konstantan korak. Operator dvotačka

Page 14: programiranje teorija

se može koristiti i za dodjelu vrijednosti matrici, ali samo u slučaju da je matrica bila prethodno definisana