Dr. Željko Jurić: Tehnike programiraponavl nja /krjoanjz pre progretahmsodnogki jezii utk C++/ vrđivanje nov Kolekcija neobaveznih zadataka za
Zadaci za
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
samostalno vježbanje 3.
Sviranizadacje steičedatnogpr inogovdjprnaedznanj edossuatdašaakvinanjdaiprmesidmetespmoguitimua(a“O(uresventnaoveditiurkoralančuoišnaruztenjsmitevmna”ori.sZvjnkeljuemodizdičivocofigrmkaca(di*ij)ve,askoju označe sušetininszadac i koj i (#) su označeni zadaci koji su u prethodnim generacijama bili zadaci za zadaćki nišuta. ne Napidemonsšitetrfuirnkcajteijuu tkojestankaoom prparograuklmetamujuačriuvprokojikojmeami csisujeeldjsiabreltjaoivsjtiastaurseutmomraži csijveojli ibrhvrocajićfaarkaoa. Napirezulsatnuat sfvuenkccijeijlue eni obno razdvojene zarezima (iza posljednjeg elementa ne treba ispisivati zarez). na ekratn,ražmeđus ≤ ≤ ≤ … a neki podniz kažemo da j e ≥ ≥ ≥ … ≥ vra baća kao rezultat vekt“ or koji se sastojii odjoj jele”eprmenateneseankojkaoi prparedsamettavlajarj.uNanajprdiužmijemonot o ni podni z ni z r, ukoliko se izvrše naredbe naNapipodniekrsaznuovaanufu(tnkcrsevbai ijsuudademons sondae pojisttareivirdužiajitsepinuse)t“e, sftunnkcomijpra ot”rgr.ebaUamusdalukojčaprjuiotnađedaražiposdatosjei sviašetasnajtatduužire hunesmonote sloijniedh t o r , a koj i nakon t o ga pozi v a napi s a nu f u nkc i j u da odr e di naj d uži monot o ni podniz unesenog slijeda brojeva i ispiše ga na ekran. najbr−6,ojde−3,uživa 3,−1,pod5, −2,−2. 4,Napr−6,a−3,vite−1,funkc−2,iju7,koj6,a3,kao−5,par−1,amet−4,a6,r 0,pr9,imnja evektgovonajr duži negatieva,vni podni z gl a s i aposkojtoazjivrniviazšćaea kaonajdružiezulh tnegatat vektivniorhkojpodnii sezsaas(tsovjii sodu ondaelemenatisteadužikojinpre)e, dsfutnkcavlijjaajutrnajebadužidaU snegatprlučoanađejuivnida podni (gledano sliojjoejva)i tra. žiU sdalučsaejusadatassutastuvrieelunesemente silvektijed obrraojeva u neki vektor, a koji nakon toga poziva napisžajanuzamifunkcšlijjeunogda odrrobotedianajkojdužii moženegatidavni spodnie krezćunese kreonogz koorslijeddain brojeva i ispiše ga na ekran. pomoć u “ ” , “ ” i “ ” . “ ” i “ ” s u Promj“enlj”ivai “ čuvaju ” je tipa “ ”, koji predstavlja pobrojani tip definiran kao Ovapr−ogrpraommjkoj−enlKrijkoriavja. Opcissandrikijžuei Lnudiinodnos formslacjendećiojuDeoobropcpraćvcuijeruozabotu kojupra naleamvlijjraeonjvoboteodnostrenutnononadesgle−da.noPotzar90ebno j−e napraviti Opc i j a K zavr š a va pr o gr a m. Sve dr u ge opc i j e s u i l e gal n e, i t r e baj u doves t i do prsjeiverjave. Digrjeašlokge iizponovnog među progrizabormaaiopckoriijsen. Naikapočmogaoetkubiraizda,glerdatoboti poputse nalsaljziedećnaepozig: ciji (0,0) i gleda na
prva tri predavanja i
su se pojavljivali mijenjaju). mijenjaju). Tarabom 1#.
, a koja kreira i
brojeve iz opsega od 1 do
kreira
, a koji zatim generira vektor pozivom napisane funkcije i, na kraju, ispisuje elemente tako kreiranog vektora vektor
2#. Neka je dat neki niz brojeva. brojeva. Podniz tog niza je svaki slijed uzastopnih elemenata tog niza, tj. slijed monoton ukoliko za njegove elemente oblika , , , ..., . Dalje, z vrijedi da je ili da je . Potrebno je napisati funkciju NajduziMonotoniPodniz koja NajduziMonotoniPodniz koja kao parametar prima vektor cijelih brojeva, a koja rojeva koji se nalaze u vektoru koj std::vector v{3, 6, 7, 5, 2, 4, 8, 9, 8, 8, 5, 3, 2, 4, 9, 9, 7, 1}; for(int x : NajduziMonotoniPodniz(v)) std::cout << x << " "; 9 8 8 5 3 2
prvi od njih (gledano slijeva).
brojeva u neki vek
3#. Neka je dat neki neki niz brojeva. brojeva. Pod najdužim negativnim podnizom tog podnizom tog niza brojeva podrazumijeva se niz uzastopnih brojeva tog niza koji su svi negativni . Na primjer, ukoliko imamo niz cijelih broj
brojeva koji se nalaze u vektoru koji joj je prenesen kao parametar.
prvi od njih nenegativni (tako da negativni podnizovi ne postoje), funkcija treba da vrati prazan vektor kao rezultat. Funkciju demonstrirajte u testnom programu k
4#. Polo koordinatama opisuje se tipa int one int
orjentacija orjentacija
atni sistem sa cjelobrojnim orjentacija Promjenljive x orjentacija y tri promjenljive x y odnosno koordinatu pozicije na kojoj se robot trenutno nalazi. Pravci Pravci
Pravci {Sjever, Istok, Jug, Zapad}; Pravci enum
robotom: L
Nalijevo; D Nadesno; I Idi; K °. Opcija I treba da pita korisnika za broj koraka, a nakon toga pomjera robota zadani broj koraka u pravcu u kojem robot trenutno gleda.
1
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
Robot se nalazi na poziciji (0,0) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Robot se nalazi na poziciji (0,0) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Unesi broj koraka: 5 Robot se nalazi na poziciji (5,0) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Pogrešna komanda! Unesi komandu (L – Nalijevo, D – Nadesno, Robot se nalazi na poziciji (5,0) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Unesi broj koraka: 3 Robot se nalazi na poziciji (5,3) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Robot se nalazi na poziciji (5,3) i gleda Unesi komandu (L – Nalijevo, D – Nadesno, Pogrešna komanda! Unesi komandu (L – Nalijevo, D – Nadesno, Dovidjenja!
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
na sjever. I – Idi, K – Kraj): D na istok. I – Idi, K – Kraj): I na istok. I – Idi, K – Kraj): S I – Idi, K – Kraj): L na sjever. I – Idi, K – Kraj): I na sjever. I – Idi, K – Kraj): L na zapad. I – Idi, K – Kraj): KK I – Idi, K – Kraj): K
obr a đen u . t a ko š t o ć e t e “ ak u slučaju da”, aseprmateprraivicetikojfunkce suijeim“ proslijeđene kao” i “parda saemetu njrei mune moguhvat“”atjsauakobiizuzecrdaati,baciodnoseventajun”uiozaliuzetmnoži t i . Takođe n o bač e ni i z ovi h f u nkc i j a . Napivraćašikaote furnkcezulijtuatkojvria prima vektor od kao parametar, i koja računa i + + … + Vodirezultteartaničujenaredaalaunjbreziokj,ufuC++nkcijiandekstrebai vektbacitoiriazuzetidu odak.0,Napia nešitode i1.krUatskliutčeasjtundai prsougrelaemmentu koji teamkvićedate tNapiakođeršite funkciju koja prima vektor od bač e ni h koj a r a č u na i vraća kao rezul1 tat vrijednost izraza + + + 1 1 …+ 1 Vodiskoje negdj teme ćraeečtepojunademons daavi diujjeterlzijierknjauteiC++napinulosim,nadeksnufunkcfuinkcvektijaijtourreanabaidsbacueodkvenciti0,izaiuzetneododak.1.NapiU slšuitčeajiukrdaatskui teleestmentni priogram u također unosi sa tastature). Obavezno predvidite i hvatanje eventualno bačenih Napivraćašikaote furnkcezulijtuatkojvriajeprdnosimatvektizrazaor od koja računa i 1 + +1 + +1 + +.. + + +1 +.. + Vodite računa da u jeziku C++ indeksi vektora idu od 0, aNapine odšite1. U slučaju da su elementi takvi daćestee također bačenih
5. Prepravite program za demonstraciju rada sa matricama MoguSeMnoziti izbaciti funkcije MoguSeSabirati
Predavanju 3_a
SaberiMatrice
PomnoziMatrice
r je potrebno prepraviti glavni program tako
6*.
realnih brojeva
,
, ...,
jednost izraza
demonstrirati napisanu funkciju na sekvenci od brojeva koji se unose sa tastature (prethodno se unosi sa tastature). Obavezno predvidite i hvatanje eventualno izuzetaka iz funkcije. 7*.
realnih brojeva
,
, ...,
kao parametar, a
takvi da
brojeva koji se unose sa tastature
(prethodno se izuzetaka iz funkcije. 8*.
realnih brojeva
,
, ...,
kao parametar, a
neki od nazivnika anulira, funkcija treba baciti izuzetak. i kratki testni program u kojem demonstrirati napisanu funkciju na sekvenci od brojeva koji se unose sa tastature (prethodno se unosi sa tastature). Obavezno predvidite i hvatanje eventualno izuzetaka iz funkcije. 2
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
9.
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
Napi šite funkciju koja računa vrijednost funkcije ) definirane sljedećim izrazom, pri čemu su (, ) ( +) −(−1) Unegatslučiavjanu dabrofuj,nkci konačija ninjeo,defukoliniirkaona,nazionavnitkredobiba dajebacvrijieidnoszuzettanulk. Toa. Zasesmoževaki oddesovaiti utrtirislsulučačjaajat:reakoba bactilriaodgovar ižitidaraszleičasiajtuetćautsitpporaovetuurekuizunosuzeto greaeka.vrškiijFunkc i j u t e s t i r a j t e u gl a vnom pr o gr a mu koj i u bes k onač n oj pet l j i e dnos t i ar g umenat a ( n a os n ovu bač e nog i z uzet k a) . Pr i t e s t i r a nj u obavezno pr o nađi tNapiakvešivrteijednosti argumenat a za koj e ć e s e des i t i s v aki od t r i moguć a i z uzet k a. t r a ž i da ispiše redni broj kol one sa najvećom sumom elemenata, redniktbrôroāj)r. ePrdaogrsaanajm nakon manjomtogasumomtreba , ukol i k o j e on uj e dno naj v eć i el e men spare nalametaziari najprimvećaimatelermenticu orkolganionizirusaenukojdlokaoo, jasenekevektnaloairzihvekt)mogu . Pojôarāmi,masatekojdli aai vimatkaošer.riNapieczule odtšaittvelevrfiaukćnkcoga koljiejuiznačkkojo saeadaljakaoua parprimametjeruamatr nemaricesčtirjeuktseudirummatenzirijceei (eltje. mentukoliki ounossvieresdovia proslijeđenog vektora vektôrā nemaju isti Napišite funkciju sa jednim par ametrom i vr a ć a kao r e zul t a t vekt ô r ā mješteni5,umatredosriclaijterdueba da ima s,lujesdećmjieoblru kazalik: jke na satu, počev ( ,
i realni argumenti:
nije prirodan broj ili nula (tada suma nema smisla), zatim ukoliko se pod korijenom pojavi
i , a koji potom ispisuje vrijednost funkcije te
10.
program koji da se sa tastature unese prirodan broj , a nakon toga elementi kvadratne matrice formata (matricu treba organizirati kao vektor ve elemenata, kao i sumu elemenata na dijagonali.
11#.Neki element matrice naziva se njeno sedlo t u redu u kojem se nalazi i najmanji element u koloni u kojoj se nalazi, ili obrnuto (tj. najmanji element u redu u kojem teoriji igara. Nemaju sve matrice
posjeduje ta matrica (odnosno 0 ukoliko matrica ne posjeduje niti jedno sedlo). Ukoliko preneseni broj elemenata), funkcija treba baciti izuzetak. Napisanu funkciju testirajte u glavnom programu na tastature.
12.
koji je prirodan broj, a koja kreira kvadratnu matricu formata organiziranu kao vektor . Elementi ove matrice su slijed po spirali prirodnih brojeva 1, 2, 3, ..., raz od gornjeg lijevog ugla. Na primjer, za = 1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
.“Napišite, afukojnkci biije”t.r“ebaočpretierdsi tavljati matricu r”e, al“ nih brojeva. Funkc“ ”,ija”,““ ” ”i t a r “ ” zai s t a i m a s t r u kt u r u mat r i c e , odnos n o da l i s v i r e dovi i m aj u jteednakst ne brzadovol oj elemenat a. Ovaija “ funkcija ne vraća nik”akavtrebaredazulkaotat, rvećezulstaamot vrbacati aFriozbeniuzetauksoukolvu niko se j i . Funkc ““ ” treba da” tkaorebaredazulkaotat vrreazulti trtaanst vrponovanu ati logičkmatu),vrari“ijceudnosu odnos”t “ u na” ukomatKonačricunokoja joj je proslijeđena kao argument . Sverice,ovešto sfuenkcmožeije učtrienbajitiupozibacviomti izfuuzetnkcaijke “u slučaju da parametar “ ”” u r u mat čvektije odirma vektenziōjerâikojeleimentnemaeisunospravani koroblisinkikmatputriecme. tastature. Također, u istom programu Napisanu funkciju demonstrirajte u testnom programu koji za uneseni broj sa tastature generira i ispisuje elemente ovako formirane matrice.
13#
TestIspravnostiMatrice
Transponovana Sve funkcije primaju brojeva treba da testira da li parame A
FrobeniusovaNorma DaLiJeDonjaTrougaona jedan parametar A koji je vektor vektora realnih TestIspravnostiMatrice
ormu matrice, koja se dobija kao kvadratni korijen iz sume kvadrata svih elemenata matrice. Funkcija DaLiJeDonjaTrougaona true liko je matrica donja trougaona (tj. ako ima sve nule iznad glavne dijagonale false ako nije. , funkcija FrobeniusovaNorma
Transponovana
A
TestIspravnostiMatrice nema ispravnu strukt iz svih preostalih funkcija. Napisane funkcije testirajte u glavnom programu na primjeru matrice trebate testirati da li ispravno radi bacanje izuzetaka i njihovo hvatanje na primjeru nekog konkretnog
3
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
14*.
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
Zaelpreinekimmenata nekuelaementkojmati srmateicunalroriacgezeanikažemo da j e l i j e vo, des n o, i z nad i i s p od nj e ga. Napi š i t e f u nkc i j u koj a kao par a met a r z i r a nu kao vekt o r vekt ô r ā , a kao r e zul t a t daj e l o gi č k u vr i j e dnos t “ t a č n o” itlrieba“netdaačbacno”i iuzuzetovisank.osNapiti odšitteogai krdaatkliiismatječarkicpra oimgraamastacuiokojnarenmihćeelteemenat a i l i ne. U s l u č a j u da demons t r i r a t i kako s e može predvidite i hvatajnje emateventricaualčinjiosbaču sveinogeleimentzuzetikia.sključivo logičke vrijednosti “tačno” ili “netačno” nad konač n i m s k upovi m a) . Za l o gi č k u kažemo da j e ) t a č n i , da j Napilogi)čšktiitahekođervrfuinkcjednostiajučakojtni,(aaimkojkaoe apotparkaoičaemetrodezulačritnaprjtevrniimacaćeanekudalogisečlkovakvi m mat r i c a ma opi s u j u o gi č k u mat r i c u or g ani z i r a nu kao vekt o r vekt ō r â u vr i j e dnos t “ t a č n o” i l i “ n et a č n o” u ovi s n os t i da lseliluejemenat mat r i c a t r a nzi t i v na i l i ne. U s l u č a j u da par a met a r nema obl i k kvadr a t n e mat r i c e , ukl j u č u j u ć i i čmatraijcakada”.aNapi), tparrešbaiatmetebaci akrirtiauopćtizkuzeti iesjaenemakčatkipaprfo“orgrmaumamatkojriciepr(”tijuzk. azujukolpraeitkekakooći njteeksgoviset “korParreiadovismetti napianemar nisajenakvadrfunkcatinjaa (Napiukljšuičteujfuućnkci i hvatiju kojanjaekaoeventparualametno bačar prenogihvatizauzetmatkra)icu organiziranu kao vektor vektōrâ realno " ) a kao r e z u l t a t vr a ć a kompl e ks a n br o j č i J i s u r e al n i i i m agi n ar n i di o t a kođer t i p a " . Funkc i j a t r e ba da t r a ns f o r m i r a mat r i c u pr o s l i j e đenu kao par a met a r na nač i n da sbaclučiatijuizdauzepartakamettipkaoaa“rrnemaezultaoblt trikebamat”vruzriactpreit(iatkompl jt.eukolći teksiekksot anj“Pneargovibraometj rčeiajdoviirsnemau nemaj u i s t i br o j el e menat a ) , t r e ba frealnoirmi iummataginraricen”i. diOsoimmiznaimjmaleneni korkoriissttiitnapii niksakveana fpomoć n e ni z o ve i l i vekt o r e . Napi š i t e i kr a t k i i s j e č a k pr o gr u nkc i j a ( u kl j u č u j u ć i i hvat a nj e event u al n o bač e nog i z u z e t k a) . Napivektnačinoš,ritaevektkojfunkcaōrsâeijrrueaalzlnikogujetipoda (iztivorpa n"e (proslijeađene)kao rmatezulrtiactevrpoaćtaome što joj je U s l u č a j u da pr v i par a met a r nema obl i k mat r i c e ( t j . ukol i k o nj e govi r e dovi nemaj u i s t i br o j elmatemenat a ) , t r e ba bac i t i i z uzet a k t i p a “ ” uz pr a t e ć i t e ks t “ P ar a met a r nema f o r m u rrespekticei”v. no.čijZai surealreialzacniijui ifmunkcaginijearninijedidozvol o m j e no kor i s t i t i ni k akve pomoć n e ni Napihvatašnjitee event i kratukali nisojebaččakenogprogrizauzetmakkoja).i ilustrira kako se koristi napisana funkcija (uključujući i Zadobikvadrjeni actiknluičmatkimri(ckurukažemo da j e žnim) pomj4 imeraanjslejemdećprieoblthodnog r e da za j e dno mj e s t o udes n o. Na pr i m j e r , ik: injcireknulšpariatnteafnmetuunkcmatarijukojric“ui jieliorne.ganiFunkcziranijakaotredekba” kojvrdekova aatvritia“ća(trje. zuldek”tkačtij“i su el”ementili “ i dekovi” ovi) sprnoedsodtatvlogaja nekuda li uključujući i slučajeve kad parametar uopće nema formu matrice (tj. kada različiti redovi nemaju
stacionaran ukoliko je njegova vrijednost jednaka vrijednosti
parametar nema formu matrice (tj. ukoliko svi redovi nemaju jednak broj elemenata), funkcija iskoristiti napisana funkcija. Pretpostavite da su elementi matrice realni brojevi. Obavezno
15*.Logička matrica (ovakve matrice koriste se za opisivanje relacija kvadratnu matricu formata tranzitivna ukoliko za bilo koju trojku indeksa , i u opsegu od 1 do vrijedi da ako su elementi na pozicijama ( , ) i ( , e tada i element na poziciji tranzitivne relacije). (,
ju isti broj
domain_error
.
16*.
g tipa (tipa "double "double kolonu sa minimalnim proizvodom elemenata razmijeni sa kolonom sa maksimalnim proizvodom elemenata. U domain_error
kolona, funkcija odnosno maksimalni proizvod po kolonama respektivno. Za realizaciju funkcije nije dozvoljeno ama koji ilustrira kako se 17*.
sa dva parametra koja kao prvi parametar prihvata matricu organiziranu kao novu matricu organiziranu na isti double"), red sa maksimalnom sumom elemenata razmijenjen sa redom sa minimalnom sumom elemenata u odnosu na izvornu matricu. domain_error
U drugi parametar treba smjestiti kompleksni broj (sa realnim i imaginarnim dijelom tipa "double") aksimalna odnosno minimalna suma po redovima zove ili vektore.
18*.
cirkulantna ukoliko su elementi svakog njenog reda osim prvog
cirkulantna matrica formata 4 ×
Nap
true
DaLiJeCirkulantna
false
isti broj elemenata).
4
false
ad god se ne radi o cirkulantnoj matrici,
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
kažemo da j e dikaoovijasgonalnvektostioerod(vektgltaovnegaôrādaicsipjleiorlithaebldne)bricoajeiprva,stie.dsaNapikojtavlašjiakaotemagifurnkcezulčnijituakvadrt dajealtoigiličneku (vrloijgiednosčka vrt “ijteadnosčno”til“in“netetačančno”o”seu amalćoamautinssve,jeimčtkasubllupričcaaojgrečviiajimmaraekojdoviu koji neenemaj vrkvadr prm ćeedstuetzaaisvltmatijabrjuromagiijcuelfeočmenat nrmi kvadr a t , ukl j u č u j u ć i i s l u č a j t a bl i c a koj e ni s u a , i t d . ) . Napi s a nu f u nkc i j u i s k or i s t i t e u at a č i j i s e el e ment i unos e s a t a s t a t u r e se također unosi sa tastature) ispisati da li njeni elementi obrazuju savršeni magični defmanjiniraaodsetatakokonađeni što sehzanajNapisvvakiećšihirteevrdfiujmatenkcdnosriijcuteikojnađepoarekaodovinajvprmeća.vai ednos t u t o m r e du, a onda s e uzme naj parislturčeaaćmetjiupardaaraprmetprimvaiarparnekusmajemetmatštaarmiricnema uniormaxganioblodnosziranunokaomaxivektmionr vrvektijeōdnosrâ retialponihrbredoviojeva,maazakojtauumatsvojricdru.ugiU t i p a “ ” uz pr a t e ć i t e ks t “ P ar a met a r nema f o r m u matnapirsoćiacenan”e. fFunkc i j a ne vr a ć a ni k akav r e zul t a t . Za r e al i z ac i j u f u nkc i j e ni j e dozvol j e no kor i s t i t i ni k akve niunkczoveija (iluiklvektjučuojrueć.i iNapihvatšaitnje eieventkratkuialinsjoečbačakeprnogogrizauzetma kkoja)i. prikazuje kako se koristi koj a s e dobi j a t a ko š t o s e s v aki el e men pr3 i če5mu su svi elementi tog bloka jednaki , , 40 −12 33 33 33 33 55 55 55 55 44 44 44 44 −− 11 −− 11 −− 11 −− 11 Napi00 šite00 funkc00 iju00 “ 22 22 22 22 ” sa 3 parametra. Prvi parametar je matrica vekt o r vekt ō r â r e al n i h br o j e va ( t j . vekt o r č i j i s u el e ment i , i t o t i p a “ ” ) , dok s u dr u gi i t r e ć i . U s l u č a j u da j e neki od nul a i l i negat i v an, f u nkc i j a t r e ba da bac i i z uzet a k t i p a “ ”uz pr a t e ć i tukolteipksati“k“oNelsveigalredovini parpr”auzometslprijreiađenog ”t.eUćisteluksčatju“Ndaekorvektprevktiōparnrâa matametriacra”nema. ispravnu formu matrice, odnosno demons t r i r a j t e u t e s t n om pr o gr a mu u koj e m s e s a t a s t a t u r e pr v o t r a ž i unos dva , te konačno dva cijela brojiada ispiše njene koji bi eventualno mogli biti bačeni iz funkcije. …… …… … …
19*. Za tablicu formata × se u njoj nalaze svi brojevi od 1 do
savršeni magični kvadrat (engl. perfect magic square) ukoliko i ukoliko je zbir elemenata svakog reda, svake kolone i obje koja kao parametar prima tablicu organiziranu
×
red po red ( kvadrat ili ne.
20*. Minimax vrijednost matrice po redovima vrij Analogno se definira i maximin vrijednost matrice po redovima .
ik matrice (tj. ukoliko njegovi redovi nemaju isti broj
elemenata), treba baciti izuzetak
domain_error
pom
21#.Neka je A neka matrica formata formata ×
× . Pod
× ekspanzijom matrice
A smatramo novu matricu t matrice A zamijeni blokom formata . Na primjer, ukoliko matrica A glasi
×
A =
njena 2 × 4 ekspanzija glasi
A sa
EkspanzijaMatrice
elementima koja je organizirana kao vektori realnih brojeva double Funkcija treba da kreira i kao rezultat vrati parametara ili
realnim
parametar cijeli brojevi
× ekspanziju matrice
i
.
A
domain_error
vektora
nemaju isti broj elemenata, treba baciti izuzetak
domain_error
Napisanu funkciju cijela broja i , zatim elementi matrice A formata × i . Program nakon toga treba da pozivom napisane funkcije kreira × ekspanziju matrice A elemente na ekran, svaki red u posebnom redu na ekranu. Obavezno predvidite hvatanje izuzetaka 22#.Neka su date dvije matrice A i B, formata
A=
× i
B=
5
× respektivno:
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
⊗
… … … … … … … … … … … … …… …… …… …… ⊗ … …… …… …… …… … … … … 3 4 05 − 21 102 450 − 402 133 30 1512 −612 93 50 2025 −1020 155 20 10 −4 62 ⊗ 640 20160 −160 1294 1000 000 000 1500 −140 −4−50 −420 −1−36 0 0 12 0 0 0 0 −2 0 0 −3 Naprorganiaviozitrseavneifruenkckaodoviijuvektpr“osolrijeeđenivekthôrvektā. Ukolôrā ivektko ”parôrkojāamet(ada,kaoriovajnemajputudvaisprputavnua zaforermdomu matgeniritciev, množodnosinne)o nemaj u i s t i br o j el e menat a , t r e ba bac i t i i z u z e t a k t i p a “ ” koj i s a dr ž i j e dan od s l j e deć i h tnemaj ekstovau fo“Prmrvui parmatarmetice”a, rovinemasno odfortmogau mato čermuice”j,e“Dzariusgitaparrijeačmet. ar nema formu matrice” ili “Parametri (imgoratei najlijevvo,išegor seusdesjeda,no,i tdolo sjue, pollijevoazećilii odozgo dolje desi glno)edaj. Drućuigiumrerdosiječliijmedua, makazalkojjkieelnaementsatu,ele,mentmožei , ,matrice,neć e im,ati svih, sus,jedni h el,emenat,a. Recimo, za elemente koji se nalaze u “rubove” , , , Nakon š t o s m o uvel i poj a m s u s j e dni h el e menat a , uveš ć e mo poj a m matmatzaprrraiiccvoee kažemo da j e nj e n vr h ukol i k o ni j e dan nj e gov s u s j e d ni j e već i od nj pos m at r a mo kao nadmor s k e vi s i n e nekog t e r e na, geomet r i j s k a i n t e r p r e t a c i j a š t a j e vr h pos t a j e oč i g l e dna) . Poš t o j e ovo poj a m l o kal n og kar a kt e r a , j a s n o j e da i s t a mat r i c a može teihmvrjehdnogimova., obipoNalčnjaeoženjdnogje emnogo nekogementvrefaihkmataasmatnriijcereiczadae moželtiusesrvarsdiheunarokorvrahvnoiustiiltivrine,šitsiv“egrdokubomse sneilom”proi,mnađeosatniosi nekinviošetersvratizlrhai.čnjiMeđut el obično Pod Kroneckerovim (ili tenzorskim) proizvodom ovih matrica smatra se matrica A × definirana kao
A
B formata
B=
Na primjer, ukoliko su matrica A i B date kao A=
B=
njihov Kroneckerov proizvod glasi
A
B=
parametre prima dvije matrice A i B
KroneckerovProizvod
ukolik
domain_error
23#.Za neki element matrice, njemu susjedni elementi su oni elementi koji se nalaze neposredno lijevo, desno, iznad ili ispod njih, kao i elementi koji se nalaze jedno polje dijagonalno u odnosu na njih
,
,
,
,
,
,
i
. Naravno, elementi koji se nalaze uz
prvom redu matrice nemaju susjednih elemenata sa gornje strane, odnosno za njih ne postoje elementi , i , itd.
vrha matrice. Za neki element ega (ukoliko elemente
algoritam iz porodice algoritama koji se nazivaju penjanje uz brdo (engl. hill climbing). Za ovaj konkretan problem, ovaj algoritam bi izgledao ovako. Krenemo od nekog elementa, i ispitamo sve njegove 6
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
nalazimo je očigledno vrh, i postupak je završen. U suprotnom, pređemo na najveći od svih njegovih kormataprirsiatcevieć,tieodnos sfturankctengiiojjvektuuukol“penjoirkvektoanjsavōi ruzrâe”dovicbrisjeadlio.3hprbrparProsovljaieijmeteva.parđenogUraasmet, lkojučaaarjunaljdae amatovajzivektlroikacparcōarâiasjmetua nekog cjaerlonemabrodojniivrmsphrovaelavnuementmatforirmmicuae t(rparerbaiačmetebacmuaritnumer ipriezdsuzettaacvlaijkjaajtruiepdovaraes“pekti kolivnoonarepočdnii”nbrjuzeojodrpredanulateiećkol)i. tUkoleoksnetielk“oNementekorovi pareaktodanmetakojmatreigukazuj rzapočica”. uiDrnnajeugiprpozieitrtcraeigajćui koj““Nekora izelaktzinaizvanpocetopsnaegapozi” čmaticjiijarr”eialcen,i tireimbaagibacnaritnii idizuzeto reaskpekttipa “ ” uz prateći tekst kolU solunečagdjju dae jezavrnekih proelnađen.ement postoji više susjeda koji su najveći, vrh koji će biti pronađen može pr e š l i . Da bi r e zul t a t i bi l i j e dnoznač n i ( š t o rnaladiazilamkšoeguztersutbiramatnjar)i,cseu)s.jUedeslutečsa,tjnariuradajatevnovipolšepraelzećeesmenat i ačodozgoućiaprimiiautoirsmeetdosu najneposlijveećdutuokazaljvrećiejeeljdnoskeementnat, stareetuba(ukaokolpreiškćtoionasjee k onaj element na koji naiđemo ajte u testnom programu u kojem se sa tastature prvo traži unos dva , t e konač n o dva c i j e l a br o j a Prvriojegrdnosam nakon t o ga t r e ba da pozi v om napi s a ne f u nkc i j e pr o nađe vr h mat r i c e pol a zeć i od e , teprdaedvinadekriteahvatn isapnjišee inazuzetkojaokaj sekojpozii bicevent iji naluaalzinnađeni t. Obavezno o moglivrbihtiibačkoleikniaijzefunjnkcegovaije. U moderežavajnoju dis,agčiijtiajlenojjediobrniaeldiemetsignalbrao,jvel1, tijk. i značaj imaju tzv. (1) veći−h od 0, alsh izražava se p − − 11 −11 1 1 1 1 1 −1 1 −1 − 11 −11 −1−1 −11 1 1 −1 1 11 − 11 11 − 11 11 − 11 1 1 −1 −1 1 1 −1 −1 − 111 −1−11 −111 −111 −1−11 −1−11 −1−1−1 −111 11 −11 −1−1 −11 −1−1 −11 11 −11 susjede. Ukoliko su svi njegovi susjedi manji ili jednaki od njega, element na kojem se upravo susjeda, i ponavljamo dalje postupak od njega, sve dok se vrh ne dostigne. N
VrhMatrice
organizirana kao
vektora
nemaju isti broj elemenata,
domain_error
p
range_error
std::complex
. Funkcija treba da kao rezultat vrati kompleksni broj tipa ivno predstavljaju redni broj reda i
zavisiti od toga na koji smo od tih susjeda
je neophodno
opisano u uvodnom razmatranju
prvi u takvom redoslijedu pretrage.
Napisanu funkciju demonstrir cijela broja i , zatim elementi matrice sa indeksima
A formata
×
i . lementa
i
Vrijedi ista napomena kao u prethodnom zadatku. 24#. obilj formata 1 × 1
, gdje je
Walsh-Hadamardove matrice, koje se prirodan broj ili 0. Walsh-Hadamardova matrica reda 0 je matrica
=
Za ostale vrijednosti indeksa Walsh-Hadamardove matrice reda
-Hadamardova matrica reda 1 preko formule
=
Na primjer, =
=
=
=
=
=
7
reko
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
itd. Oči−gledno je svaka alsh dvos2. Isttroutkoako,većočaignegolednozaje 2 Hadamar d ove mat r i c e i s k l j u č i v o 1 i l i − Napikaovektōršeritâzule. Uftuasnkctluvrčiaajjćua“daaljesnegat ” koj a kao par a met a r pr i m a pr i r o dan br o j h “ i v an, f u nkc i j a t r e ba da bac i i z uzet a k t i p a ” uz pr a t e ć i tekst“Indeks ne moze bi−ti negativan”. “ ” “−“ -Hadamardova matrica za neki indeks indeks 1, tako da je Walsh-Hadamardova matrica reda formata da su svi elementi ma koje Walsh1. u WalshHadamardovaMatrica -Hadamardovu matricu reda , tj. matricu
, a koja , organiziranu kao vektor domain_error
Funkciju demonstrirajte u testnom programu koji za uneseni broj ispisuje na ekran Walsh-Hadamardovu matricu reda u kompaktnom obliku, gdje se umjesto elemenata 1 ili 1 na ekran ispisuju samo znakovi + ili . Na primjer, matrica treba se ispisati u obliku ++++++++ +−+−+−+− ++−−++−− +−−++−−+ ++++−−−− +−+−−+−+ ++−−−−++ +−−+−++−
Napomena: Poš t o di m enzi j e al s h već e od 6, j e r ć e i s p i s na ekr a nu bi t i ogr o man ( z a već e od 10,šitbiećpre ogrogroamnom koji zauzeć e memor i j e ) . e sa taunesstatuernome unesbreojuneki. Procgrijealmi brtroejba, a dakojpri ćoeizzatvedeimdinajalekrog kojanui iiszpgliesadati poput znak čsiljjaedećje ASCIeig:trIašžiifrdaa jesdnaka da se sakojtaisprtateutrheodeunesunese nekienomznak,znakuakojodnosi će nzato ikojm nai sliekrjedeanuizaisnjpiesgaati njpreegovumašitteaASCIblpriocigrIASCIašmifruIkojš, ikaofirit.raižiznakove Napitčoega,mušpristeeoprgrdužaaomgraostrmenbakojovidaicatrinalasžicratodazijekorsdnakokr ia gorsnnikjae,adakia krunestraaćpezaeosdvasnaovičprijaciarjoesdnaadužidonjbrnaoejdužeastrane.os nDvaovicunese ena znaka se koriste za iscrtavanje ruba odnos“ ” in“o”,unutprikrazašnanjoekrsti atrnua treba da izgleda ovako: -Hadamardove matrice rastu izuzetno brzo sa porastom nemojte testirati program za vrijednosti
,
25. Napi
Unesi neki broj: 67 Znak koji ima ASCII šifru 67 je znak C.
26. Napi
27.
i , kao i dva znaka. Nakon a visina , pri
peza respektovno. Na primjer, ukoliko se
unesu broj 7 i 20 kao i znakovi *
+
******************** *++++++++++++++++* *++++++++++++++* *++++++++++++* *++++++++++* *++++++++* ********
28.
Napišite program koji traži od korisnika da unese neparan prsiraodanupisbraniomj većdijagonali od a3,ma,kaočiijedvasu “ ” i “ ”, prikaz na ekranu treba da izgleda ovako:
znaka. Nakon toga, program treba da iscrta kvadrat visine stranice paralelne rubovima ekrana. Pri tome se prvi znak koristi za iscrtavanje ruba kvadrata i dijagonala, dok se drugi znak koristi za popunjavanje ostatka kvadrata. Na primjer, ukoliko se + unese broj 9 i znakovi * ********* **+++++** *+*+++*+* *++*+*++* *+++*+++* *++*+*++* *+*+++*+* **++++++* *********
8
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
29.
Akademska godina 2016/17
Napizatimšitiescprrta,ovagra aunutverm kojtrikaialštnnrjaoožispostodznakom koravljiesnnik“pajdaeščunesani seatdva” viprsinireodnaℎ i šbriroinjaeℎ,pri čemu seℎ rub iscrtava t , crtež bi trebao izgledati ovako: i
znakom = '*' i
i dva znaka
. Na primjer, ukoliko unesemo vrijednosti
i
, a koji
= 8,
= 12,
= '+'
++++++++++++ +********+ +******+ +****+ +****+ +******+ +********+ ++++++++++++
30.
Zadaci za samostalno vježbanje 3
og gradiva
Napitrouglšiatenaprsoljgredećamokojj sliictir,akojži idapredstavlja primjer za
se sa tastature unese prirodan broj < 20, a koji zatim na ekranu iscrtava jednakokraki trougao (trokut) sastavljen od velikih slova. Trougao treba da izgleda poput = 10: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA ABCDEFGHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHIJIHGFEDCBA
31.
Napiekranušiteisprcrtoagrvaamšarkoju koji traaižizgldaedasepoputsa tasštaarteurnae unessljedeće projirodan broj
manji od 12, a koji zatim na slici, koja prikazuje primjer za = 6:
AAAAAAAAAAAA ABBBBBBBBBBA ABCCCCCCCCBA ABCDDDDDDCBA ABCDEEEEDCBA ABCDEFFEDCBA ABCDEFFEDCBA ABCDEEEEDCBA ABCDDDDDDCBA ABCCCCCCCCBA ABBBBBBBBBBA AAAAAAAAAAAA
Opikojesgno,se šnalaraaziizkvadr gledaakaot saskvadr a t s a s t a vl j e nod s l o va “ A ” č i j a j e š i r i n a i vi s i n a t a vl j e n od s l o va “ B ” č i j a j e š i r i n a i vi s i n a − Napiu skislcšairduttea prprsaoadolgrvouglajme prikojtirkaiazanom tpezražisaodstaslkorvlikjom.einsnodiSpolkaveldajiakšunesinhjislroeuvabcitjčreialjeipezasbre projseaavevistaugaovljennaljeaodzi ssalodonjva “Ae”des, sljneedećstriasne,loj (tik uz rub)šsaisrtianvlujenjnejgovee od osslonvaovi“cBe”,usljznakovi edeći slmoja.od slova “C”, itd. Pri tome,
znakova, unutar 2 znakova, itd.
32.
i . Nakon toga, program treba
da
trapeza, a primjer, za
= 10 i
Pretpostavite da je = 20, prikaz na ekranu treba izgledati ovako:
AAAAAAAAAAA ABBBBBBBBBBA ABCCCCCCCCCBA ABCDDDDDDDDCBA ABCDEEEEEEEDCBA ABCDEEEEEEEEDCBA ABCDDDDDDDDDDDCBA ABCCCCCCCCCCCCCCBA ABBBBBBBBBBBBBBBBBA AAAAAAAAAAAAAAAAAAAA
9
<
predstavlja visinu < 20. Na
< 70 i
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
Napiekranušiteisprcrtoagrvaamšarkoju koji traaižizgldaedasepoputsa tasštaarteurnae unessljedeće projisrloicdani, kojbraoprjikazuje primjer z
33.
manji od 20, a koji zatim na a = 5:
EE DEED CDEEDC BCDEEDCB ABCDEEDCBA BCDEEDCB CDEEDC DEED EE
Napidrugišittiepfaunkc“ ij,us”“a. Ovavrhomfunkcusimjajet”rreesanibadvamdanagorparamete. Parraa“metar “” i “ ””,prodedskojtaihvljjae prvisviintuiptaro“ugla”, ua znakovi m a, a par a met a r “ ” pr e ds t a vl j a znak koj i m ć e s e i s c r t a t i r e ba da s e i s c r t a znakom č i j a j e ASCI I š i f r a za j e di n i c u već a od ASCI I š i f r e znaka u prethodnom redu, Na primjer, ukoliko izvršimo poziv
34.
CrtajTrougao
visina
znak
int
iscrta na ekranu trougao sastavljen od znakova, koji je
char
iznutra prazan
visina
vrh trougla. Svaki naredni red
znak
trougla t
CrtajTrougao(7, 'C');
prikaz na ekranu treba izgledati ovako: C D D E E F
F
G
G H H IIIIIIIIIIIII
35.
Napipočestnainuznakfunkcunosijuititeputstieramjtetaspomoć u gl a vnog pr o gr a ma u koj e m ć e s e žel j e na vi s i n a t r o ugl a i t a t u r e . Kortsraadržiisžtieći tip podat, kojaakaod“ove dvij“e rečerniečceenidolceazi prije po abecednom poretku, kaonapiišrietečenicurkoječeaniscea sobrastnoutji oodm poroveedvitkuje(ordečkreniajacekasapočstaevltjkeu)ne. Przaji etodno.me, zaTakođer , uispkorišiitsetiprtevoperu odacoveije kojdviejseurpodrečenižcanee u t u s v r h zaNapitipšipodat a ka “ ” . t e pr o gr a m pr v o t r a ži da s e s a t a s t a t u r e unes e r e č e ni c a , a koj i zat i m i s p i s u j e pos l j e dnj u r i j e č tpose reljčeednjniceer. iDobrječi uorobrečeanitictiemogupažnjnalu naazitotidarazmacrečenii (ckaojmožee ne tirmebaatiissapmoisivjatednui). riječ, kao i da se nakon Nazovi m o neku r i j e č “ k or e kt n om” ukol i k o dužas“hmvn”isluod). datNapi2 selošdefva.iteinNafiucnkciprje,iimjjejrers,ardriježči “2badlgruepekuvjsuegl” jaesnkorikaektsana,vietšaearriodj,eač2“kojbuzasalagfkaotteokrpnairhevnu”zulsutglatniasvrjneiakkorćaa(el“oktlgginftča”kuui vrpriejdsednostavltja“korekt” nilui r“iječ ili”ne, ovi(usno od toga da li string koji joj je proslijeđen kao parametar r i j e č Napi“ šite”)fukojnkci prijueds“tavlja neku r”ečkojeniacukao, a koja vraća kao rezultat broj riječi unutar te rečenice. Pri tpočomeetksue spodtrinpojga)mi daomse“riizjeačpos” podrljednjazumieg znakajeva snalvakaazisrkaupizmakna s(uossjiemdniukolh znakova među koj i m a nema i k o s e pos l j e dnj i znak nal a zi naza sstarmoming “ krOvoaju sjterinprga)im.jeNar. prim”. jNapier, sstrainung f“uOnkcvo ijjeuprteismtirjearjt.”esuasgltoavnom ji se odprtorgri raijmueči,naa issttorinvrgoviijedimia string definiran u istoimenoj standardnoj biblioteci, program koji da se sa tastature unesu dvije , a zatim na ekranu ispisuje koliko svaka od znakova
string
36.
37*.
se u njoj ne pojavljuje skupina uzastopnih suglasnika
u koja prihvata string kao param
true
false
testnom programu koji za
38*.
smislu gore date definicije). Napisanu funkciju demonstrirajte u unesenu sa tastature ispisuje da li je korektna ili nije.
BrojRijeci
parametar prima jedan string (tj. parametar tipa
string
razmaka, takva da se ispred prvog znaka nalazi razmak (osim ukoliko se prvi znak nalazi na samom
koji se unose sa tastature.
10
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
39.
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
Napirinetčeernišpiunkcte priojsgrkeamznakove) koji prvioritjreačžii. Obrda saetitseapažnjtasactaitujuudarekolunesrijiekčoiertreaeččerenieničceceanimogu, caazatimbiimatiisrslapozdvojivasuje(nesneevakursaačuvirinajšjeečuodtćei jreadnogzmacir.aZazmaka,realizkaoacijui korda issetinate tsipamom“ poč”eitodgovar ku i na saajumomće manikrapjuulraecčiejeniscaestmoguringovitamkođera. nalazit š i t e f u nkc i j u koj a pr i m a neki s t r i n g kao par a met a r , a koj a vr a ć a kao r e zul t a t i s t i s t r i n g š i f r i r a n Cezar o vom š i f r o m. Ovaš i f r a s p ada u naj s t a r i j e poznat e s i s t e me š i f r o vanj a , pr e ma koj o j s e s v aki znakpospremaljeidnjzsvorljaedećntreiroznaka ejčtenicabece zamiede,jenjkojujiesseamiznakom jenjajukojsa iprsevapotriabecznakaediabecnalaezide)3 znaka , odnosisnporzamjed (ueznaizuzetse vraški Šifrovano i j e nj e ni . Na pr i m j e r , ukol i k o i z vor n a r e č e ni c a gl a s i “ D ANAS J E LJ E TA” , š i f r o vana r e č e ni c a ć e gl a s i t i “ G DQDV MH CDGQML GDQ OMHD” . fisupnkcisuijjeunjdemons t r i r a j t e u kr a t k om t e s t n om pr o gr a mu koj i za r e č e ni c u unes e nu s a t a s t a t u r e e nu š i f r i r a nu ver z i j u pomoć u Cezar o ve š i f r e . Napipriz ekojdsšiettaesvlufjuauklnkcnekuonjijuerniekojčeeventnia ckaou,uaalkojnpari asauvrmetviašćnaairkaoraprzmacirmezulai.jtPodeadant novisusvitrsšitnnriigmng(rtkojaj.zmacpari praeimmetdsatasavlmrjatatiirpsaatmou“tusrveečeranizmake ”c)u,kojalii ( t j . r a zmake na poč e t k u s t r i n ga) , zat i m s v e rraazmake iizzameđuposljreriidnjmjejčeeirg(, tukolznaka koj i ni j e r a zmak ( t j . r a zmake na kr a j u s t r i n ga) , kao i s v e vi š e s t r u ke zmake j . r i j e č i u r e zul t i r a j u ć e m s t r i n gu t r e ba da budu r a zdvoj e ne s a mo j e dni m i k o s e f u nkc i j i kao par a met a r pr o s l i j e di s t r i n g “ Ovo j e pr i m j e r . ” , funkcija kao rezultat treba da vrati string “Ovo je primjer.”. Napisanu funkciju testirajte u glavnom ikaobez rršaeizmaka, tzule ftuankct vriiaujtuikojnovičijeimjesstprurinvriigjeparkojči međus aimetse saasrotbnonekioji odrsatizdvojrsitnihg,reaijneedrčizukaogi parstrainmetg zadanar nekiprznak.vim parFunkcametijraotm,rebasamoda Smatjomeđena r a s e da j e r i j e č s v aki uzas t o pni ni z znakova koj i ni s u r a zmac i , omeđen s l i j e va i zdes n a s a po ednim razmakom ( o s i m ukol i k o s e r i j e č nal a zi na poč e t k u odnos n o kr a j u s t r i n ga, kada ne mor a bi t i r a zmakom s l i j e va odnos n o zdes n a) . Rec i m o, ukol i k o s e kao pr v i par a met a r zada s t r i n g “ ” a kao dr u gi par a met a r znak zar e z, f u nkc i j a kao r e zul t a t t r e ba da vr a t i string “Danas,je,ispit,iz,TP a”. Napišite i kratki isječak programa koji Jdredanžave,odsanačstoijni ase“šautrjtoeovačrme, umjkog”daestsgovor a među dj e c o m, koj i j e popul a r a n u neki m di j e l o vi m a naš e e nakon s v akog s a mogl a s n i k a ubac i s l o vo “ p ” i ponovl j e ni t a j o “ d obar dan” kaže s e “ d opobapar dapan” . Napr a vi t e f u nkc i j u koj a kaonaš“šaterparmovačajemetzikik”u,aursaprklkojiamduaa objskaoa eopikatreszulatniiptmaat“prdajavielonovim.” zaRadiskojtriinjsegednoskojpreittpaprvnososetdsavlttiaj,avlprdajaetpripsosteudstarviteačtvleenijadacnekuurečerniecceanisacudrnaži Napinekog š i t e f u nkc i j u bi n ar n og br o j a ( t j . znakovi t o g s t r i n ga t r e bal i bi bi t i s a mo “ 0 ” i l i “ 1 ” , event u al n o uz znak “ − ” naodgovar poč e t k u) . Funkc i j a t r e ba da kao r e zul t a t vr a t i c i j e l i br o j koj i pr e a j u ć e g bi n ar n og br o j a . Na pr i m j e r , ukol i k o s e ovoj f u nkc i j i kao par a met a r pr o s l i j e di s t r i n g “− 001100011001011”− , funkcija kao rezultat tre−137419. ba vratitiUvrsiljuečdnosaju dat −string sadrži znakove eventualno baččunaenogi iizsuzetpisukjea. ce u posebnom redu, kao i inform
i
string
40. Napi
ablici:
Izvorno
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Znaci koji nisu slova ostaju neizm ZADNJI DAN
Napisanu
41*.
string
koji se nalaze ispred prvog znaka koji nije razmak
razmakom). Na p
programu na stringovima koji se unose sa tastature.
42*. Nap
nakom koji se zadaje kao drugi parametar.
Danas je
ispit iz TP-a
-
demonstrira kako se koristi
napisana funkcija.
43*.
samoglasnik. Na prim
string
prevedenu na
samo velika slova. Napisanu funkciju demonstrirajte u kratkom testnom programu na stringovima koji se unose sa tastature.
44.
koja ima kao parametar neki string, za koji se pretpostavlja da predstavlja cifre dstavlja dekadnu vrijednost
100 137419, jer dekadni zapis binarnog broja 100001100011001011 glasi koji ne predstavljaju cifre binarnog broja niti oznaku predznaka, funkcija treba baciti izuzetak. Napisanu funkciju treba testirati u kratkom testnom programu koji za binarni broj unesen sa tastature ra njegov dekadni ekvivalent. Obavezno treba predviditi i hvatanje
11
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
Zadaci za samostalno vježbanje 3
og gradiva
Akademska godina 2016/17
Napišite funkciju “ ”vrkojaćaazaodgovar string akojjućiujoljojgie prčkuosvrlijiejđenednoskaot “paramet” ilia“r ispitu”j.ePodda palimalspiitnihivdranjsolomiava,mtrteaabakosmiatdagnorrarmoeičraetniriijcevent eači“iAlinauralečvolneeniircMiaezmake, kojlovana”e seinistttreoerbačpiunkctadaju budesijaskobee znake spretrpoznat anei r(anzlaprikaok. u“kiapak”palzmeđuindr). Provelm,iliikkiaomko bukval n o pr o č i t a na s a s u pr o t n og kr a j a gl a s i “ a navol i M i l o v Ana” . J o š neki od poznat i h pal i n dr o mni h rzar“Seatčeaonidirc”Ar,a“Jseoupovi“Ultiemdovinetarucoperagumubacairgurovodu”taas”Miza, l“iEvkoj,ojs”ui,nie,sted.ženiuHissrteosdnjeri”j,sek“mIi najjovigurjpeoznat tkuujsmuitjatriupalragojloindaidr”, o“imImDarajemagilaatizančsnkmasaa srvetojčsesanitmavca.a NapiNapiššiittee ifukrnkcatkiitjuekojstnai primoagrkaoam (par“ amet” faurnkcnekiiju)cuijekojli bremojće,teatekojstiaravrti anapića kaosanurefuzulnkctaitjus.tring koji −137419, f u nkc i j a t r e ba da kao r e zul t a t vr a t i s t r i n g “ − 100001100011001011” , j e r − − tNapiestnšomite prfuonkcgraijmuu “koji za br” kojoj unesa preetnvarsaataklstaastiučrneorzapiačunasane brojeve u rimski zapis. Funkcija ima treba baciti izuzetak). Ova funkcija treba da vrati kao rezultat string čiji sadržaj parnotaacmetiji. Obavezno rom 1429,prefudvinkcdiitjae ikaohvatarnjezule eventtat turealbano bačvrateinogti stirziuzetng k“Ma.CDXXIX”. Napisanu noviNapišistterinfugnkcu ijkoju “i će prepisati sadr”žsaja dvaprvogparsatmetringara tizipakoj“ eg su ”i.zFunkbačena sva eventualna
45#. DaLiJePalindrom li je palindrom ili nije, i kao rezultat
true
false
ih i
main
46.
predstavlja zapis tog istog broja u binarnom brojnom sistemu. Recimo, ukoliko se kao parametar zada broj binarni zapis broja 137419 glasi 100001100011001011. Napisanu funkciju demonstrirajte u i ispisuje njegov binarni ekvivalent. Rimski 47#. jedan parametar , koji je cijeli broj u opsegu od 1 do 3999 (ukoliko se parametar ne nalazi u ovom opsegu funkcija odgovara broju zapisanom u rimskoj notaciji. Na primjer, ukoliko se funkcija pozove sa funkciju demonstrirajte u testnom programu koji za broj unesen sa tastature ispisuje njegov zapis u rimskoj
48#.
IzbrisiPodstring
string
cija treba da kreira
pojavljivanja stringa koji je zadan drugim parametrom kao njegovog podstringa (ukoliko takvih pojavljivanja nema, string se prepisuje neizmijenjen), i da vrati tako kreirani string kao rezultat. Na primjer, nakon poziva funkcije
“ ” ( “treba da traži”.unosFunkcglaijvnogu tessttringa i podstringa koji iz njega treba ukloniti). Napišitue kojfunkci ćeijupr“episati sadržaj pr”vsoga dvastriparngaametiz kojraetgipsau“izbačena”. Funkc i j a t r e ba da kr e i r a novi sva eventualna pojavljivanja s = IzbrisiPodstring("abcxyzslkgxyzalj", "xyz");
u stringu s abcslkgalj
uz pretpostavku da je propisno deklariran) trebao bi se nalaziti niz znakova irajte na primjerima stringova koji se unose sa tastature (program
IzbrisiZnakove string 49#. string onih znakova koji se nalaze unutar stringa koji je zadan drugim parametrom (ukoliko takvih pojavljivanja nema, string se prepisuje neizmijenjen), i da vrati ta ko kreirani string kao rezultat. Na primjer, nakon poziva funkcije
“ ” ( “treba da traži”.unosFunkcglaijvnogu tessttirrainjtgae nai strprinigamjkojerimi saadrs ži znakove koje treba ukloniti). cinalliifaianrziate, rprnapunkci čseamumomijsksei znakpočprijeet(prktujv. ognešodnosznakato nštootkronigajepodsjuniststrlrionivongagani(nalucitaforziam)r,asoszmak, a i z a pos l j e dnj e g znaka r a zmak i m event u al n o ako s e t a j l u č a j u ne mor a bi t i r a zmaka i s p r e d odnos ikoncsztašrinloguernnato”neneirsapzmaka inalist,p35unjaziiahsivaelijeniinodusuvjttiejreepdanttunkcadalo,brosibudejostjka(oglporiibrznaka hm5.oijje,t.ipr”tienalzva)dai a.putzepodsNaseprštt3roiimnbrgijzeoa“rj2a, ”,njudokkojesgatriissneeneguunals“st1alrizi20ijnedigunahr“r2a2abrmjPACzmakiehstisatU2uiuldenat iiovommznakajau gi put što ispr“ed njega”),niaje razmak). Napišitvre afućankciju koja kao parametar s = IzbrisiPodstring("abcxyzslkgxyzalj", "axl");
u stringu s bcyzskgyzj
uz pretpostavku da je propisno deklariran) trebao bi se nalaziti niz znakova tringova koji se unose sa tastature (program
50*. Pod brojem unutar nekog stringa smatramo svaki njegov podstring koji se u cijelosti sastoji od podstring
interpunkcije, a dru prima neki string (tj. koji je tipa string brojeva (u gore navedenom smislu).
koja kao rezultat
12
koliko u tom stringu ima
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
Napišite funkciju “ je se nalazi. Funkc” kojijaaimpraodvanalaparzi daametli rsaetijpedana “ string”.nalFunkcazi iunutja treabar drdaugog,ispitai pardan”se dramet.uUkolgi rsotrimkinogkaojenalodgovor njaziegovunutdipotaroprv(rnvdaog,an,prprifmuinkcjčeermu,ijsatrtbrirneogbaja“jnjdae elikaopočjep”inrsejeezulnalodtanulatzivrekaoa(ttiarkodiedniodastbrzarinoprjgapoziet“hdodniancije naprikojmjeorj odr e č a n, f u nkc i j a t r e ba da vr a t i – ftuesnkctiraijudatrlei base driskuorgiinistzitiznakova u kratkomnalatziesunuttnomarprprogrvog,amui nakojkriaočjueikujspiseudvaje odgovar niza znakova s a t a s t a t u r e , a j u ć i koment a r . NapivrPraićtašoimete se podkojpojamkaoompar“riajemetč” apodrr praimzumia jedanjevastsrviakang (tsjk. parupianmeta suasrjetidnipah“riznakova ” ) , a kao r e zul t a t ječi međurekojčeniimcea skojamomi će započreečetkniucustrunesinga)enui dasa tsaestizaatuposre ilsjpeidnjsateigsvznaka nal a zi r a zmak ( o s i m ukol i k o s e pos l j e dnj i e nj e ne r i j e č i , s v aku r i j e č u pos e bnom r e du. ”imakoj, r“epačop”euninekoj,c“ubob”kojrea, č“eAsnieziczanalia”nal, i“zakiziajraask”v(ek,ojs“imamonom” etjeritčipnae, r““Potnijeven” ečrei bnokoj,”e)“j,resoaenapitakaoistotors”ačr,teiiitzultafduju.nkc)t.astFunkc obeivrjua“ćsatijraavektnekao(okrparaostršaitmetnogovasuar“kpr(apak” ogaorričjkapak sukoltraedrbaižkidaospsvreiskaoaakti svektarimgetument rorikojčnihifsurenkcijseačsiitjoiprpošjioodnaenialdvaje shtsrutirnirgnega“čPeopni“Pcop”tjiej.(podisvektvi aka“kapak” eijč.i kaosu naelzasepećmentebani”,ifustitnkcprianig)“ja.kaoNa prre”izul)mkojjteart,i pr e t p os t a vi t e da s t r i n g koj i s e t r a ns f o r m i r a s a dr ž i s a mo s l o va i r a zmake ( i nikojvelšitekaasdrkiupiumalgo)nae, sodnos n o da ne s a dr ž i i n t e r p unkc i j s k e znake ( u s u pr o t n om, ot e žava s e pr e poznavanj e znakova t v or e j e dnu r i j e č ) . Međut i m , vodi t e r a č u na da j e moguć e da r i j e č i s a dr ž e i l o va ( k oj a s e t r e t i r a j u kao j e dnaka pr i l i k om t e s t a s i m et r i č n os t i , odnos n o ne pr a vi s e rrnalaijzleačiziikbuduatiirzameđuzmacrazdvojir,ekaoceimneoresvelacivimikšoogeurasrzmaka, leočvaeni“cAikao”“i malAzii dazoagsesnalovesvapoč“laae”t)kkaj. uDalaodnoskje, vodi”n(oukrtekojarjauočjsutkaonarindagasimmogu jeetmoguć e da t a kođer r i č n e r i j e č i morZa nekuaju bitriijprečepoznat e “ A zi z a” i “ k aj a k” . jfunkce ijruij“eči su posebno česte u japansu ktomoj rjiej”ezikojčkiunaia(unzprnekojmj. seanijočrnarenčoeanis,mcAkiijenalnjhiutaojziu, ssavmogle savrašsennoici iristkažemo umNapigličansenšiirctieidaj.eTakve č i . Funkc i j a kao par a met a r pr i m a r e č e ni c u koj a s e anal i z i r a ( k oj a j e t i p a “spradrimžjiers,p”ukol)is,aakikaoskaovrsšereekaonozulstaiarmt getvrument aićčanihvektfruijnkceočriiprsjitropošinnađeni govaalje sh(ttruji.nrvektgeč“eniorcič(isjivakasu elriejmenteč kaoi tipa “ u sr”ij)edu”koji, r rda sterzulingtakojt triebase datravrnsaftoirvektmiraorskojadrižsiessaamostojisodlovatriistrrainzmake ga “Aki(hiitnio”š,t“ajedr” iu“Ygo)okohamu” . , že sadrž ri,jekaoči “Srajeocnarimoa”ui “rYe. čokohama” Dozvol enici “jenoSaj. joenarvišae razmakafromizmeđu Yokohamariječi, ” (u kojojna početku i j e napi s a t i f u nkc i j u koj a odr e đene r i j e č i u nekom s t r i n gu zamj e nj u j e neki m dr u gi m rpariječaimetma.aPrr jevivektparoarmetstrainrgovaje tip(atj.“vektor č”ijii sonu elprementedstaivltijpaas“tring u koj”) kojemi ssaedrvržšiispzamjisakeriječi koje sstreterićminigova,parjenjaametkojju i(assrvatakidrrežbajielodgovar eumentimatiavektijsutćiebrorrioajej čselaiedrkojmenatžiimpoa asej(emiudnusjuenjprraiojjetunč)rom,.ijeTrčifeuićznkciprpariejtaahmettodnog arebarbacparje ittaaimetkođer vekt o r r a . Dr u gi i i z uzet a k koj i sne”e bis,atjasetnakon oukolji odikoitzesvrksešdrteaniu“hgiNzamjekori treeećktna.i parniNaaparmetpraimetmarjesrrai,s”ukol)to. jFunkc i j a t r e ba da kao r e zul t a t vr a t i s t r i n g koj i s e i k o s t r i n g zadan pr v i m par a met r o m gl a s i “ k ako da e r e s p ekt i v no od r i j e č i “ j a buka” , “ d a” , “ k ako” , “ n e” i “smtriajnmg “un”howodnosyes no”no.“apple”, “yes”, “how”, “no” i “monkey”,
51*.
NadjiPodstring
string ukoliko se nalazi, gd da li se string predstavljen drugim parametrom nalazi unutar stringa predstavljen prvim as je lijep
rezultat treba biti 6). Ukoliko je odgovor
52*.
1 kao rezultat. Napisanu
string funkciju vektor stringova u kojem pojedini stringovi predstavljaju individualne unutar te
.
nema razmaka, takva da se ispred prvog znaka nalazi razmak (osim ukoliko se prvi znak nalazi na
znak nalazi na samom kraju stringa). Napisanu funkciju testirajte u kratkom testnom programu
53#.
NadjiSimetricneRijeci
string
string
Radi jednostavnosti,
savršeno ritmična ukoliko se
54#.
Yokohama, itd.).
IzdvojiSavrsenoRitmicneRijeci
string
string
zaseban string). Na Akihito je posjetio Yokohamu
funkcija kao
Uzmite avati i velika i mala slova kraju stringa prepoznate
ali mo
te i razmaci
trebaju biti
55#.Potrebno
na. Drugi
string
string
do
kao rezultat funkcije treba da se dobije
13
Dr. Željko Jurić: Tehnike programiraponavl nja /krjaonjz pre progretahmsodnogki jezii utk vC++/rđivanje nov Kolekcija neobaveznih zadataka za
og gradiva
Zadaci za samostalno vježbanje 3
Akademska godina 2016/17
Radi(kaoi nišijtreaidnosjedrčiusgo)taavnoskoj. Isitmotia,taprsko,eezamjtpproseettapnaviostvrteašdaviitsesatdrdarinželegeskojmentamoi semali tvektraanssolforoava,rmkojibezriadefsraadrizmaka. žiriasjaumoriMeđut malči kojaimsel,osvae i razmake n j e vi“ še razmaka iz”međuuz pomoćriječiis,tokaog “rjiečrnazmacika” kaoi naimalpočoeprtkiujeitrkrebaajudastsreinprga.evedeDrugiu m“ riječima, strin”.g Trsdeftreiinbangirpaziakojjuirtsiijedaečtirsakojensuviefosjreemkzamjisrae zamjgleanjsiue“jnjuduavorodnos ju samarmonotcriićijjeeilčmei arkojijseečimsi,tranieskmajeadzamjnju iiheovijnaulijdivru”jšeieloukolsvias. tNaiokjoeprrseiemspvektjeektr, ukoloivrnoi kikodo riječi “mart”, “maj” i “jul”, odnosno “ožujak”, “svibanj“d”avori “srpožujanj”a,kikaoć imreazulsestatrtetrsavnsibanjforumiacsrijpeanjstrijiun”g. oparslilčanmento kadaarnejesposjednilacniedesksMarailbosotisćeaposnsprkitoglaikoomnaOžujpokuš a j a aut o mat s k og “ p r e vođenj a ” t“šrFtaoinnsord&kridpRepltiamjaaeNešcdneopce” tkomande, hr v at s k i j e zi k uz pomoć or d a ki ć . I n t e r e s a nt n o j e š t o bez obzi r a oci” su jmea,drkojžalei iisnkačljeuč“eFnom,ind&jRepler suiajucsem“”atneholramoželei dawornadadst“aonlujhvatnačy” iikoj”n. “ormješbiavajseui”zbjpreogaoblemtajprproomjbleenem, “rpijreečvodii popadeži Pru zagretposadu.tavimUoovomda u nekojzadatkreučecniiljciježelnapiimosadati ifsutnkcaknemoiju “ neke riječi ili f”kojrazeitaćkoe autštooćmatemoiziirhastitaovajviti prrečoecniesc.uPruvkoji paroj tarmetebaairstoveaknutfuinkcrijeičjei iljiefrnekiaze. Drstruingigpar(tj.ametnjegovar jetivektp jeo“r stringova (tj.”vekt) kojoir sčaijdri sžui eltreebamentdai tkaoipa “rezultat vrati ”modi) kojfiicsiardranuži popirečenis rciujeuči kojodnosoj jneosvfrakaaza rkojijeeč todnos reba insroteačknutferniazacia.i“Funkc i j a zIzsaspilsakjae pr““dIzreasudmetgilahjeprapr”,evadmetakao(zadacadr”iuagi“)miparzesproaemetoddmetasirraavekt”(Tehnior kojkeiprsaodrgrtžatimirsetbarrainnjdagovea),sae“ovizdobiadach danajea”s,t“rocTinehniegkujkojkeeimoprsaodri grjožsai mi(rzeadacrčaenjniaca”u) iz (drugih praneedmetrečeani)c”.eI(zpproputimje“mraesjeovioddlsjiivroa”iutoprdaethukolodnomiko spre inekamjeruod), nefratzarebanedaprosnađee desininigšdjtae Funkcija “ ” ne treba biti posebno inteligentna.iPrjeindrciupginaparkojametem aonar futnkcrebaijedatraržeadisvjea t““aTkvoehnipojkeaprvlojigrvanjamie,rokoanjanj”,ezatga“ (ismseadodaj“nekolTehniuikkzagreo raaprzmaka de,ogri taomibinaruapočnjsuaš”etti(nksiuabi4ilokrrasazmaka vje.u)Dakltreitzeimeđu ,rapojutasekvomdvikaoje rrjieješčeinj),ute, tosrejebajtljuivodanarraade.zlikTakođer , “ z adac a ” i “ Z adac a ” s u r a zl i č i t e s t v ar i , odnos n o por e đenj e t r e ba bi t i u i m eđu vel i k i h i mal i h s l o va. Napinekapri čseramuenučenisfuecnkcanakon, aijzatu demons t r i r a j t e u t e s t n om pr o gr a mu u koj e m s e t r a ži da s e s a t a s t a t u r e unes e ismvakeskupirijnečairodnos jiečiiodnos n o . Ri j e č i odnos n o f r a ze s e unos e j e dna po j e dna, n o f r a ze pr i t i š ć e ENTER. Unos r i j e č i / f r a za pr e s t a j e kada s e č e ga . Po okonč a nj u unos a , pr o gr a m t r e ba da i s p i š e unesenu rečenicu sa istaknutim riječima/frazama, koja se dobija pozivom napisane funkcije. zamjenjuju dozvoljeno je
kako da ne
how yes no
oji
ostaje nepromijenjen, odnosno ne treba da postane NAPOMENA:
gore opisanom
-ove
56#.
IstakniFraze
std::string
std::string
stavljena u zagrade. Na primjer, ukoliko se kao prvi parametar funkciji proslijedi prva zadaca iz predmeta Tehnike programiranja, a ovih dana ocekujemo i jos zadaca iz drugih , , kao rezulta
unutar zad posebno.
IstakniFraze
prosto da se za svaki string koji se nalazi unutar vektora koj njegova eventualna pojavljivanja kao podstringa unutar stringa koji je prvi parametar. Za svako
Tehnike programiranja različite fraze. Bolje bi bilo da nije tako, ali bi se bez toga funkcija dodatno zakomplicirala, i studenti to ne
fraza
samo naprazno pritisne ENTER, bez
unesenog
14