osnove programiranja

8
1. Elementi strukturiranih algoritama - Resenje bilo kog problema koji je po svojoj prirodi resiv pomocu racunara, moze se izraziti kao superpozicija sledecih struktura:1. sekvence,je uredjen niz instrukcija gde se po zavrsetku i-1 instrukcije moze izvrsavati i-ta instrukcija,a posle nje i+1 instrukcija i tako redom.2. selekcije omogucava izbor jedne putanje kojom ce se nastaviti izvrsavanje instrukcija.3. iteracije omogucava ponavljanje tela iteracije potreban broj puta. Broj ponavljanja se kontrolise uslovom u formi predikata. 2. Razvoj strukturiranog algoritama - smatra se vestinom potrebnom da bi se definisale diskretne operacije nad datim ulaznim podacima radi dobijanja izlaznih vrednosti podataka koje odredjuju funkcionalnost algoritma. Zadatak algoritma je da precizira kako ulazne podatke transformisati u izlazne podatke radi postizanja date funkcionalnosti. 3. Podalgoritmi i rekurzija - Podalgoritam je algoritam koji resava jedan aspekt problema i biva angazovan (pokrenut) od strane glavnog algoritma ili drugog podalgoritma. Rekurzivni podalgoritam poziva sam sebe sa razlicitim vrednostima ulaznih parametara potreban broj puta. Npr. Fibonacijev niz. 4. Predstavljanje strukturiranih algoritama - Graficko predstavljanje struktuiranih algoritama – koristi odredjen skup grafickih simbola za predstavljanje operacija i struktura algoritama nad kojima se primenjuje strogo definisani skup pravila njihovog predstavljanja i povezivanja. Najpoznatije standardne graficke notacije su: Blok dijagrami Dijagrami strukture programa. Tekstualno predstavljanje struktuiranih algoritama- koristi odredjen skup sluzbenih reci za predstavljanje struktura, a operacije se predstavljaju u formi recenica govornog jezika kojima se dodaju opste poznate matematicke notacije.Najpoznatiji standard je Pseudokod. 5. Osnovi strukturiranja podataka - Prema Niklausu Virtu program cine algoritam i strukture podataka. Apstrakcija podataka predstavlja osnovnu aktivnost koja vodi ka struktuiranju podataka. Apstrakcija je mehanizam koji omogucava lakse resavanje problema zanemarujuci one karakteristike koje nisu interesantne u datom kontekstu. 6.Skalarije - najjednostavnija operativna struktura podataka. Kako njegov naziv implicira skalar predstavlja velicinu koja je potpuno odredjena vrednoscu do koje se dolazi navodjenjem

Upload: wade1003

Post on 26-Jul-2015

208 views

Category:

Documents


10 download

DESCRIPTION

Teze iz osnova programiranja

TRANSCRIPT

Page 1: Osnove programiranja

1. Elementi strukturiranih algoritama - Resenje bilo kog problema koji je po svojoj prirodi resiv pomocu racunara, moze se izraziti kao superpozicija sledecih struktura:1. sekvence,je uredjen niz instrukcija gde se po zavrsetku i-1 instrukcije moze izvrsavati i-ta instrukcija,a posle nje i+1 instrukcija i tako redom.2. selekcije omogucava izbor jedne putanje kojom ce se nastaviti izvrsavanje instrukcija.3. iteracije omogucava ponavljanje tela iteracije potreban broj puta. Broj ponavljanja se kontrolise uslovom u formi predikata.

2. Razvoj strukturiranog algoritama - smatra se vestinom potrebnom da bi se definisale diskretne operacije nad datim ulaznim podacima radi dobijanja izlaznih vrednosti podataka koje odredjuju funkcionalnost algoritma. Zadatak algoritma je da precizira kako ulazne podatke transformisati u izlazne podatke radi postizanja date funkcionalnosti.

3. Podalgoritmi i rekurzija - Podalgoritam je algoritam koji resava jedan aspekt problema i biva angazovan (pokrenut) od strane glavnog algoritma ili drugog podalgoritma. Rekurzivni podalgoritam poziva sam sebe sa razlicitim vrednostima ulaznih parametara potreban broj puta. Npr. Fibonacijev niz.

