You are on page 1of 19

SKRIPTA IZ PROGRAMIRANJA

Druga parcijala
(Sva mogua pitanja )

Dejan Luki

1.Koji su najpoularniji objektno orjentisani programski jezici i emu slue pojedinosti njihove namjene ? Najpoznatiji objektno orijentirani programski jezici su: C++, Visual BASIC, Delphi ,JAVA

Programski jezik C++ je programski jezik ope namjene i srednje razine s podrkom za objektno orijentirano programiranje

Visual Basic (VB) je programski jezik kojeg je razvila tvrtka Microsoft i on je programski jezik za programiranje radnji (event drive) kao i radno suelje (development environment). Ovo je iznimno popularna verzija Basica, nudi jednostavnost Basic jezika zajedno s potpunim pristupom Windows API-ju ime je omoguena izrada svih vrsta aplikacija s velikim mogunostima JAVA Velika prednost u odnosu na veinu dotadanjih programskih jezika je to to se programi pisani u Javi mogu izvoditi bez preinaka na svim operativnim sustavima za koje postoji JVM (Java Virtual Machine), dok je klasine programe pisane primjerice u C -u potrebno prilagoavati platformi(Operacijskom sustavu) na kojem se izvode.

Simula (Simulation programming language), definisan kasnih 60-tih (O.J. Dahl Kristen Nygaard ) Smalltalk nastao poetkom 1970-tih (Alan Kay). Prvi uspjeni, iroko prihvaeni OO jezik. C++ (B.S), Eiffel,... sredina 1980-tih

2. Navesti osnovne programske jedinice u fortranu sa primjerima Najbolja strategija u rjeavanju sloenih problema i izradi kompleksnih programa je modulizacija tj, podjela jednog velikog problema na nekoliko ili vie jednostavnijih problema koji ine jednu cjelinu. Program napisan u FORTRANU moe da se sastoji od jedne ili vie programskih jedinica. Uglavnom, programske jedinice su: glavni program (main program) i programske procedure: eksterni potprogrami (pUNCTION i SUBROUT1NE), MODUL i Block Data . Glavi program : Fortranski program moze biti sastavljen od jednog dijela al mora imat glavi program u obliku : (PROGRAM) ima , specifakcioni dijelovi,izvrni dijelovi, CONTAINS (djelovi podprograma) END PROGRAM

Programska jedinica FUNCTION Potprogram FUNCTION (ili ENTRY) je programska jedinica koja slui za izraunavanje izraza pri pozivu, a kao povratnu informaciju ima samo jednu izlaznu veliinu: izraunatu vrijednost. Opti oblik je Type FUNCTION ime (lista varijabli) , programske instrukcije ,RETURN i END

SUBROUTINA je programska jedinica koja se poziva sa naredbom CALL ili naredbom pridruivanja, a kao izlazne podatke moe imati vei broj argumenata.

Programska jedinica BLOCK DATA Ova programska jedinica daje poetne vrijednosti za nepromjenljive varijable u itnenovanimCOMMON blokovima. Ona ima slijedei oblik: BLOCK DATA [ime] .. [specifikacioni-dio] END [ BLOCK DATA [ime]]

4. Objasniti ta je SUBRUTINA kada se koristi i kako se deklarie Naredba SUBROUTINE je organizacijska naredba i slui za definiranje potprograma. Unutar jedne programske cjeline (programske cjeline su podijeljene naredbom END), naredba Subroutine mora biti prva naredba i moe se pjaviti samo jednom. Potprogrami pretstavljaju nezavisne cjeline u kojima mora postojati bar jedna izvrna naredba RETURN koja osigurava povrat na izvrne naredbe iza poziva potprograma u pozivajucoj programskoj cjelini. Argumenti se izmeu pozivajue programske cjeline i potprograma prenose na dva naina: preko liste argumenata koja mora biti identina po redoslijedu i tipovima u naredbama SUBROUTINE I CALL, te preko naredbe COMMON. Opi oblik naredbe je sledei: SUBROUTINE ime [ (argument [ , argument] ) ]

