progarmiranje.doc

Upload: asmir-kopic

Post on 02-Jun-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Progarmiranje.doc

    1/21

  • 8/10/2019 Progarmiranje.doc

    2/21

    superordiniranog algoritma, dok se za stvarne izlazne parametre mogu postaviti samopromjenljive superordiniranog algoritma.Razmotri%emo razmjenu navedenih tipova parametara.'roj, tip i redoslijed navo$enja stvarnih parametara mora biti identian kao kod formalnih

    parametara pri emu se njihovi identifikatori ne moraju poklapati. o je dozvoljeno injenicomda superordinirani algoritam nema pristupa interijeru podalgoritma i obrnuto. )rije prenosa

    upravljanja sa superordiniranog algoritma na podalgoritam, vri se prenos stvarnih parametara idodjeljivanje njihovih vrijednosti formalnim parametrima podalgoritma po redoslijedu njihovognavo$enja (prvo se prenosi prvo navedeni parametar, pa drugi, tre%i itd..)o prenosu svih parametara, prenosi se upravljanje na podalgoritam koji sada moe otpoetiizvravanje svojih operacija jer raspolae svim ulaznim vrijednostima koje se nalaze uodgovaraju%im formalnim parametrima.#brnuti proces se deava na zavretku podalgoritma prilikom vra%anja upravljanjasuperordiniranom algoritmu.

    Prema smjeru prenosa vrijednosti, razlikuju se tri tipa parametara:

    1. Ulazni parametri! nose u sebi ulazne vrijednosti za dati podalgoritam. *a narednoj sliciulazni parametri su navedeni odmah do strelica koje oznaavaju prenos upravljanja ka pozvanom

    podalgoritmu (ul&+, ul&', ...

    ehanizam prenosa ulaznih parametara ine koraci-&. uperordinirani algoritam pri pozivu podalgoritma, a prije transfera upravljanja, postavlja

    konkretne (stvarne vrijednosti na mjesta ulaznih stvarnih parametara./. )ozvani podalgoritam preuzima stvarne vrijednosti koje su proslije$ene i prihvata ih kao

    vrijednosti odgovaraju%ih formalnih ulaznih parametara kada postaje mogu%e izvravanje

    odre$enih operacija nad njima u tijelu podalgoritma.0ano je ista%i da operacije podalgoritma mogu trajno promijeniti vrijednosti koje su dobijenekao ulazni parametri, pri emu te izmjene nisu vidljive van interijera pozvanog algoritma.)rema smjeru prenosa vrijednosti, razlikuju se tri tipa parametara-

    2. zlazni parametri! nose u sebi izlazne vrijednosti datog podalgoritma, rezultate njegovogizvravanja. *a narednoj slici izlazni parametri su navedeni odmah do strelica koje iznaavaju

    prenos upravljanja ka superordiniranom algoritmu (izl&+, izl&', ...

    /

  • 8/10/2019 Progarmiranje.doc

    3/21

    ehanizam prenosa izlaznih parametara ine koraci-&. )ozvani podalgoritam pri kraju svog izvravanja, a prije transfera upravljanja, postavlja

    konkretne (stvarne vrijednosti na mjesta izlaznih formalnih parametara./. uperordinirani algoritam prihvata vrijednosti koje su proslije$ene kao izlazni parametri

    pozvanog podalgoritma i dalje manipuliu njima kao vrijednostima svojih internih promjenljivihkoje su imale ulogu stvarnih parametara.)odalgoritam mora imati barem jedan izlazni parametar jer u suprotnom ne bi imao sredstvo daiskae rezultat svoga rada.

    !. Ulazno-izlazni parametri! nose u sebi vrijednosti koje za dati podalgoritam imaju ulogu iulaznih i izlaznih vrijednosti. *pr. )odalgoritam za sortiranje elemenata niza po nekomkriterijumu ima parametar niz koji je ulazno1izlaznog tipa jer pri pokretanju podalgoritma on

    prenosi elemente niza na sortiranje, dok na kraju rada podalgoritma vra%a niz sortiranihelemenata superordiniranom algoritmu (podalgoritmu.

    ehanizam prenosa ulazno1izlaznih parametara ine koraci-&. uperordinirani algoritam pri pozivu podalgoritma, a prije transfera upravljanja,uspostavlja vezu izme$u odre$enih internih promjenljivih koje sadre konkretne (stvarnevrijednosti sa ulazno1izlaznim stvarnim parametrima

    /. )ozvani podalgoritam preuzima dobijene veze sa stvarnim parametrima kako bi bio umogu%nosti da pomo%u svojih formalnih parametara pristupa vrijednostima interijerasuperordiniranog algoritma. *a ovaj nain, pozvani podalgoritam je snabdijeven ulaznimvrijednostima nad kojima moe da izvri odre$ene operacije. Zahvaljuju%iuspostavljenim vezama, svaka izmjena vrijednosti formalnih ulazno1izlaznih parametaranainjena unutar pozvanog podalgoritma bi%e vidljiva superordiniranom algoritmu i pozavretku rada pozvanog algoritma.

    2. 3ada se upravljanje vrati superordiniranom algoritmu, on u odre$enim stvarnimparametrima ima one vrijednosti koje je postavio pozivani podalgoritam.

    )ostoji posebna klasa podalgoritama koji su samo sebi i superordinirani i subordinirani !rekurzivnipodalgoritmi.Rekurzivan podalgoritam poziva sam sebe sa razliitim vrijednostima ulaznih parametara

    potreban broj puta.ehanizam rekurzije se esto koristi i u matematici prilikom definisanja raznih matematikihentiteta kao to je faktorijel.amopozivanje rekurzivnog algoritma mora biti uslovljeno.Rekurzivni podalgoritmi su omogu%ili rjeavanje nekih problema pomo%u raunara koji su do

    tada bili ili nerjeivi ili rjeivi uz velike napore.

    2

  • 8/10/2019 Progarmiranje.doc

    4/21

    Rekurzivni podalgoritmi se sastoje iz tri dijela-&.Dio koji se izvrava u dubinuine operacije podalgoritma koje se izvravaju prije pozivasamog sebe. #vaj dio se jedini izvrava tokom jednog poziva rekurzivnog podalgoritma./. Uslovljeni pozivomogu%ava samopozivanje rekurzivnog podalgoritma ako je ispunjen

    postavljeni uslov. 4slov mora konvergirati neispunjenosti kako bi se obezbijedio zavretakrekurzivnog izvravanja. 4 suprotnom dobila bi se beskonana rekurzija.

    2.Dio koji se izvrava ka povriniine operacije koje se izvravaju poslije operacije pozivasamog sebe. #vaj dio %e se prvi put izvriti unutar posljednjeg poziva rekurzivnog podalgoritmai nastaviti izvravati ka prethodnim pozivima sve do prvog poziva.

    Rekurzivni podalgoritam ne mora sadravati prvi, odnosno posljednji dio, ali mora sadravatiuslovljeni poziv.0eoma je vano obezbijediti promjene vrijednosti promjenljivih koje formiraju uslov pozivanjada poslije odre$enog broja pozivanja uslov postane neispunjen.)rimjer- 3onverzija dekadnog broja

    +lgoritam- "onverzija#ekadnogU$inarni

    5#3+5*6- *7cio broj, dekadni broj koji trebakonvertovati, *89

    &. R6)6+ )rihvat od korisnika broja * 4*:5 * 8 9/. )odalgoritam 3onvertuj;ekadni'roj(*,/.2. 3raj.

    )odalgoritam- 3onvertuj;ekadni'roj(broj,baza45+Z- broj ! cio broj, dekadni broj koji treba konvertovati baza ! cio broj, baza odredinog brojnog sistema,

    baza

  • 8/10/2019 Progarmiranje.doc

    5/21

    atlab

    )ostoje dvije klase softverskih paketa za rjeavanje matematikih problema-@ programi zasnovani na simbolikom rjeavanju i@ programi zasnovani na numerikom rjeavanju

    problema.

    ipian predstavnik prve klase programa je athematica, a druge +5+'.+5+' je dostupan u vie verzija koje su prilago$ene razliitim raunarskim platformama !od )A i acintosh raunara, preko 4*:B radnih stanica do AraC raunara.)redstavlja naje%e kori%en paket u svojoj oblasti. 0erzije +5+'7a za razliite raunarskesisteme se razlikuju donekle samo po korisnikom interfejsu ! sve komande se jednakoizvravaju na svim platformama.#vdje %e biti ukratko prikazan +5+' u verziji za DindoEs operativne sisteme.Primjena %&'(&$-a u rje)avanju in*enjerskih pro+lema+5+' je moderan, multifunkcionalan programski sistem koji je u prvom redu namijenjenrjeavanju problema u tehnici.+5+' prua korisniku mogu%nost da numeriki i logiki obradi podatke pomo%u mnotva

    raspoloivih programskih jedinica, da vizuelno prikae podatke i da proiri funkcionalnemogu%nosti kreiranjem i izvravanjem sopstvenih programa

    *pr. *a veoma jednostavan nain, znatno bre nego u drugim programskim jezicima, rjeavamotehnike probleme koji su formulisani u matrinom obliku.r +5+'7a ine numerika linearna algebra i matrini raun ! otuda i naziv +5+'7a(%&'riF (&$oratorC.+5+' je i kreiran radi unapre$enja postoje%eg softvera za matrine proraune.4 dananje vrijeme +5+' je veoma opsean sistem koji obuhvata i mnoge druge numerike

    postupke, npr.- odre$ivanje nula polinoma, numeriko rjeavanje poetnih problema kod obinihdiferencijalnih jednaina itd.nogobrojne grafike mogu%nosti omogu%avaju korisniku da formira dvo7 i trodimenzionalnekolor grafike kako na ekranu, tako i na tampau ili na ploteru.+5+' je sistem koji se nalazi u neprekidnom razvoju kome doprinose mnogobrojni stvaraociu svijetu.

    *a mnogim univerzitetima +5+' je usvojen kao standardno sredstvo u okviru kurseva izoblasti matematike, inenjerstva i nauke, a u industriji +5+' se koristi kao sredstvo uistraivanjima iji je cilj dalji razvoj proizvodnje.#snovno okruenje +5+'7a predstavlja tekstualni prozor u kome se zadaju +5+'komande.3omande se izvravaju neposredno nakon unosa.)oseban simbol ( predstavlja +5+' prompt.

    )ored toga, mogu%e je pisati i programe u programskom jeziku kojeg nudi +5+'.am +5+' programski jezik je nalik drugim proceduralnim jezicima, izuzimaju%i njegovuprilago$enost radu sa matricama.

    &(/'&%S"0 S'/U"'U/0)od terminom algoritampodrazumijevamo niz operacija koje tre+a obaviti da bi se za date

    podatke dolo do rjeenja problema.)rogram na odre$enom programskom jeziku jeste opis algoritma koji treba da bude automatskiizvren na raunaru.0eoma esto korisnik raunara ima potrebu da programira algoritme koji %e morati da budurealizovani mnogo puta sa razliitim datim podacima, pri emu ti podaci i rezultati koji se

    formiraju tokom rada programa, mogu da utiu na to koji %e algoritamski koraci biti izvreni, akoji ne, koji koraci %e biti ponovljeni i koliko puta itd.

    ?

  • 8/10/2019 Progarmiranje.doc

    6/21

    ;a bi bilo mogu%e programirati algoritme sa ovakvim tokom izvrenja, neophodno je daprogramski jezik sadri elemente, koji %e da odre$uju tok programa u zavisnosti od ulaznihpodataka odnosno od rezultata koji se formiraju za vrijeme rada programa odnosno koji %e daodre$uju ponovljeno izvo$enje nekih operacija.#ve elemente progran nazivamo kontrolne nared+e.4 nastavku %emo obraditi osnovne tipove algoritamskih struktura, kao i njihovo opisivanje

    putem naredbi u +5+'7u, odnosno programskih jedinica +5+'7a kao to su skriptiipotprogrami.

    (S"& 3S0"405&(&6 S'/U"'U/&*ajjednostavnija je linijska algoritainska struktura u kojoj algoritamski koraci slijedejedan iza drugog i izvravaju se po redoslijedu po kome su navedeni.)rilikom izvravanja jednog programa svaki algoritamski korak se izvrava jedanput.

    &/0#$0 7& S0(0"5U &(/'&%S"8 "/&"vo su kontrolne naredbe koje na osnovu vrijednosti izraza odre$uju koje naredbe %e bitiizvrene, odnosno koje ne%e biti izvrene.

    5ogiki izrazi koji se piu u okviru kontrolnih naredbi uslovljavaju nain rada programa.)ostoji vie vrsta ovih naredbi koje %emo pojedinano predstaviti.

    0#S'/&& $(" if-&/0#$&Gednostrana blok if7naredba jeste naredba kojom poinje jedan skup naredbi i koji se zavravanaredbom end.#pti oblik ovog skupa naredbi je sljede%i-

    ifuslovizvr)ne nared+e

    endgdje je uslov-logiki izraz koji odre$uje da u sluaji kada je izraz istinit (vrijednost & naredbekoje slijede budu izvrene, a u suprotnom naredba if nema efekte i izvo$enje programa senastavlja naredbom end, to znai da je zavren rad sa ovim skupom naredbi.

    4 ovom primjeru koristi%emo +5+'7ovu funkciju rem39,6kojom se odre$uje ostatakdijeljenja broja 9brojem .)rikaza%emo prvo funkcionisanje ove funkcije na primjerima.

    H

  • 8/10/2019 Progarmiranje.doc

    7/21

    I

  • 8/10/2019 Progarmiranje.doc

    8/21

  • 8/10/2019 Progarmiranje.doc

    9/21

    4 drugom skriptu, sk> umjesto prve naredbe stoji a;2i prikazati tu vrijednost. ve ostalo jeisto kao u prethodnom primjeru.Rezultat rada skripta sk> je isti kao rezultat rada skripta sk/.

    *aredba kojom se skript aktivira i rezultati rada skripta sk2 izgledaju ovako-L sk2a M

    ?broj je neparan

    b M 2

    N

  • 8/10/2019 Progarmiranje.doc

    10/21

    3od prethodnih primjera vidimo da je definisanje vrijednosti promenljive aobavljeno pomo%unaredbe za dodjeljivanje vrijednosti (uz kori%enje odgovaraju%eg operatora =.#vakav nain zahtijeva editovanje skripta kada god elimo da radimo sa novom vrijedno%u a.e$utim, funkcionalnost skripta znatno %emo pove%ati, ako definisanje promjenljive aostvarimo pomo%u funkcije inputza unoenje podataka preko tastature-a;input3?unesi a:?6@if rem3a,26;;A

    disp3B+roj je paranC6+;a>2else

    disp3?+roj je neparanC6+;3a=l6>2

    end)rilikom izvrenja skripta na ekrenu %e se pojaviti tekst unesi a:, poslije ega se preko tastatureunosi vrijednost za a.

    4D0/&& if-$(" S'/U"'U/&

    +lgoritamska struktura u bloku naredbi koji poinje blok if naredbom, a zavrava senaredbom end, esto je razgranata na vie od dvaniza uzastopnih koraka.o znai da poslije prve blok if naredbe mogu

    postojati i druge blok if naredbe, koje odre$uju po dvije nove grane algoritma.e$utim, ako se na poetku bloka koji slijedi poslije elsenaredbe treba da na$e nova blok ifnaredba, onda umjesto toga, +5+' omogu%ava primjenu prostijeg rjeenja, tj. da se umjestonaredbe elsei blok ifnaredbe upotrijebi naredba else if! slijedi primjer.

    &9

  • 8/10/2019 Progarmiranje.doc

    11/21

    if uslov1grupa nared+i1

    else if uslov2grupa nared+i2

    elsegrupa nared+i!

    end#vdje se u sluaju da je vrijednost izraza uslov2lana, prelazi na blok naredbi koje slijedeposlije else.;akle, elsenaredba u ovom sluaju je korespondentna sa else ifnaredbom.)oslije izvrenja svakog od blokova prelazi se na naredbu end. 3od ovog primjera postoje trimogu%a razliita toka obrade poslije blok ifnaredbe.

    Primjer

    ;ata su dva vektora7vrste B i O, sa po pet elemenata.

    #drediti skalarni proizvod tih vektora-S = XY'

    i u zavisnosti od vrijednosti treba definisati promjenljivu ) prema formulama-

    )M & za

  • 8/10/2019 Progarmiranje.doc

    12/21

    *aredbe koje ine skript skI glase-

    BMinput(Qvektor B-QOMinput(Qvektor O-QMBSOTdisp(Qskalarni proizvod-Q

    disp(if

  • 8/10/2019 Progarmiranje.doc

    13/21

    )osljednji blok u algoritamskoj sitGh7blok strukturi je opcion, poinje sa otherise(drugaije.*aredbe tog bloka bi%e izvrene u sluaju da osnovnu promenljivu ne pokriva ni jedan odselektora.'lok naredbi koji definie naredba sitGhzavrava se naredbom end.

    lijedi grafiki prikaz viegrane sitGh7blok strukture.

    Zadatak

    "ormirati +5+' skript u kome %e biti obavljene sljede%e operacije-(l 4noenje preko tastature- rednog broja mjeseca i indikatora & ako je godinaprestupna ili indikatora 9 ako nije.(/ #dre$ivanje broja dana u datom mjesecu.(2 )rikazati rezultat na ekranu.

    )redvidjeti prikaz teksta ?podaGi su neispravniC, ako su podaci koji su zadati pogreni (tj. ako jeredni broj mjeseca pogreno zadat.

    &2

  • 8/10/2019 Progarmiranje.doc

    14/21

    mjesecMinput(Qunesi mjesec-TgodinaMinput(Qunesi indikator za prestupnu godinu-QsEitch mjeseccaseXl,2,?,I,K,&9,&/Y

    daniM2&caseX>,H,N,&&Y

    daniM29case / if godina

    daniM/N else

    daniM/K endotherEise disp(podaci su neispravniT disp (mjesec disp (godina

    end +5+'7skript skJ-

    P&4(&0 &(/'&%S"8 "/&"&4 +5+'7u postoje naredbe kojima se odre$uje viestruko ponavljanje grupe algoritamskihkoraka, to je od izuzetne vanosti prije svega zato to korisnik ne mora vie puta da zadaje istenaredbe.Za blok naredbi koji se vie puta ponavlja koristimo naziv Giklus. 'roj ponavljanja utvr$uje se u

    prvoj, tj. naslovnoj naredbi ciklusa.)rema nainu po kome se odre$uje broj izvravanja naredbi, cikluse dijelimo na +rojKanecikluse i uslovljenecikluse.

    $/L& 5"(US - &/0#$& +reak3od ove vrste ciklusa eksplicitno zadajemo koliko puta %e biti izvrene naredbe koje ine ciklus.#pti oblik ciklusa ematski prikazujemo kao-

    for definisanje +roja ponavljanjanared+e u Giklusu

    end0idimo da prva naredba ciklusa poinje sa forposlije ega se pie izraz kojim se definie broj

    ponavljanja ciklusa, koji ima oblik-

    promjenljivaMGiklusa;nizgdje se sa desne strane znaka jednakosti pie izraz kojim se definiu elementi naje%ejednodimenzionog niza.

    &>

  • 8/10/2019 Progarmiranje.doc

    15/21

  • 8/10/2019 Progarmiranje.doc

    16/21

    +5+'7skriptsk1A-

    FMinput(Qunesi niz F-T*Minput(Q*MQfor iMl-*7l

    for jMl-*7i

    if F(j

  • 8/10/2019 Progarmiranje.doc

    17/21

    4naprijed odre$eni broj prolazaka kroz jednostruku ili viestruku, koncentrinu ciklinustrukturu ne%e biti ostvaren ako se unutar ciklusaupotrijebi naredba +reak(- prekid.

    *aredbom +reakodre$uje se prelazak na zavrnu naredbu jednostrukog ciklusa end, toznai

    prestanak rada u ciklinoj strukturi.

    3od vie koncentrinih ciklusa naredba+reakmoe da se upotrijebi samo u najdubljem ciklusu.

    Zadatak

    ;ati su vektor7vrsta F i vrijednost +.*apisati +5+' skript u kome %e se utvrditi da li u nizu F postoji broj +.#drediti i redni broj prvog elementa sa tom vrijedno%u.

    *a izlazu prikazati komentare o rezultatima rada programa-a broj + se nalazi na poziciji...

    b broj + se ne nalazi u nizu F.

    &. izvrenje skriptaL sk&&niz FMU& ? -& &KK 2>V+M7&

    broj + se nalazi na poziciji2

    2. izvrenje skriptaL skllniz FMUl ? 7&& KK 2>V+M9

    broj + se ne nalazi u nizu F

    &I

  • 8/10/2019 Progarmiranje.doc

    18/21

    US(4(0 5"(US3od uslovljenog ciklusa (hile ciklus broj prolazaka kroz ciklus zavisi od logikog uslova kojistoji u naslovnoj naredbi ciklusa.3od svakog novog prolaska kroz ciklus taj uslov se iznova ispituje. ve dok (engl. Ehile jevrijednost logikog izraza istinita (& ciklus %e biti izvravan. 3ada vrijednost logikog izraza

    bude lana (9, naredbe ciklusa %e biti preskoene i program %e nastaviti rad po prvoj sljede%oj

    naredbi poslije ciklusa. #vo moe da se dogodi i pri prvom ispitivanju logikog izraza unaslovnoj naredbi ciklusa.

    #pti oblik skupa naredbi koje ine uslovljeni ciklus jeste-hile uslov

    nared+e u Giklusuend

    4 sklopu naredbi ciklusa treba da bude osigurano da %e logiki izraz tokom izvravanja naredbiciklusa imati vrijednost 9.

    *aredba +reak tako$e moe da se primijeni unutar ciklusa ove vrste.\rafiko prikazivanje naslovne naredbe hile ciklusa i uopte cijelog ciklusa izvodi%emo

    potpuno analogno kao kod brojanih ciklusa.

    &K

  • 8/10/2019 Progarmiranje.doc

    19/21

    Skript sk12-

    alfaMinput(QalfaMQFMinput(QFMQepsMinput(Qepsilon-QcMl.fMl.

    aMl1alfaiM&.fkM&.Ehile abs(c

  • 8/10/2019 Progarmiranje.doc

    20/21

    l.9999e799?FM

    9./999f M

    &.9H/Ii M

    H

    /9

  • 8/10/2019 Progarmiranje.doc

    21/21