4. Predstavljanje strukturiranih algoritama - Graficko predstavljanje struktuiranih algoritama – koristi odredjen skup grafickih simbola za predstavljanje operacija i struktura algoritama nad kojima se primenjuje strogo definisani skup pravila njihovog predstavljanja i povezivanja. Najpoznatije standardne graficke notacije su: Blok dijagrami Dijagrami strukture programa. Tekstualno predstavljanje struktuiranih algoritama- koristi odredjen skup sluzbenih reci za predstavljanje struktura, a operacije se predstavljaju u formi recenica govornog jezika kojima se dodaju opste poznate matematicke notacije.Najpoznatiji standard je Pseudokod.

5. Osnovi strukturiranja podataka - Prema Niklausu Virtu program cine algoritam i strukture podataka. Apstrakcija podataka predstavlja osnovnu aktivnost koja vodi ka struktuiranju podataka. Apstrakcija je mehanizam koji omogucava lakse resavanje problema zanemarujuci one karakteristike koje nisu interesantne u datom kontekstu.

6.Skalarije - najjednostavnija operativna struktura podataka. Kako njegov naziv implicira skalar predstavlja velicinu koja je potpuno odredjena vrednoscu do koje se dolazi navodjenjem identifikatora skalara. Primeri skalara su: temperatura, sirina, boja, ocena, prezime i slicno. Operacije i brisanja elementa strukture nemaju smisla jer skalar cuva u sebi samo jedan podatak.

7.Staticke strukture - Osnovne karakteristike: 1. operacije dodavanja i uklanjanja nisu definisane jer je broj elemenata u strukturi konstantan, nemoguce ga je menjati odatle potice i naziv ove klase. 2. pristup elementu strukture je direktan prema poziciji i sasvim proizvoljan drugim recima pristup nekom elementu nije uslovljen prethodnim pristupanjima drugim elementima.

8.Poludinamicke strukture - Razlikujemo 4 vrste: stek-karakteristika je da su sve operacije definisane nad prvim gornjim ili najvisim elementom koji se naziva vrh steka.queue-ova struktura po svojoj organizaciji je kopija realnih situacija gde vise korisnika ceka servis sa jednog izvora, tako je red linearna struktura gde se dodavanje novih elemenata naziva krajem a na pocetku se obavljaju operacije pristupa i uklanjanja elementa. Dek-nadogradjuje strukturu reda mogucnoscu obavljanja svake operacije na oba terminala deka cime se dovodi u pitanje gde je pocetak, a gde je kraj sekvencija-ima najslabije restrikcije na primenu operacija nad elementima ove linearne strukture.

Page 2: Osnove programiranja

9.Dinamicke strukture - Veoma su mocno sredstvo za organizovanje podataka u operativnoj memoriji racunara posto ne namecu ogranicenja na tri osnovne operacije nad strukturama. Lista je dinamicka struktura koja je linearna po svakoj relaciji uspostavljenoj medju njenim podacima.

10.Testiranje algoritama - moze ukazati na greske koje su posledica omaski tokom specifikacije zahteva arhitektonskog projektovanja ili samog razvoja algoritama. Treba da ukaze na greske koje su vidljive na nivou algoritama, bez obzira u kojoj fazi razvoja se nalazi njihov izvor, kako bi se faza kodiranja i testiranja zapocela detaljnom specifikacijom softvera koja je maksimalno korektna odnosno sa sto manje gresaka.

11.Pregled razvoja programskih jezika - Prva generacija nastala je 50tih godina 20tog veka. Pisali su se u binarnom kodu (0 i 1), racunar ih ne prevodi, odmah izvrsava, nema potrebe ni za kakvim prevodjenjem, zavise od arhitekture racunara, komplikovani su za pisanje, svaki programer vodi racuna o raspodeli memorije. Radi se o masinskom jeziku. Druga generacija nastaje polovinom 50tih. Nastaje usled potrebe za pojednostavljanjem programiranja. Nastaje simbolicki jezik, gde su komande skracenice na engleskom jeziku. Glavni predstavnik ovih jezika je asembler. On spada u nize programske jezike, jednostavniji je za pisanje od masinskog jezika, potrebno ga je prevesti da bi se izvrsio. Treca generacija nastaje oko 1960.god. Nazivaju se programski jezici viseg nivoa, oni nisu zavisili od arhitekture racunara, omoguceno je resavnje slozenijih problema. Ali nije postojala standardizacija programskih jezika. Cetvrta generacija nastaje 80tih. Tada dolazi do standardizacije hardvera i brzeg razvoja programskih jezika. Odlike jezika su orijentisanost ka potrebama korisnika, racunaru se mogu postaviti razni zadaci. Velika brzina obrade podataka, prve verzije programskih jezika za rad sa bazama podataka. Peta generacija su jezici ekspetskih sistema, karakterisu ih i objektne tehnologije,c-s arhitekture, viseslojne aplikacije...