5 . Osnovne programske paradigme (koncepri ) Programska paradigma odreuje nain modeliranja problema ali i nain izvrenja programa. Veina viih programskih jezika podrava samo jednu programsku paradigmu onu kojoj pripadaju npr C++ podrava dvije programske paradigme. Osnovne programske paradigme su: proceduralno programiranja, modularno programiranje, strukturalno programiranje, objektno orjentirano programiranje.

3. Navedi algoritme za sortiranje nizova i bjasni merge sort Algoritmi za sortiranje su -sortiranje biranjem (selection sort) - bubble sort - sortiranje umetanjem (insertion sort) - Shellov sort - mergesort - quick sort - sortiranje pomou gomile (heap sort) **MERGE Ukoliko se zadano polje sastoji samo od 1elementa, tada je vec sortirano. Inace se zadano polje podijeli se na dva manja polja podjednakih duljina. Ta dva manja polja zasebno se sortiraju rekurzivnim pozivima istog algoritma. Zatim se malasortirana polja szamjenjuju jedno (sortirano) uz pomoc prethodno opisanog postupka saimanja (merge).

4.Objasni algoritam sortiranja Quciksorte ? Qucik sort Opet je rijec o rekurzivnom algoritmu za sortiranje. Odabere se jedan element u polju, takozvani pivot. Svi ostali elementi razvrstaju se ispred (lijevo od) odnosno iza (desno od) sto ovisno otome da li su ili od sto pivota. Ocigledno, nakon ova kvog razvrstavanja stozer se nalazi na svom konacnom mjestu u smislutrazenog sortiranog poretka. Da bi se polje sortiralo do kraja, dovoljno je zasebno (neovisno) sortiratipod-polje lijevo odnosno desno od stozera. Sortiranje pod-polja postize se rekurzivnim pozivima istogalgoritma, ili na trivijalni nacin za pod-polje duljine 0 ili 1

4 .Objasni pojam dinamike alokacije (SKRIPTA ) Ukoliko nije poznat broj podataka koji mora polje sadrzavati ,deklarirano polje ili nee bit veliko za zaprimanje svih podataka ili e ostati mnogo nesikoritenog slobodnog prostora u polju koji je deklarirano prevelikih dimenzija .Rijeenje ovog problema lei u dinamikoj alokaciji memorije .Polje se tada deklarie kao dinamiko a veliina mu se naknadno rezervira tijekom izvoenja samog programa Deklaracija :

real,dimension (:) allocatable :: x,y complex,dimension (:,: )allocatable :: A real, dimension ( :,: ) allocatable :: b integer ,dimension (: ) allocatable :: t

1 D polje 2D Polje 2D Polje 1D polje

5. Objasni pojam statika biblioteka : Statika biblioteka je blok koda, izdvojen i kompajliran nezavisno od glavnog programa. Moe sadravati samo subroutinu ali ne i glavni program. Vrlo je korisna u organizovanju velikih programa i dijeljenju subroutina izmeu razliitih programa. Prethodno kompajlirana,ista se dodaje se work- space glavnog programa te se njegovim kompajliranjem ugrauje u izvrni (.exe) file. Znatno smanjuje vrijeme k ompajliranja glavnog programa. Moe se koristiti za vie programa ili podprograma.

