Upload
-
View
247
Download
0
Embed Size (px)
Citation preview
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
1/24
1
PANEVROPSKI UNIVERZITET APEIRON
FAKULTET POSLOVNE INFORMATIKE
Redovne studije
Smjer „IT menadžment”
Predmet
PRINIPI PRO!RAMIRAN"A
#Uvod u "ava $ro%ramiranje&
'seminars(i rad)
Predmetni nastavni(
Pro*+ dr Zoran Avramovi,
Student
Vedran Vidi,- studentIndex br. 27-10/RPI
Banja Luka, septembar 2012.
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
2/24
Sadržaj
U!d "#truktura $aa pr!%rama &
Pra'(a $aa pr!%ram'ranja )*!mpaj('ranje ' '+raanje $aa pr!%rama )*re'ranje $aa pr!%rama 7Pr!mjenj'e
a+'' pr!mjenj'' 'p!' pr!mjenj'' ek(ar'sanje pr!mjenj'' 10
aredba d!dje(j'anja 113r'tmet'4k' !perat!r' 12
ad!e+'anje str'n%!a 1"*!mentar' 1"Pr!%ramsk' '+(a+ 1&Pr!jekt 5 pr!%ramerska s(aa 16'+ajn'ranje pr!jekta 17In''ja('+a'ja pr!mjenj'e 178atemat'4ke 9unk'je 1U(a+n' met!d' pr!%rama 1Pr'mjer u(a+n' met!da 20:ak(ju4ak 2"L'teratura 2&
2
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
3/24
Uvod
$aa je ra4unarsk' pr!%ramsk' je+'k k!j' je ra+'(a 9'rma #un 8'r!s;stems.Pr!%ramsk' je+'k se k!r'st' +a '+daanje 'nstruk'ja ra4unaru da !ba' k!nkretne
p!s(!e. $aa ka! pr!%ramsk' je+'k je nasta(a 16. %!d. ' '+u+etn! je p!pu(arna.Pr' ra+(!% p!pu(arn!st' je 'jena, s !b+'r!m da je p!tpun! besp(atna. 8n!%' pr!%ramsk' je+'' se pr!daju p! 'jen' !d 'e st!t'na '(' '(jada d!(ara, t! je eut'm, ta
jedn!stan!st ne +na4' da $aa n'je m!
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
4/24
Stru(tura "ava $ro%rama
$aa, ka! ' sak' dru%' je+'k ?ra4unarsk' '(' %!!rn'A, 'ma s!ju term'n!(!%'ju.$aa pr!%ram ?'(' pr!jektA 4'n' nek!('k! dat!teka. e dat!teke se na+'aju k(asama.
#aka !d t' dat!teka 'ma $aa k!d k!j' !ba(ja nek' spe'9'4an +adatak '(' +adatke.#aka dat!teka k(ase 'ma !+naku t'pa dat!teke, tak!+anu eksten+'ju .jaa. a+'dat!teke k!j' se k!r'st' +a sn'manje k(ase m!ra da !d%!ara na+'u k(ase. $edna k(asau sak!m pr!jektu e je u!4(j'a !b(ast u k!du k!ja 'ma r'je4 ma'n. ! je %(an' met!dk!j' je p!treban u jedn!j !d k(asa pr!jekta. Pr!%ram ?'(' pr!jektA sa4'njaa 'edat!teka k!je se na+'aju k(asama, a k!je sadr=e aktue(n' $aa k!d. na k(asa !d k!jese p!4'nje je %(ana k(asa. Pr!jekt' se %rup'u u radne !b(ast' ?en%(. E!rkspaesA. Uda(jnjem tekstu uju neke 'n9!rma'je! pr!%ramu, tj. ! k!m pr!%ramu se rad' ' 'n9!rma'ju +a k!ntakt. *!mentar p!4'nje sas'mb!(!m /G ' +araa se sa s'mb!(!m G/. ' red!' su p!+nat' ' ka! +a%(a(je
pr!%rama ?en%(. pr!%ram eaderA. !br! je da se u'jek sta(ja +a%(ja(je u $aa pr!%rame u k!j'ma je 'n9!rma'ja ta rade ' k! ' je nap'sa!. $aa k!mpaj(er '%n!r'esak' k!mentar 5 nj'!a u(!%a je sam! da pru=a !bjanjenje.Pr' red p!s(e k!mentara sadr=' s(ede
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
5/24
pub(' (ass Ee(!me J
aj red sadr=' de9'n''ju k(ase na+ane Ee(!me. *(ju4na ?en%(. ke;C!rdA r'je4
pub(' !dre>uje da (' dru%' d'je(!' pr!%rama m!%u da pr'stupaju !!j k(as'. *(ju4ner'je4' su d'! sak!% pr!%ramsk!% je+'ka 5 t! su re+er'sane r'je4' ' ne m!%u se k!r'st't'u re%u(arn'm $aa '+ra+'ma. L'jea 't'4asta +a%rada ?JA se k!r'st' da !+na4' p!4etak de9'n''je k(ase.#(edeena u $au, !ut je !bjekat k(ase k!j' se !dn!s' na '+(a+n' pr!+!r ?en%(. !utput C'nd!CA. R'je4 pr'nt(n ?pr'nt ('neA pr'ka+uje jedan red teksta. ekst k!jese pr'ka+uje je p!d na!dn''ma ?u $reat!ru je ' u dru%!j b!j' rad' pre%(edn!st'A.Iska+ se +araa sa ?OA. U !!m pr!st!m pr'mjeru, %(an' met!d 'ma sam! jedan'ska+, d!k en' u $aa je+'k.P!s(e !!% reda s('jede da reda !d k!j' sak' 'ma desnu 't'4astu +a%radu ?A. Pra+a%rada !k!n4aa%(an' met!d, d!k dru%a k!n4aa de9'n''ju k(ase.P!trebn! je u'jek
pa+'t' da su 't'4aste +a%rade uparene, tj. da sak!j ('je!j !d%ara jedna desna.U sut'n', ptrebn! je +a%(a(je pr!%rama, de9'n''jak(ase ' %(an' met!d ka! ' !>enjera4una ! sn'manju dat!teke k(ase p!d 'st'm na+'!m p!d k!j'm je k(asa de9'n'sana. a
dat!teka 'ma !+naku ?t+. eksten+'juA .jaa.
6
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
6/24
Pravi.a "ava $ro%ramiranja
- $aa k!d +atjea per9ek'ju. #e k(ju4ne r'je4' m!raju b't' k!rektn! +ap'sane.- $aa ra+('kuje ma(a ' e('ka s(!a ?en%(. ase-sens't'eA, t! +na4' da se e('ka '
ma(a s(!a smatraju ra+('4't'm +na!k'ma.- $aa '%n!r'e b'je(e ('n'je ?en%(. C'te spaeA, k!r'ste se rad' pre%(edn!st'.- H't'4aste +a%rade se k!r'ste +a %rup'sanje. ne mark'raju p!4etak ' +aretak
pr!%ramsk' sek'ja. #ek'ja k!da '+me>u d'je !d%!araju
$aa pr!%ram?.jaa dat!tekaA
$aak!mpaj(er
$aa !bjektn' k!d?.(ass dat!tekaA
abe(a 1 5 @ra9'4k' pr'ka+ pr!esa k!mpaj('ranja
Pr' '+raanju $aa pr!%rama, !e .(ass dat!teke !bra>uju net! t! se +'e $aaInterpreter unutar 'rtue(ne ma'ne. aj 'nterpreter „ra+%!araQ sa ra4unar!m '
)
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
7/24
pre!d' $aa naredbe u =e(jene re+uktate. a s(ede
$aa'rtue(na ma'na
?$aa InterpreterA
Pr!%ram na ra4unaru
abe(a 2 5 @ra9'4k' pr'ka+ pr!es '+raanja pr!%rama
Kreiranje "ava $ro%rama
U pr'mjeru Ee(!me sm! 'dje(' da naredba tampa neku 'n9!rma'ju ?„!br!d!s(' u
test pr!jekatNQA. #ak' pr!%ram je sa4'njen !d 'e $aa naredb' k!je ra4unar treba da!brad'. Pra(jenje ra4unarsk!% pr!%rama p!m!ut'm, +a nas je ma(! te=e t! sa!pt't' ra4unaru na nje%!!m je+'ku. :a pr!st
pr'mjer sab'ranja t' k!ra' b' b'('F- +adaj r'jedn!st pr!% br!ja,- +adaj r'jedn!st dru%!% br!ja,- saber' pr' br!j sa dru%'m, re+u(tat je +b'r, tj. tre
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
8/24
U !'m k!ra'ma ra4unar b' treba(! da rad' 'st' p!sa! ?d!daanje br!jaA "62 puta.Ra4unar' su e!ma d!br! k!d p!s(!a k!j' se p!na(jaju, na+'aju se pet(je ?en%(.(!!p'n%A.
ajjedn!stan'j' pr'mjer pet(je b' b'! a(%!r'tam +a k(as'4nu kartaku '%ru „RatQ u k!j!jda '%ra4a u+'maju karte '+ standardn!% p'(a ' !naj k!j' 'ma „ja4uQ kartu n!s' kartu
dru%!% '%ra4a. Pr!es se nasta(ja se d!k u p'(u 'ma karata. *! sakup' 'e karatakada se '%ra +ar' je p!bjedn'k. I%ranje !e '%re +at'jea s(ede'anje k!ja jekarta ja4a. a kraju, k!rak 6 tra=' p!na(janje d'je(jenja karata se d!k ' 'ma u p'(u.
:a sak' $aa pr!%ram k!j' se pra', najb!(je je pr! nap'sat' n'+ (!%'4k' k!raka k!j'
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
9/24
Ko.i2ina Na/iv $romjenjive
$ed'n'4na 'jena pr!'+!da 'tem!stBr!j p!ru4en' pr!'+!da numberItems'jena s' pr!'+!da t!ta(Item!st
a+' sake pr!mjenj'e p!4'nje sa ma('m s(!!m a e('k'm s(!!m p!4'nje saka p!t!nja r'je4 u na+'u pr!mjenj'e.
Ti$ovi $romjenjivi1
P!trebn! je +nat' t'p 'n9!rma'je k!ju 4ua ?dr='A saka pr!mjenj'a. a (' sadr=' br!jS
a (' br!j 'ma de'ma(nu ta4ku ?+are+AS a (' sadr=' tekstua(nu 'n9!rma'juSPra pr!mjenj'a je t'pa 'nt ?'nte%erA. aj t'p pr!mjenj'e se k!r'st' +a predsta(janje'je(', ne-de'ma(n' br!jea. Pr'mjerF
1 -20 &000
&,000 ?an%(!saks!nsk' !b('k +ap's'anja br!jeaA u $a' se p'e ka! &000 5 ne k!r'stese +are+' k!d e('k' br!jea. U pr'mjeru '+nad, numberItems treba da bude
pr!mjenj'a t'pa 'nt.3k! pr!mjenj'a treba da 4ua br!j k!j' 'ma de'ma(nu ta4ku, tj. +are+, take
pr!mjenj'e
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
10/24
str'n% ?n'sku, ('stuA ra+('4't' +nak!a. #tr'n% m!=e b't' str'n% br!jea, re4en'a, pasus, b'(! k!j' +na' u!pte. est!, str'n% neen' na!dn''ma. Pr'mjerF
„$a sam $aa pr!%ramerQ „012"&6)7Q „*!mentarQ
3e(.arisanje $romjenjivi1
*!d 'men!anja pr!mjenj'' ' !dre>'anja t'pa, te 'n9!rma'je se m!raju pr!s('jed't'$aa pr!jektu. P!trebn! je da dek(ar'em! s!je pr!mjenj'e. $aa naredba k!ja sek!r'st' +a dek(ar'sanje pr!mjenj'e 'men!ane ar'ab(eame a t'pa t;pe jeF
t;pe ar'ab(eameO
P!trebna je naredba dek(ara'ja ka! !a +a saku pre!mjenj'u u pr!jektu.d%!araju
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
11/24
b!!(ean 'sItemkO#tr'n% m;Itemesr'pt'!nO
/G statak %(an!% met!da G/
Nared4a dodje.jivanja
ajpr!st'ja ' naj'e k!r'
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
12/24
$edna !d star' u k!j!j su ra4unarsk' pr!%ram' jak! d!br' je ar'tmet'ka. n' m!%ue!ma br+! da sab'raju, !du+'maju, mn!=e ' d'je(e br!jee. P!st!j' pet ar'tmet'4k'!perat!ra k!j' se k!r'ste '+ $aa je+'ka a t! suF
- sab'ranje ?XA,- !du+'manje ?-A,
- mn!=enje ?GA,- d'je(jenje ?/A,- !statak ?YA.
3k! naredba d!dje(j'anja 'ma 'e !d jedn!% ar'tmet'4k!% !perat!ra $aa spre4aam!%uen' red!s('jed p! k!me se ar'tmet'4k' !perat!r' pr'mjenjuju. ajred!s('jed je s(edee, pr'!r'tet se m!=e sta't'
p!m!
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
13/24
Nadove/ivanje strin%ova
3r'tmet'4k' !perat!r' se m!%u pr'mjen't' na numer'4ke pr!mjenj'e ?t'p 'nt ' t'pd!ub(eA. ak!>e, m!=e se !per'sat' ' sa str'n% pr!mjenj'ama. est! se u $aa
pr!jekt'ma u+'ma str'n% pr!mjenj'a sa jedn!% mjesta ' d!daje se na kraj dru%!%
str'n%a. ! se na+'a nad!e+'anje ?en%(. !netenat'!nA str'n%!a. pera!rnad!e+'anja je +nak p(us ?XA ' tak! se k!r'st', na pr'mjerF
neC#tr'n% V „$a samQ X „$aa pr!%ramerNQO
P!s(e !e naredbe, str'n% pr!mjenj'a neC#tr'n% e d! k!n9u+'je kada k!r'st'm! !ba !pert!ra. #tr'n%
pr!mjenj'e 4'ne e('k' d'! $ae.
Komentari
P!=e(jn! je u'jek s('jed't' !d%!arajue, !(akaaju budu
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
14/24
Pro%rams(i i/.a/
U pr'mjeru na s('' br!j 1 sam k!r'st'! ka! '+(a+ na ekranu tekst „!br!d!s(' u tekst pr!jekatQ .#ada
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
15/24
Proje(t 5 Pro%ramers(a s.ava
a s(a' su 'spe4ene da e('ka r!(ata s'njet'ne ' +adatak je de9'n'sat' k!('k! sak'%!st m!=e da p!jede. Pretp!sta(ja se da je du='na r!(ata p!+nata. :b!% (ake%sje4enja, sak' %!st
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
16/24
// drediti koliko gosti)u moe da se %rani i svakog sendvica
guests1 lengt%'oll1 / inc%esPerGuest&
guests2 lengt%'oll2 / inc%esPerGuest&
%uests 1 ' %uests 2 ena 'deja, tj. d!br! d'+ajn'ran pr!jekat, uted'
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
17/24
*ada se dek(ar'e pr!mjenj'a, nj!j se d!dje(juje neka (!ka'ja u mem!r'j' ra4unara uk!j!j se na(a+' neka nepred'd'a r'jedn!st. est!, t! je sas'm d!!(jn!, uk!('k! sene +ab!ra' u pr!mjenj'!j d!d'je('t' neku k!r'snu r'jedn!st ne%dje u s!m
pr!%ramsk!m k!du. P!st!je s(u4aje' kada treba d!d'je('t' 'n''ja(nu r'jedn!st
pr!mjenj'!j kada se dek(ar'e. aka 'n''ja('+a'ja je d!bra pr!%ramerska praksa ak!se +na r'jedn!st k!ju pr!mjenj'a treba da 'ma ?4est! se t! ne
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
18/24
Matemati2(e *un(6ije
*a! ' dru%' ra4unarsk' je+'', $aa 'ma m!%uene 9unk'j' kak! b' m!%(a da rad'. U !!jnaredb' d!dje(j'anja, 9unt'!name k!r'st' r'jedn!st' '+ ar%umentL'st da '+ra4unare+u(tat ' d!dje(' %a pr!mjenj'!j p!d na+'!m 9unt'!nHa(ue. Pr!mjenj'a
9unt'!nHa(ue m!ra b't' 'st!% t'pa ka! r'jedn!st k!ju '+ra4unaa 9unk'ja9unt'!name. 8et!d' k!j' p!dr=aaju matemat'4ke 9unk'je 'mp(ement'ran' su u $aak(as' 8at. Prema t!me, da b' se k!r'st'(a k!nkretna 9unk'ja, p'e se 8at, +at'mta4ka ' p!s(e t!%a 'me 9unk'je.3ps!(utna r'jedn!st, u matemat'', je p!+'t'n' d'! br!ja. $aa 9unk'ja jeF
8at.abs?ar%umentA
%dje je ar%ument br!j 4'ja se aps!(utna r'jedn!st '+u4aa. 3r%ument m!=e b't' '(' 'nt'(' d!ub(e t'pa a ra
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
19/24
%dje je ar%ument br!j 4'j' se kadratn' k!r'jen '+ra4unaa. 3r%ument m!ra da bude ne-ne%at'an d!ub(e br!j ' ra
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
20/24
'nt user3%eOuser3%e V ;pe't.'nInt?„*!('k! 'mate %!d'naSQAO
Pr! se p'e 'me k(ase ;pe't ?!! je pret!dn! nap'sana k(asa +a u(a+n' met!d 4'je
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
21/24
pub(' stat' !'d 'nput[(us?AJ'nt dumm;O'nt b3a'(Otr;JC'(e??#;stem.'n.aa'(ab(e?AA NV 0AJdumm; V #;stem.'n.read?AOat?jaa.'!.IWxept'!n eAJ#;stem.!ut.pr'nt(n?M@reska u kuanjuMAO
pub(' stat' #tr'n% 'n#tr'n%?#tr'n% pr!mptA
J'nput[(us?AO pr'ntPr!mpt?pr!mptAOreturn 'n#tr'n%?AO
pub(' stat' #tr'n% 'n#tr'n%?AJ'nt aarO#tr'n% s V MMO
b!!(ean 9'n'sed V 9a(seOC'(e?N9'n'sedAJ
tr;Jaar V #;stem.'n.read?AO'9 ?aar ] 0 ^^ ?arAaar VV D_nDAJ9'n'sed V trueOe(se '9 ??arAaar NV D_rDAJs V s X ?arA aarO
at?jaa.'!.IWxept'!n eAJ#;stem.!ut.pr'nt(n?M@reska u kuanjuMAO9'n'sed V trueOreturn sO
pub(' stat' 'nt 'nInt?#tr'n% pr!mptAJC'(e?trueA
21
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
22/24
J'nput[(us?AO
pr'ntPr!mpt?pr!mptAOtr;Jreturn Inte%er.a(ue9?'n#tr'n%?A.tr'm?AA.'ntHa(ue?AOat?umber[!rmatWxept'!n eAJ#;stem.!ut.pr'nt(n?M@reska u kuanju. 'je 'je(' br!jMAO
pub(' stat' d!ub(e 'n!ub(e?#tr'n% pr!mptAJC'(e?trueAJ'nput[(us?AO
pr'ntPr!mpt?pr!mptAOtr;Jreturn !ub(e.a(ue9?'n#tr'n%?A.tr'm?AA.d!ub(eHa(ue?AOat?umber[!rmatWxept'!n eAJ#;stem.!ut.pr'nt(n?M@reska u kuanju. aka n'je p(utaju' br!jMAO
ak!n t! sam napra'! ;pe't.jaa pr!%ram, r'jeme je da %a urst'm u s!j pr!jekatk!j' uje na '+(a+ sa pr'nt(n. *ada se t! p!ja' n!' red se +ap!4'nje.
22
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
23/24
Za(.ju2a(
P!st!j' mn!%! dru%' pr!%ramsk' je+'ka k!j' se k!r'ste '(' se tek ra+matrajum!%u
8/9/2019 Principi Programiranja Seminarski Rad - Vedran Vidic
24/24
Literatura
1. ra%an 8ark!'