12. Klasifikacija programskih jezika

13.Metode za razvoj struktuiranih progamaOn se zasniva na standardizaciji programske logike i to tako da se logicke strukture programa razbijaju na podlogicke celine-module.Kod struktuiranog programiranja postoje tri elementa strukture:-linijska prosta,-linijska razgranata,- ciklicna struktura.

Svi od navedenih elemenata imaju osobinu da imaju. Jedan ulaz i jedan izlaz.Cilj struktuiranog programiranja je :

- Podizanje programa na visi nivo,- Izbacivanje naredbe GOTO,- Eliminisanje necitljivosti i nepotrebne slozenosti programa

Naredba GOTO se iz struktuiranog programiranja eliminise naredbama do-loop, if-then-else, for i sl. Cime se dobija pregledniji kod, za analizu i testiranje, manji broj gresaka u kodu.

14. Programski jezik Pascal – osnovne karakteristike - Programski jezik Pascal je nastao 1970.godine. Tvorac Niklaus Virt. Pascal je pogodan za ucenje programiranja. Njegova implementacija pouzdana i efikasna na tadasnjim racunarima. Svaki element resenja mora biti definisan, tj. opisan pre njegove upotrebe.

Page 3: Osnove programiranja

15. Sintaksa I semantika programskog jezika Pascal - Sintaksa (pravopis) - pravila koja definisu dozvoljene sekvence elemenata alfabeta oblikujuci konstrukcije jezika. Semantika -znacenje teksta koji je konstruisan u skladu sa sintaksom jezika.

16.Osnovni tipovi podataka Pascal-a - 1. Standardni skalarni tipovi, se koriste za definisanje tipova promenljivih, konstanti, parametara funkcija i procedura, ali i za gradnju drugih slozenijih tipova. 2. Nestandardni skalarni tipovi, su najjednostavniji Paskalski mehanizam za gradnju slozenijih tipova, jedan od takozvanih "generickih tipova" 3. Visedimenzionalni skalari - nizovi, matrice i stringovi. Ova sekcija se baci pitanjem njihovog definisanja i upotrebe u programskom jeziku Pascal sa kratkim osvrtom na fizicko memorisanje. 4. Slogovi - dopunjuju visedimenzionalne nizove mogucnoscu zatvaranja razlicitih tipova i jedan tip. 5. Pokazivaci i dinamicko dodeljivanje memorije - Ova sekcija predstavlja pokazivacki tip, sintaksu njegove upotrebe i elementarne procedure i funkcije za rad sa pokazivacima na programskom jeziku Pascal.

17.Aritmeticki i logicki izrazi - Svaki racunar utrosi znatno operativno vreme na odredjivanje vrednosti aritmetickih i logickih izraza. Sracunavanje aritmetickog izraza rezultuje aritmetickom vrednoscu dok sracunavanje logickog izraza rezultuje jednom od dve logicke vrednosti tacno ili netacno.

18.Osnovne upravljacke strukture Pascal-a – Zadatak upravljacke strukture selekcije je da na osnovu njenog uslova koji je predstavljen logickim izrazom odredi putanju kojom ce se nastaviti izvrsavanje programskog koda. Putanju cini jedna naredba ili blok naredbi(if i case strukture). Repeat until upravljacka struktura je paskalska implementacija iteracije sa izlaskom na dnu. Ova struktura omogucava ponavljanje tela iteracije sve dok je uslov iteracije logicki neistinit jer je to u skladu sa temporalnim veznikom engleskog jezika until, kada uslov iteracije je ista kao i kod while iteracije postavljenjem konstante false kao uslova repeat until iteracije dobija se beskonacno ponavljanje tela iteracije.

19. Sekvenca - je uredjen niz instrukcija gde se po zavrsetku i-1 instrukcije moze izvrsavati i-ta instrukcija, a posle nje i+1 instrukcija i tako redom.