6. Objasni pojam dinamika biblioteka Dinamika biblioteka za povezivanje (dll) je blok koda, izdvojen i kompajliran nezavisno od glavnog programa. Moe sadravati samo subroutinu ali ne i glavni program. Vrlo je korisna u organizovanju velikih programa. Ista se dodaje glavnom programu u fazi izvrsenja (runtime) ime se postie niz prednosti. Ista dll moe se koristiti od strane vie pozivnih programa, izvrni file pozivnog programa je manji, bolji je menadent memorijom, update programa je jednostavan jer nije potrebno ponovno kompajliranje ili instaliranje programa nego samo zamjena postojee dll novom. 7. Objasni razliku izmeu proceduralnog i OO koncepta programiranja Sa proceduralnim programiranjem u stanju smo da kombinujemo povratne dijelove naredbi na jednom mjestu. Ime procedure se koristi za pozivanje procedure. Nakon to je procedura pozvana, tok programa se nastavlja odmah nakon stavke za pozivanje procedure. Da bi se procedure mogle generalno koristiti u drugim programima one moraju biti grupisane u module tako dobijamo MODULARNO dok je da snaga OO koncepta dolazi prvenstveno do izraaja kod velikih programa (programming in large). Velikih u smislu da reavaju upravljanje sloenim zadacima, da na njima uestvuje veliki broj programera. Razvijajui relativno jednostavne programe, recimo iskljuivo sami, neete biti u prilici da shvatite snagu i razloge nastanka OO tehnika programiranja.OO tehnike su i nastale kao pokuaj prevazilaenja krize softvera osamdesetih godina, koja se upravo i javila kao nemogunost efikasne primene proceduralnih i modularnih tehnika programiranja na reavanju sloenih problema.

SA SLAJDA 8 . Objasni prednost OOP u ondosu na druge -jednostavno koritenje dijelova koda u razliitim programima, tedei vrijeme u analizi, dizajnu, razvoju, testiranju, i otklanjanju greaka, -Jednostavnije modeliranje sloenih problema upotrebom apstraktnijih elemenata = objekata -sposobnost kupovine dijelova postojeeg, testiranog koda da bi se u razvoju omoguio komponentno-zasnovani pristup, -smanjeni trokovi razvoja, -mogunost podjele velikih projekata na vie programskih dijelova koje radi razliiti programeri, -poboljane karakteristike debagiranja i testiranja, -sposobnost kreiranja jednostavnih i konzistentnih sredstava za meu -djelovanje razliitih tipova objekata, Prednosti proceduralnog -mogudnost ponovnog koritenja istog koda na razliitim mjestima unutar progra -jednostavnije pradenje programskog toka (grafiki prikaz=dijagram toka) o-snova za razvoj modula, odnosno osiguranja strukturiranog pristupa.

9.Karakterisitke i prednosti proceduralnog programiranja ? Proceduralno programiranje Prethodno specificiranje koraka (naredbi) koje program mora izvriti (procedure manipulisanja sa podacima zadate algoritmom). Procedure se mogu pozvati u bilo kojoj toki izvravanja programa, ali i iz samih procedura. Osnovni princip izgradnje inenjerskih programa vezanih za numerika raunanja. Najvanije osobine -Fokusirani na procedure (algoritam) -Svi podaci (varijable) su "vidljive" i dostupne iz glavnog programa -Teki za modificiranje i proirivanje -Imaju sloenu strukturu za kompleksne probleme

Prednosti: -mogudnost ponovnog koritenja istog koda na razliitim mjestima unutar progra -jednostavnije pradenje programskog toka (grafiki prikaz=dijagram toka) -osnova za razvoj modula, odnosno osiguranja strukturiranog pristupa.

9 . Koji su proceduralni programski jezici ta znai proceduralno programiranje ALGOL, FORTRAN, BASIC, PASCAL, C, FORTII, COBOL, PLI, MODULA-2, ADA. Navedeni jezici se zovu proceduralni jer se u njima maini propisuje svaka operacija koju treba izvriti. Svaki jezik ima svoje karakteristike i podruje primjene. Ti je zici su orjentirani prema problemu koji se rjeava pa su itljiiv i za ljude ali raunari ne mogu neposredno izvravati tako napisane programe. potrebno je prije prevesti programe na mainski jezik. Programi za prevoenje s vieg na mainski jezik zovu se interpreteri i compileri.

10.ta je modularno programiranje ? Kod velikih i sloenih programa, da bi se osigurala, itljivost programa i olakalo njegovo razumijevanje i odravanje, modularnost postaje nuna. Modularnost u programiranju je jedan od osnovnih principa, nezavisno o programskoj paradigmi, iako ne postoji opta saglasnost o tome ta je modul. Razliiti autori imaju i razliite pristupe i definicije modula S. McConnell: modul je "skup rutina koje zajedno obavljaju neku globalnu funkciju poput formatiranog izlaza, itanja podataka iz datoteka ili pristupa glavnim strukturama podataka"

11.Objasni pojam Modul ? Modul je logiki nezavisna i zaokruena logika cjelina Moduli se mogu nezavisno programirati i testirati Mogu se formirati moduli zajedniki za sve Ispravak, testiranje i dokumentiranje je jednostavnije i bre Veze izmeu modula trebaju bit i jednostavne i vidljive Modul u pravilu treba imati jednu ulaznu i jednu izlaznu taku Nakon izvravanja modul vraa kontrolu na mjesto pozivanja

12.Objasni ta je objekat u OO programu i kako nastaje i sta sadri Objektno orijentirano programiranje polazi od toga da se program posmatra kao skup pojedinanih dijelova, ili objekata, koji surauju (rade) jedan s drugim meusobno izmjenjujui poruke. Svaki objekt ima sposobnost primanja poruke, obrade podataka i slanja poruke drugim objektima. Poruka utie na promjenu stanja objekta. Svaki objekt ima: stanje, ponaanje i identitet -Stanje objekta definisano je unutranjim varijablama (podacima, data members) -Ponaanje (behavior) definisano je funkcijama (member functions, methods). Funkcije se aktiviraju porukama. -Poruka je formalna komunikacija (poziv, zahtjev) poslana od strane jednog objekta drugom a koja zahtjeva neki servis (uslugu). Objekti se sastoje od lanova (Members ):

Attributes (Data) - npr. objekt auto: sjedala, vrata, motor...

Methods (Functions) - kreni, zakoi, ubrzaj, upali svjetla.

13.Objasni osnovnu ideju OO koncepta programiranja ? Osnovni temelji objektno orijentirane paradigme su prije svega objekt i razred te metode, nasljeivanje, enkapsulacija, polimorfizam, apstrakcija, i suelja. Ideja uvoenja objekata u programiranje dola je analiziranjem naina na koji funkcionira stvarni svijet. Promatanjem svijeta oko sebe doi emo do zakljuka da se mnoge stvari mogu vrlo jednostavno modellirati. Objektno orijentirano programiranje polazi od toga da se program posmatra kao skup pojedinanih dijelova, ili objekata, koji surauju (rade) jedan s drugim meusobno izmjenjujui poruke. Svaki objekt ima sposobnost primanja poruke, obrade podataka i slanja poruke drugim objektima. Poruka utie na promjenu stanja objekta.

14.OO Postupak razvoja programske aplikacije ? OO razvoj programa (aplikacije) -Identifikacija objekata u "real world" problemu -Specificiranje ponaanja, stanja i interakcije -Organizacija slinih objekata u klase -Specificiranje poruka izmeu objekata -Izrada gradivnih elemenata od objekata -izrada potrebnih klasa -Kreiranje objekata, kreiranje objekata za manipulisanje porukama -Testiranje klasa i objekata pojedinano -Definisanje glavnog programa koji objedinjava sve objekte

15.Osnovni element OOP ? -Objekt -Klasa -Nasljeivanje -Enkapsulacija (ahurenje, pakovanje, umotavanje) -Polimorfizam

16 .Navedi primjer deklaracije i bojasni u emu je razlika izmeu subrutine i funkcije u fortranu ? 1)FORTRAN FUNCTIONS: unutranje i eksterne Korisnika funkcija je procedura iji je rezultat jedna varijabla proizvoljnog tipa, koja je deklarisana preko imena funkcije. Deklaracija : FUNCTION ime ([ lista argumenata ]) [declaration statements] [executable statements] END [FUNCTION [name]]