20. Selekcija - omogucava izbor jedne putanje kojom ce se nastaviti izvrsavanje instrukcija. Izbor putanje vrsi se na osnovu uslova koji je definisan kao logicki izraz (predkat). Tipovi selekcija: 1) IF uslov THEN operacija, 2) IF uslov THEN operacija1 ELSE operacija2 i 3) CASE uslov.

21. Iteracija - omogucava ponavljanje tela iteracije potreban broj puta. Broj ponavljanja se kontrolise uslovom u formi predikata. Po mestu kontrole ponavljanja iteracije se klasifikuju na: 1) Iteracije sa izlaskom na vrhu, 2) Iteracije sa izlaskom na dnu, 3) Iteracije sa izlaskom na sredini.

22.Nestruktuirano grananje - se odnosi na upravljanje tokom izvrsavanja programa direktnim preusmeravanjem toka pomocu goto naredbe sistema labela. Ovakav nacin upravljanja je nasledjen iz nestrukturiranih programskih jezika Fortan, Basic jezika prve i druge generacije i nije potpuno u skladu sa strukturiranim pristupom programiranju.

23.Procedure i funkcije - su klasifikovane grupe po svojoj funkcionalnosti. Svaki opis ima formu jednostavne tabele koja daje naziv, deklaraciju sa formalnim parametrima i opis semantike.

Page 4: Osnove programiranja

24. Prenos parametara - Klasifikovanje parametara prema smeru prenosa vrednosti:Ulazni parametri, nose u sebi ulazne vrednosti za dati podalgoritam. Izlazni parametri, nose u sebi izlazne vrednosti datog podalgoritma, rezultate njegovog izvrsavanja. Ulazno/izlazni parametri, nose u sebi vrednosti koje za dati podalgoritam imaju ulogu i ulaznih i izlaznih vrednosti (npr. Sortiranje niza).

25.Standardne Pascal procedure i funkcije - Abs-vraca absolutnu vrednost parametra,arctan-vraca vrednost arkus tangensa prosledjenog parametra, dec-umanjuje vrednost parametra Broj, exp-vraca vrednost eksponenta parametra, frac-vraca razlomljeni deo realnog broja, hi-vraca vrednost gornjeg bajta celobrojne vrednosti vred, inc-uvecava vrednost parametara Broj, int-vraca celobrojni deo rl broja R zaokruzen ka nuli, ln-vraca vrednost prirodnog logaritma parametra R, lo-vraca vrednost donjeg bajta celobrojne vrednosti vred, pi-vraca vrednost pi konstante, random-vraca slucajan celobrojni broj u opsegu, randomize-inicijalizuje generator slucajnih brojeva, sizeof-vraca velicinu specifikovane variabla_tip u bajtima, swap-razmenjuje vrednosti viseg i nizeg bajta parametra Vred.

26.Datoteke – Pascal podrazumeva sekvencijalnu organizaciju datoteke cime se obezbedilo efikasno memorisanje podataka nezavisno od medija i uredjaja masovne memorije. Razlikuje tekstualne tipizirane i netipizirane datoteke. Pristup tekstualnim datotekama obavlja se na nivou karaktera vrednosti ASCII tabele ili njihovoj indeksiranoj strukturi.

27. Zivotni ciklus softvera obuhvata faze aktivnosti nad softverom od samog pocetka njegovog razvoja preko ekspoatacije i odrzavanja pa do odbacivanja jer je zastareo ili neupotreban,dakle citav zivotni vek. Kaskadni model - Faze: analiza i specifikacija>projektovanje arhitekture>detaljno projektovanje>kodiranje i testiranje>integracija i testiranje>ekspoatacija i odrzavanje. Model zasnovan na brzom razvoju prototipa - Faze: specifikacija zahteva>brzo projektovanje>izgradnja prototipa>evalvacija prototipa>modifikacija prototipa>inzenjering softvera.

28.Analiza problema i specifikovanje zahteva se smatra najvaznijom fazom u razvoju softvera kojoj se posvecuje puno vremena uz angazovanje najiskusnijeg ljudstva. Analiza problema je sakupljanje informacija o problemu, a specifikacija sastavljanje. Kod analize treba znati koje su informacije relevantne za sastavljanje dokumenta specifikacije zahteva i koje tehnike treba upotrebiti za sakupljanje informacija. Tehnike sakupljanje informacija: intervju, anketa, seminari, analiza postojeceg dokumenta, diskusija, audio video zapisi. Dokument specifikacije zahteva se formira ekstrahovanjem zahteva iz informacija dobijenim analizom problema i njihovim zapisivanjem u odredjenoj firmi.

29.Kodiranje i testiranje - Zadatak ove faze je da prevede detaljnije specifikacije svake funkcionalne jedinice u programski kod odabranog jezika i sprovede testiranje dobijenog programskog resenja svakog modula.Testiranje softvera se oslanja na dve metode: Providna kutija testira unutrasnjost softvera odnosno njegov kod koristeci test slucajeve koji su definisani u terminima programskih promenljivih i izraza. Testiranje metodom crne kutije ima cilj da otkrije sled kategorije gresaka: pozivanje funkcija,greska u interfejsu modula,greske u strukturama podataka ili pristupu eksternoj bazi podataka, greske performansi i greske tokom inicijalizacije odnosno termiranja modula. Faza eksploatacije i odrzavanja podrazumeva aktivnosti na isporuci i instalaciji softvera, obuci korisnika i odrzavanju softvera. Vaznu ulogu u ovoj fazi zivotnog ciklusa ima dokumentacija koja prati softverski proizvod. Sve aktivnosti nad softverom sprovedene od njegove instalacije u okruzenje obucenog korisnika smatraju se odrzavanjem. Aktivnosti faze odrzavanje mogu se klasifikovati u cetri grupe: Korekcija, adaptacija, poboljsanje, prevencija.

Page 5: Osnove programiranja

30.

31.Osnovni pojmovi i termini u objektnom programiranjuObjektno orijentisano programiranje je metodologija programiranja kojom se modelira realan svet kao skup objekata i odnosa medju objektima. Osnovni element u ovojmetodologiji su objekti koji se koriste za razvoj programa. Objekat je deo memorije nekog izvrsnog programa koji postuje pravila. On sadrzi k-ke entiteta i njihovo ponasanje. Klasa je korisnicki definisan tip podataka za kreiranje objekata. Objekat je instanca klase. Klasom modelujemo entitete. Metode su operacije nad entitetima. Objekti se karakterisu: entitetom, stanjem, ponasanjem. Sredstva objektne tehnologije su : apstrakcija, modularizacija, enkapsulacija, nasledjivanje, polimorfizam.

Apstrakcija je skrivanje informacija. Fizicki objekti cesto imaju spoljasnji oklop koji krije unutrasnju slozenost. Nasledjivanje - prosirivanjem objekata mogu da se dobiju novi objekti. Kod nasledjivanja kazemo da je jedan objekat izveden iz drugog. Polimorfizam - razliciti objekti mogu da rade na isti nacin.

32. SPECIFIKACIJA KLASE - Je osnovna organizaciona jedinica u OOP. U okviru klase se definisu atributi/podaci kojima se opisuju objekti klase, kao i metode tj akcije/funkcije koje objekti izvrsavaju. Ime klase moze biti bilo koje ime koje zelimo da damo klasi, ali u skladu sa pravilima imenovanja klase, ime klase mora poceti slovom iza koga moze da sledi niz slova, cifre, i _, a ne smemo da koristimo sluzbene reci od paskala. Pomocu rezervisane reci private klase, podaci i metode u okviru klase su dostupni samo objektima date klase. Javne klase “public” sadrze podatke I metode koje su dostupne I ostalim modulima.

33.Princip apstrakcije, modularnost, inkapsulacija - su elementi temelja softverskog inzenjeringa. Apstrakcija je najmocnije sredstvo dostupno ljudskom intelektu. Koncept apstrakcije podrazumeva ignorisanje svih svojstva subjekta koja nisu relevantna za tekucu svrhu s ciljem koncentricanja samo na ona koja to jesu. Modularnost oznacava patricionisanost softvera na povezane nezavisne module koji su identifikovani svojim nazivima i kao takvi su adresabilni.

34.Nasledjivanje - Objekti osim sto sadrze sopstvene podatke i metode, mogu i da ih naslede od drugih objekata,Type Osoba= objectStudent= object(osoba)

Objekat student nasledjuje sve sto sadrzi objekat osoba, ukljucujuci metode, podatke-atribute. Objekat osoba je roditelj, student je dete. Objekat moze imati vise od jednog deteta. Nasledjivanje je preuzimanje u datu klasu atribute i metode iz druge klase. Klasa roditelja uz mogucnost modifikovanja metoda u klasi dete. Na primer, ako klasa osoba ima metodu.

35.