2)Subroutine:
-kao rezultat moe vratiti vie argumenata -ime subroutine ne mora biti deklarisano (nije varijabla) -poziva se sa CALL" -moe biti bez liste argumenata SUBROUTINE subroutine_name ( argument_list) (Declaration section) (Execution section) RETURN (OPTIONAL) END SUBROUTINE [name]

17.Objasni osobinu enakapsulacije Osigurava da programski kod izvan klase (tj. druga klasa) vidi samo funkcionalne (ta moe da radi), ali ne i implementacijske detalje klase (kako je to programirano). Time se "skriva" ponaanje objekta od njegove implementacije (data hiding), odnosno odvaja kako objekt izgleda od toga kako implementira svoje ponaanje. Niko osim objekta ne moe znati kako "iznutra" taj objekt izgleda, tj. na koji nain izvrava svoj zadatak. Rezultat enkapsulacije je da svaki objekt prema vanjskom svijetu", tj ostalim klasama pokazuje svoje suelje tj. skup poruka (metoda) na koje odgovara = interface. Object=black box.

18. Objasni polimorfizam Polimorfizam potjee od grkih rijei poly - mnogo i morph-oblik. U objektno orijentisanom programiranju to znai da jedna poruka moe uzrokovati razliite oblike odgovora u zavisnosti kako je objekat kome se alje interpretira. Polimorfizam je ponaanje ko je se mijenja zavisno od toga koja klasa ga uzrokuje, to znai da dva ili vie objekata mogu reagovati potpuno razliito na istu poruku, odnosno da je primatelj poruke odgovoran za njenu interpretaciju.

19. Objasni osobinu nasljeivanja Nasljeivanje (inheritance) To mehanizam koji omoguuje da klasa (podklasa) redefinira (promijeni) ponaanje i osobine naslijeene neke druge klase (nadklase). Podklasa (subclass) ima sve to i nadklasa (superclass), ali i (ako je potrebno) jo neto to je specifino samo za nju Nasljeivanje se moe definirati i kao nadreena-podreena relacija izmeu klasa u kojoj podreena (dijete, child) klasa ima isto ponaanje (odgovornosti) kao i nadreena (roditelj, parent) klasa.

20 . ta je klasa ? Klasa je apstrakcija (zajedniki opis) za skup objekata s istim atributima i operacijama, odnosno to je predloak (engl. template) za kreiranje objekata. Zbog toga se kae da je objekt instanca (konkretni oblik, primjerak) klase. Svaki objekt jedne klase nasleduje njene osobine (metode i atribute).

21 . Definicija i ema stabla kao struktura podataka STABLO (TREE): konaan skup od n (n>0) elemenata (vorova - node) izmeu kojih postoji sljedea strukturna veza:

jedan vor se zove korijen (root) stabla,

ostali vorovi (ne uzimajudi u obzir korijen) su podijeljeni u m (m>0) disjunktnih skupova Ti, T2, ..., Tm, pri emu je svaki od tih skupova takoe stablo. Stabla T1# T2, ..., Tm se zovu podstabla.

Skup od 9 vorova, vor A je prethodnik vorova B i C, odnosno vorovi B i C su sljedbenici vora A. vorovi koji nemaju svoje sljedbenike (djecu) zovu se listovi (LEAF) H, J, D, G, F.

Stepen vora je broj nasljednika (djece) tog vora.

Duina puta izmeu dva vora je broj grana izmeu dva vora. Nivo stabla je broj generacija sljedbenika. Visina stabla je broj nivoa od korijena do najudaljenijeg lista (4 u primjeru).

Ureeno stablo je stablo kod koga je bitan raspored podstabala, a kod neureenog stabla je to nebitno. Struktura Stablo omogudava uspostavljanje hijerar hije izmeu elemenata. Primjer: organizacija direktorija na HD.

22.Objasni ta je Binarsno stablo ? Binarno stablo je ureeno stablo u kome svaki vor ima 0, 1 ili 2 nasljednika (maksimalno dva nasljednika). Osnovne operacije za rad na binarnim stablima moemo grupisati u sljedede tri grupe:

operacije kreiranja (konstruktorske operacije),

binarnog

stabla

operacije postavljanja upita nad binarnim stablima (predikatske operacije), operacije selektovanja dijelova binarnog stabla (selektorske operacije).

Svaki vor sadri informacije i linkove za vorove sljedbenike i roditeljski vor. Osnovne operacije: S Search - uporeivabje vrijednosti i nastavak lijevo ili desno S Insertion - ubacivanje novog vora na kraju stabla S Deletion - brisanje Mogunost zamjene stabla sloenom listom linkova, pogodno za kompjutersku implementaciju

23.Definicija i ema reda ? Sekvence elemeneta istog tipa. Prvi snimljeni element je i prvi dostupni element. (FIFO - first in first out)Novi elementi se dodaju na jednom kraju a oduzimaju na drugom kraju (linearna struktura)

24. Definicija i ema grafa ? -Univerzalni nain povezivanja elemenata -Sastoji se od skupa vorova i skupa linija za povezivanje (edges, bridovi, ivice) -Vrlo pogodni za modeliranje objekata, sistema i procesa -vorovi mogu imati imena i atribute -Edges (bridovi) spajaju dva vora (veze) mogu biti imenovane (labeled) i imati smjer -Graf je generalnija (optija) struktura od stabla

25 . Primjena grafova ? Linked list Tree (instance of graph) Flowcharts (dijagram toka programa) Mape puteva (GPS) Electrine sheme Montane sheme Sadraj planova, ekonomija, vojne operacije.

26. Objasni pojam STEK ? Definition: Poseban sluaj liste kod koje je dodavanje ili oduzimanje elemenata mogue samo na vrhu structure. (LIFO: last in - first out)

27. Nabroj osnovne apstaktne strukture podataka ? Apstraktne strukture podataka su : Matrice Records (Slog) List (linkovane liste) Stack (Stek) Queue (Redovi) Tree (Stablo) Grafovi

28. Definicja strukture podataka ? Struktura podataka je matematiki (logiki) nain organizacije podataka. Ona definie nain njihovog pohranjivanja i upotrebe od strane programa (programera). Pravilo odabrana struktura bitno utie na efikasnost programa. To se naroito istie kod sloenih aplikacija.

29. Osnovne operacije nad apstraktnim strukturama podataka ?

Pristup (itanje) i modificiranje podataka Pretraivanje Proirivanje (dodavanje novih podataka) Brisanje Sortiranje Spajanje i razdvajanje vie struktura RECORDS (Slog)

Sekvenca (niz) podataka razliitog tipa, redovi tabele...

30 .Definicija i ema povezane liste Struktura iji element sadri podatak i pokaziva adrese slijedeeg elementa. Redoslijed elemenata je ureen pokazivaima. Spremanje u memoriji ne mora biti u skladu sa redoslijedom elemenata. Prvi element liste naziva se razliitim imenima kao to je glava, poetak ili prvi vor (head, front, first node). Krajnji vor se naziva rep ili krajnji vor liste (tail, end ili last node). Zbog linearne strukture liste svaki vor osim prvog i zadnjeg ima svog predhodnika i sljedbenika. vor na kome se trenutno nalazimo nazivamo tekudim vorom ili tekuda pozicija u list i.

Linkovi izmeu vorova:

Single linked lists :

Svaki vor sadri dva linka - prema prethodnom i slijedeem voru

Double linked lists :

Svaki vor sadri samo link prema narednom voru

Circular lists: rep je linkovan sa glavom (zatvorena lista)

31. Navedi primjer fortranske naredbe za ispit podataka u file ? OPEN (unit=11, file='ime file-a', status='unknown,new,old') Do i=1,n ! ispis podataka u externi file Write(11,*) t,x(t) End do Do i=1,n ! itanje podataka iz file-a Read(11,*) x(i) End do Close (11) Naprimjer : Program wirite_to_file integer k open(1,file=nuberst.txt) write (1,(i4)) k end do close (1) end

You might also like