Professional Documents
Culture Documents
Osnove programiranja
Riješeni C# primjeri
Recenzent
prof. dr. sc. Mirjana Bonković
Sadržaj
1. Varijable i operatori...........................................................................................3
Zadaci...................................................................................................................5
Rješenja................................................................................................................9
3. Petlje.................................................................................................................37
Zadaci.................................................................................................................39
Rješenja..............................................................................................................43
4. Nizovi................................................................................................................67
Zadaci.................................................................................................................69
Rješenja..............................................................................................................71
2
1. Varijable i operatori
3
Zadaci
1. Napišite program u kojem ćete deklarirati dvije varijable x i y tipa int i float.
Varijabli y (float) dodijelite vrijednost 50.45, a varijabli x (int) dodijelite vrijednost varijable y.
Na kraju ispišite vrijednosti obaju varijabli.
2. Napišite program u kojem ćete deklarirati varijable x, y i z tipova long, float i double.
Varijabli y (float) dodijelite vrijednost 18.5, a varijabli x (long) i z (double) dodijelite vrijednost
varijable y.
Na kraju ispišite vrijednosti sve tri varijable.
5. Napišite program u kojem ćete deklarirati dvije varijable x i y tipa int, te uradite sljedeće:
dodijelite im vrijednosti 5 (x) i 10 (y)
ispišite vrijednosti varijable x i y
zamijenite im vrijednosti
ponovo im ispišite vrijednosti
6. Napišite program u kojem ćete deklarirati dvije varijable x i y tipova float (x) i double (y), te
uradite sljedeće:
dodijelite im vrijednosti 4.5 (x) i 7.5 (y)
ispišite vrijednosti varijabli x i y
zamijenite im vrijednosti
ponovo im ispišite vrijednosti
7. Napišite program u kojem ćete deklarirati četiri varijable: a, b, c i d tipova int (a), long (b),
float (c) i double (d) te uradite sljedeće:
varijabli d dodijelite vrijednost 3.14159265
varijabli c dodijelite vrijednost varijable d
varijabli b dodijelite vrijednost varijable c
varijabli a dodijelite vrijednost varijable b
4
ispišite vrijednosti svih četiriju varijabli
a2 + b2 + c2 + d2
(a + b)2 + (c + d)2
(a + b + c + d)2
a2 + b2 - c2 + d2
10. Napišite program u kojem ćete deklarirati varijable x i y tipa int, te im dodijelite vrijednosti
20 (x) i 3 (y). Deklarirajte varijable d1 i d2 tipa double, te im dodijelite sljedeće vrijednosti:
d1 dodijelite vrijednost dijeljenja x s y i pritom osigurajte točnost dijeljenja
d2 dodijelite vrijednost ostatka kod dijeljenja x s y
Na kraju ispišite vrijednosti varijabli d1 i d2.
11. Napišite program u kojem ćete deklarirati varijable a i b tipa int, te im dodijelite vrijednosti
100 (a) i 3 (b). Ispišite njihove vrijednosti u sljedećem obliku:
a dijeljeno s b je x i ostatak y.
12. Napišite program u kojem ćete deklarirati varijable a i b tipa int, c i d tipa double, dodijelite
im vrijednosti 10, 7, 12.5 i 16.7, te izračunajte prosječnu vrijednost.
13. Napišite program u kojem ćete zatražiti od korisnika da unese niz znakova, te ćete definirati
sljedeće varijable:
sVelika koja će sadržavati unešeni niz pretvoren u velika slova
sMala koja će sadržavati unešeni niz pretvoren u mala slova
sPrvaTri koja će sadržavati prva tri znaka unešenog niza
sZadnjihPet koja će sadržavati zadnjih pet znakova unešenog niza
s8_11 koja će sadržavati od 8. do 11. znaka unešenog niza
Na kraju i ispišite vrijednosti navedenih varijabli.
14. Napišite program u kojem ćete definirati sljedeće dvije varijable tipa string:
s1 sa sadržajem "Hrvatska ima more"
s2 sa sadržajem "Italija je prvak svijeta"
Definirajte i ispišite string s3 čiji će sadržaj biti prvih 8 znakova stringa s1 plus svi znakovi od
sedmog do kraja niza s2.
15. Napišite program u kojem ćete zatražiti od korisnika da unese niz znakova te će svaki razmak
zamijeniti znakom '_'.
16. Napišite program u kojem ćete zatražiti od korisnika da unese niz znakova te će svako
pojavljivanje znaka 'A' zamijeniti sa znakom 'B' i obratno (npr. BAOBAB - > ABOABA).
5
17. Napišite program u kojem ćete zatražiti od korisnika da unese decimalni broj te ćete ispisati
iznos decimala (npr. 12.45 -> 0.45).
18. Napišite program u kojem ćete zatražiti od korisnika da unese jedan cijeli i jedan decimalni
broj odvojene razmakom. Dvostruke vrijednosti unešenih brojeva spremite u odgovarajuće
varijable x i y, te ih ispišite.
19. Napišite program koji će zatražiti od korisnika da unese neku rečenicu te će ispisati prvu i
zadnju riječ te rečenice.
20. Napišite program koji će zatražiti od korisnika da unese broj sekundi, te će izračunati koliko
je to minuta, a koliko sekundi (npr. 204 -> 3 minute i 24 sekunde).
21. Napišite program koji će zatražiti od korisnika da unese broj minuta, te će izračunati koliko je
to dana, koliko sati i koliko minuta (npr. 5000 -> 3 dana, 11 sati, 20 minuta).
6
2. Kontrola toka programa
7
Zadaci
1. Napišite program koji će od korisnika uzeti neki broj, te će ako je broj negativan ispisati
njegovu vrijednost uvećanu za 1, a ako nije negativan ispisat će vrijednost umanjenu za 1.
2. Napišite program koji će od korisnika uzeti neki broj, te ako je broj negativan uvećajte ga za 2,
a ako je pozitivan umanjite ga za 3. Na kraju ispišite njegovu vrijednost.
3. Napišite program koji će od korisnika uzeti string, te definirajte novi string koji će sadržavati
prva tri i zadnja tri znaka unešenog stringa. Ako je niz dužine manje od 7 znakova treba ispisati
cijeli niz.
4. Napišite program koji će od korisnika uzeti string, te definirajte i ispišite novi string koji će
sadržavati sve znakove unešenog stringa osim prva dva i zadnja dva znaka. Ako je niz dužine
manje od 5 znakova treba ispisati cijeli niz.
5. Napišite program koji će zatražiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te će izračunati i ispisati najveći od tri broja (npr. 12,17,15 -> 17).
6. Napišite program koji će zatražiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te će izračunati i ispisati koji je od ta tri broja srednji po veličini (npr. 12,17,15 -> 15).
8. Napišite program koji će izračunati koja je najveća vrijednost spremljena u int varijablama a,
b, c i d. Varijablama dodijelite proizvoljne vrijednosti.
9. Ljetne olimpijske igre održavaju se u prijestupnim godinama, dok se zimske održavaju dvije
godine nakon njih. Za prijestupne godine pretpostavite da su sve koje su djeljive s 4.
Napišite program koji će za unešenu godinu ispisati jedno od troje:
U godini XXXX održavaju se ljetne olimpijske igre
U godini XXXX održavaju se zimske olimpijske igre
U godini XXXX ne održavaju se olimpijske igre
10. Napišite program koji će zatražiti od korisnika da unese dva datuma u formatu DD.MM te će
izračunati i ispisati razliku u danima između ta dva datuma. Pretpostavite da svi mjeseci imaju 30
dana, a također pretpostavite i da je korisnik unio ispravne (postojeće) datume.
11. Napišite program koji će zatražiti od korisnika da unese dva vremena u formatu HH:MM te
će izračunati i ispisati razliku u minutama između ta dva vremena. Pretpostavite da je korisnik
unio ispravna (postojeća) vremena.
12. Napišite program koji će zatražiti od korisnika da unese dva datuma u formatu DD.MM, te će
ispisati jednu od sljedeće tri poruke.
Veći je prvi datum
Veći je drugi datum
Datumi su jednaki
Pretpostavite da je korisnik unio ispravne (postojeće) datume.
8
13. Napišite program koji će zatražiti od korisnika da unese broj te će u ovisnosti o unešenom
broju ispisati jednu od sljedeće 4 poruke:
Broj je djeljiv s 4
Broj je djeljiv s 6
Broj je djeljiv sa 4 i sa 6
Broj nije djeljiv sa 4 ni sa 6
Ako je program djeljiv i sa 4 i sa 6 mora se ispisati poruka “Broj je djeljiv sa 4 i sa 6”
14. Napišite program koji će provjeriti mogu li vrijednosti u int varijablama a, b, c i d biti
stranice pravokutnika. Varijablama dodijelite proizvoljne vrijednosti.
15. Napišite program koji će provjeriti mogu li vrijednosti u int varijablama a, b i c biti stranice
trokuta. Varijablama dodijelite proizvoljne vrijednosti.
Napomena: u svakom trokutu je zbroj duljina dviju stranica veći od duljine treće.
16. Napišite program koji će zatražiti od korisnika da unese dva stringa, te će ih ispisati po
abecedi u uzlaznom redoslijedu.
17. Napišite program koji će zatražiti od korisnika da unese tri stringa, te će provjeriti jesu li
unešeni po abecednom redoslijedu.
18. Napišite program koji će zatražiti od korisnika da unese tri stringa, te će ih ispisati po abecedi
u uzlaznom redoslijedu.
20. Napišite program koji će izračunati vrijednost PDV-a na osnovu od korisnika unešenih cijena
bez PDV-a i s PDV-om.
21. Napišite program koji će zatražiti od korisnika da unese datum u formatu DD.MM te će
izračunati i ispisati je li datum ispravan. Pretpostavite da godina za koju se unosi datum nije
prijestupna (npr. 30.04 -> Datum je ispravan).
22. Napišite program koji će od korisnika uzeti niz znakova, te ako je broj znakova u nizu
neparan ispišite srednji znak, a ako je paran ispišite srednja dva znaka.
(npr. SPLIT -> L ZAGREB -> GR)
23. Napišite program koji će zatražiti od korisnika da unese dvoznamenkasti broj, te će ispisati
veću znamenku unešenog broja. Ako su obje znamenke iste ne treba ništa ispisati.
24. Napišite program koji će zatražiti od korisnika da unese troznamenkasti broj, te će ispisati
najveću i najmanju znamenku unešenog broja (npr. 517 -> 1 i 7).
25. Napišite program koji će zatražiti od korisnika da unese neki broj s proizvoljnim brojem
znamenaka, te će ispisati najveću i najmanju znamenku unešenog broja (npr. 3682 -> 2 i 8).
9
3. Petlje
10
Zadaci
4. Napišite program koji će zbrojiti prvih n brojeva. Broj n uzmite od korisnika, a rezultat ispišite
u obliku:
Zbroj prvih n brojeva je x.
8. Napišite program koji će zatražiti od korisnika da unese niz znakova, te će provjeriti jesu li svi
znakovi u nizu poredani u uzlaznom redoslijedu (npr. ACEFH -> DA ADFBH -> NE)
9. Napišite program koji će ispisati sve prijestupne godine u razdoblju od (uključujući) 1900. do
(uključujući) 2100.
Prijestupne godine su one koje su djeljive sa 400 plus one koje su djeljive sa 4, ali ne i sa 100.
11. Napišite program koji će zatražiti od korisnika da upiše niz znakova koji mora imati jednu od
dvije vrijednosti CRVENA ili PLAVA. Ako je korisnik upisao CRVENA neka se ispiše PLAVA i
obrnuto. Program mora prisiliti korisnika da unese jednu od tih dviju vrijednosti.
12. Napišite program koji će zatražiti od korisnika da unese neki string, te će ispisati podskupove
tog stringa na sljedeći način:
npr. za unešeni string Voda treba ispisati:
V
Vo
Vod
Voda
13. Napišite program koji će zatražiti od korisnika da unese neki string, te će ispisati podskupove
tog stringa na sljedeći način:
npr. za unešeni string Voda treba ispisati:
Voda
11
Vod
Vo
V
14. Napišite program koji će zatražiti od korisnika da upiše riječ, te će ispisati podskupove te
riječi na sljedeći način kao npr. za riječ KUGLA:
A
LA
GLA
UGLA
KUGLA
15. Napišite program koji će zatražiti od korisnika da unese niz znakova, te će kreirati i ispisati
string koji će sadržavati sve znakove iz unešenog niza osim znakova A i a (npr. Afrika -> frik).
16. Napišite program koji će zatražiti od korisnika da unese neku riječ, te će je ispisati tako da
ispiše najprije samoglasnike iz te riječi, a nakon toga i suglasnike (npr. Zlato -> aoZlt).
17. Napišite program koji će izračunati broj prim brojeva manjih od 100 (prim broj je broj koji
je djeljiv samo s 1 i sa samim sobom)
18. Napišite program koji će zatražiti od korisnika da unese dvije riječi, te će izračunati broj
pojavljivanja druge riječi u prvoj (npr. VODOVOD, VOD -> VOD -> 2 puta).
19. Napišite program koji će za unešeni niz znakova pronaći znak koji se pojavljuje najviše puta,
te će i izračunati taj broj (npr. VODOVOD -> O, 3 puta).
20. Napišite program koji će učitavati ocjene sve dok korisnik ne unese 0, te će izračunati
prosjek ocjena. Ako je barem jedna ocjena 1, prosjek ocjena je 1.
21. Napišite program koji će izračunati zbroj svih znamenki broja čiju vrijednost sadrži varijabla
Broj kojoj dodijelite proizvoljnu vrijednost. (npr. 345 -> 12).
22. Napišite program koji će iz dva unešena niza znakova ispisati samo znakove koji su sadržani
u oba niza. Pojedini znak treba ispisati samo jednom (npr. HRVATSKA i AUSTRIJA -> RATS).
23. Napišite program koji će zatražiti od korisnika da unese stranice trokuta odvojene razmakom,
te će provjeriti je li trokut pravokutan (npr. 6 8 10 -> DA)
24. Napišite program koji će zatražiti od korisnika da unese broj u binarnom obliku, te će
izračunati i ispisati njegovu dekadsku vrijednost (npr. 11001 -> 25).
25. Napišite program koji će zatražiti od korisnika da unese broj u dekadskom obliku, te će
izračunati i ispisati njegovu binarnu vrijednost (npr. 25 -> 11001).
26. Napišite program koji će zatražiti od korisnika da unese dva broja, te će izračunati najveći
broj s kojim su oba broja djeljiva.
27. Napišite program koji će zatražiti od korisnika da unese dva broja, te će izračunati najmanji
broj koji je djeljiv s oba unešena broja.
28. Napišite program koji će zbrojiti prvih n brojeva ne uzimajući u obzir one koji imaju
znamenku 9 na posljednjem mjestu. Broj n uzmite od korisnika.
12
29. Napišite program koji će zatražiti od korisnika da unese jednu riječ, te će je ispisati tako da
izbaci svako ponavljanje pojedinog slova (npr. VODOVOD -> VOD).
30. Napišite program koji će zatražiti od korisnika da unese neki pozitivni broj, te će ispisati sve
brojeve manje od tog broja na sljedeći način: npr. za unešeni broj 5 treba ispisati:
1
12
123
1234
31. Napišite program koji će zatražiti od korisnika da unese neki pozitivni broj, te će izračunati je
li korijen tog broja cijeli broj (npr. 100 -> Da).
32. Napišite program koji će tražiti od korisnika da unosi vrijednosti igraćih karata (1 – 13), te će
završiti s programom kad ukupno unešena vrijednost dosegne 31. Osigurajte da se ne zbrajaju
vrijednosti izvan raspona 1 – 13.
Na kraju treba ispisati jednu od dvije poruke:
Pobijedili ste (ako je ukupna vrijednost karata 31)
Izgubili ste (ako je ukupna vrijednost karata veća od 31)
33. Napišite program koji će od korisnika uzeti string, te će provjeriti je li riječ palindrom.
(npr. ANA -> DA)
35. Napišite program koji će izračunati najveći broj čiji faktorijel je manji od 1000000.
Faktorijel od npr. 4 je 1 * 2 * 3 * 4.
36. Napišite program koji će zatražiti od korisnika da unese 10 cijelih brojeva od 1 do 1000, te će
provjeriti je li aritmetička sredina svih unešenih brojeva jednaka aritmetičkoj sredini najvećeg i
najmanjeg unešenog broja.
Korisnik mora unijeti 10 brojeva u zadanom rasponu, unose brojeva izvan raspona ne smijete
računati kao jedan od 10 unosa.
37. Napišite program koji će zatražiti od korisnika da unese 2 broja koje spremite u int varijable
x i y, te izračunajte koji broj je veći xy ili yx.
38. Napišite program koji će zatražiti od korisnika da unese cijeli broj, te će provjeriti je li taj broj
faktorijel nekog broja.
39. Napišite program koji će zatražiti od korisnika da unese dvije riječi, te će iz prve izbaciti
svako pojavljivanje druge riječi (npr. VODOVODNA -> ONA).
40. Napišite program koji će zatražiti od korisnika da upiše razlomak u obliku X/Y. Razlomak
treba maksimalno skratiti, te ga ispisati u takvom skraćenom obliku (npr. 16/24 -> 2/3).
13
41. Napišite program koji će provjeriti je li cjelobrojni broj čiju vrijednost sadrži varijabla
Number djeljiv sa svim svojim znamenkama (npr. 1395 -> DA).
Varijabli Number dodijelite proizvoljnu vrijednost.
43. Napišite program koji će za unešeni niz znakova izračunati broj znakova koji se u nizu
pojavljuju samo jednom (npr. LONDON -> 2).
44. Napišite program koji će zatražiti od korisnika da unese neki broj, te će provjeriti sadrži li broj
sve različite znamenke. (npr. 2734 -> Da 273473 -> Ne).
45. Napišite program koji će zatražiti od korisnika da unese riječ te će izračunati koliko riječ ima
slova. Napomena: DŽ, LJ i NJ su jedno slovo.
46. Napišite program koji će od prvih 100 brojeva ispisati sve parove različitih brojeva koji
zadovoljavaju sljedeći uvjet:
Zbroj svih brojeva s kojim je djeljiv prvi broj jednak je zbroju svih brojeva s kojim je
djeljiv drugi broj (bez 1 i samog broja). (npr. 12 i 26 jer je 2 + 3 + 4 + 6 = 2 + 13)
47. Napišite program koji će generirati sve različite kombinacije igre na sreću LOTO 7/39 (jedna
kombinacija sadrži sedam različitih brojeva od 1 do 39).
48. Napišite program koji će izračunati za koliko se prosječno polja pomakne figura u jednom
bacanju kocke u igri “Čovječe ne ljuti se” (šestica znači ponovno bacanje koje pomiče figuru, ali
se ne računa kao novo bacanje kocke !).
14
4. Nizovi
15
Zadaci
1. Napišite program koji će deklarirati niz tipa int, te će ga definirati s kvadratima prvih 10
brojeva. Članove niza na kraju ispišite.
2. Napišite program koji će definirati niz tipa string, te će definirati i drugi niz tipa int u kojem
će članovi biti dužine stringova iz prvog niza. Program mora raditi ispravno za proizvoljni broj
članova niza.
3. Napišite program koji će deklarirati niz tipa int veličine 100, te će ga definirati vrijednostima
prvih 100 brojeva. Definirajte i ispišite niz tipa double u kojem će biti polovice vrijednosti iz
prvog niza.
4. Napišite program koji će definirati 2 niza tipa double, te će definirati i treći niz tipa double u
kojem će članovi biti svi članovi iz prva dva niza. Program mora raditi ispravno za proizvoljni broj
članova niza.
5. Napišite program koji će definirati niz koji će sadržavati n prvih dvoznamenkastih brojeva.
Broj n uzmite od korisnika, a prisilite ga da ne unese broj veći od maksimalnog broja
dvoznamenkastih brojeva.
6. Napišite program koji će za definirani niz tipa int provjeriti nalaze li se u nizu barem dva ista
člana. Program mora raditi ispravno za proizvoljni broj članova niza.
7. Napišite program koji će za dva definirana niza tipa int provjeriti sadrže li barem jedan
zajednički član. Program mora raditi ispravno za proizvoljni broj članova niza.
8. Napišite program koji će definirati 2 niza tipa int, te će definirati i treći niz tipa int koji će
sadržavati samo zajedničke članove iz oba niza. Program mora raditi ispravno za proizvoljni broj
članova niza. Članove niza na kraju ispišite.
9. Napišite program koji će definirati 2 niza tipa int, te će definirati i treći niz tipa int koji će
sadržavati samo članove koji se nalaze u prvom, ali ne i u drugom nizu. Program mora raditi
ispravno za proizvoljni broj članova niza. Članove niza na kraju ispišite.
10. Napišite program u kojem ćete deklarirati dvodimenzionalni niz tipa int s 11 redova i 11
stupaca. Članove niza definirajte kao umnožak indeksa retka i indeksa stupca. Provjerite da tako
definirani niz predstavlja tablicu množenja tako da ispišete vrijednost člana arr[7,5].
11. Napišite program u kojem ćete definirati matricu m x n gdje su m i n unešeni od korisnika,
te definirajte matricu sa slučajnim brojevima od 0 do 100 i ispišite članove matrice.
12. Napišite program koji će deklarirati dva niza tipa int veličine 10 članova, te će zatražiti od
korisnika da unosi brojeve. Ako korisnik unese neparni broj spremite ga u prvi niz, a ako unese
parni spremite ga u drugi niz. Program treba prestati s radom ako korisnik unese 0 ili kad ukupan
broj članova dodijeljenih pojedinom nizu premaši 10.
Na kraju ispišite sve članove nizova.
13. Napišite program koji će za definirani niz tipa double pronaći član koji najmanje odstupa od
prosječne vrijednosti niza. Program mora raditi ispravno za proizvoljni broj članova niza.
16
14. Napišite program koji će definirati 2 niza tipa int, te će izračunati broj članova koji se nalaze
na istom indeksu i imaju istu vrijednost. Program mora raditi ispravno za proizvoljni broj članova
niza.
15. Napišite program koji će definirati niz tipa int, te će ga predefinirati, odnosno sortirati tako
da članovi budu poredani od manjeg prema većem. Program mora raditi ispravno za proizvoljni
broj članova niza. Članove niza na kraju ispišite.
16. Napišite program koji će definirati niz tipa int s proizvoljnim članovima, te zatražite od
korisnika da unese indeks nekog od članova niza. Ako je indeks unutar veličine niza ispišite
vrijednost člana na mjestu unešenog indeksa, a ako je izvan granica uhvatite iznimku
IndexOutOfRangeException.
17. Napišite program koji će definirati niz tipa byte u kojem će biti prvih 10 brojeva, te zatražite
od korisnika da unese vrijednost koju ćete dodijeliti šestom članu niza. Ako se unešeni broj ne
može pretvoriti u tip byte uhvatite iznimku OverflowException.
18. Napišite program koji će zatražiti od korisnika da unese 5 igraćih karata, te će napisati
sačinjavaju li tih 5 karata kombinaciju poker (4 iste karte).
19. Napišite program koji će generirati raspored igranja 32 tenisača (šesneastina finala). Na
turniru nema nositelja i svatko može igrati protiv svakog.
20. Napišite program koji će generirati raspored igranja 16 tenisača (osmina finala). Na turniru
ima 8 nositelja i oni ne mogu međusobno igrati.
17
5. Objektno orijentirano programiranje
18
Zadaci
Definirajte sljedeća tri objekta tipa Fruit: x, y i z koji će predstavljati sljedeće voće:
Jagoda
Limun
Avokado
19
BrojKatova koje će vraćati i definirati broj katova.
Definirajte objekt Tower tipa Neboder s visinom od 200 m, postavite vrijednost broja katova na
100, povećajte visinu za 10 m, povećajte broj katova za 1, te ispišite kolika je prosječna visina
kata.
Definirajte tri objekta tipa PrvaKlasa: x, y i z, te nakon toga ispišite vrijednost statičke varijable
counter.
9. Definirajte klasu Biljka, te definirajte od nje izvedenu klasu Stablo sa sljedećim članicama:
• varijabla tipa bool
opadajuListovi
20
• svojstvo
OpadajuListovi
• konstruktor
Stablo(bool) koji će dodijeliti vrijednost proslijeđenog argumenta varijabli
opadajuListovi
Definirajte dva objekta Hrast i Bor tipova Bijelogoricno i Crnogoricno, te ispišite vrijednosti
njihovih članica opadajuListovi.
Definirajte dva objekta tipa Trokut i Cetverokut, učitajte duljine stranica, te izračunajte
opsege.
Definirajte dva objekta tipa Brod i Zrakoplov, te ispišite vrijednosti varijabli JeLiLeti i
JeLiPlovi.
21
Definirajte klase Cijeli i Decimalni izvedene iz klase Brojevi, te klase Pozitivni i Negativni
izvedene iz klase Cijeli. U svakoj od izvedenih klasa predefinirajte metodu ApsVrijednost tako
da vraća apsolutnu vrijednost varijable broj.
22
• svojstvo
Opasna
• virtualna metoda
void Opasnost() koja će postaviti vrijednost varijable opasna na false
Definirajte klasu Gepard izvedenu iz klase Cat, te predefinirajte metodu Opasnost tako da
postavi vrijednost varijable opasna na true.
Definirajte objekt x tipa KlasaX, te koristeći indekse dodijelite nizu arr prvih 100 brojeva i
ispišite 50. član niza.
Definirajte objekt y tipa KlasaY, te koristeći indekse dodijelite nizu arr 5 proizvoljnih stringova te
ispišite četvrti član niza.
23
void PrintNumber(double)
void PrintNumber(int, double)
Definirajte objekt tipa KlasaB, zatražite od korisnika da unese niz znakova, te taj niz znakova
proslijedite metodi BezPrvogIZadnjeg, a povratnu vrijednost ispišite. Osigurajte pritom da se
metoda pozove samo ako je korisnik unio više od 2 znaka.
Definirajte objekt tipa KlasaC, zatražite od korisnika da unese 5 cijelih brojeva koje spremite u
niz tipa int veličine 5 članova. Taj niz proslijedite metodama Zbroj i Prosjek koje ćete pozvati
za definirani objekt, te povratne vrijednosti spremite u lokalne varijable zbroj i prosjek.
Definirajte objekt tipa KlasaD, te pozovite metode Suprotno za argumente true i 50. Povratne
vrijednosti iz metoda spremite u lokalne varijable, te na kraju ispišite njihove vrijednosti.
Definirajte objekt tipa KlasaE, deklarirajte i definirajte s proizvoljnom vrijednosti lokalnu varijablu
tipa int, proslijedite je metodi Plus100, te na kraju ispišite vrijednost te lokalne varijable.
24
Definirajte objekt tipa KlasaF, deklarirajte lokalnu varijablu tipa double, proslijedite je metodi
f200, te na kraju ispišite vrijednost te lokalne varijable.
Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima
elemenata, te uz pomoće metode QuickSort sortirajte niz tako da prvi i zadnji član niza bez
obzira na njihovu vrijednost ostanu na svojim mjestima.
Ispišite sve elemente niza.
Deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima elemenata, te uz pomoć
metode QuickSort sortirajte niz.
Ispišite sve elemente niza.
Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa string s proizvoljnim
vrijednostima elemenata, te uz pomoće metode QuickSort sortirajte niz.
Ispišite sve elemente niza.
Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa int u kojem će biti prvih 100
neparnih brojeva, te uz pomoće metode BinarySearch pronađite indeks člana s vrijednosti 75.
25
32. Definirajte klasu Search sa sljedećim članicama:
• metoda
int BinarySearch(string[] arr, string str) koja će koristeći algoritam
binarnog pretraživanja vratiti indeks stringa str u nizu arr, a ako ga ne pronađe vratit će -1.
Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa string veličine 5 članova s
proizvoljnim vrijednostima, te uz pomoće metode BinarySearch pronađite indeks trećeg člana
niza.
Deklarirajte i definirajte niz arr tipa int u kojem će biti prvih 100 brojeva u obrnutom redoslijedu
tako da prvi član niza bude 100, a zadnji 1.
Uz pomoć metode QuickSort niz sortirajte, te uz pomoć metode BinarySearch pronađite
indeks člana s vrijednosti 10.
26
6. Zadaci iz primjene u ekonomiji
27
Zadaci
2. Napišite program koji će zatražiti od korisnika da unese postotak za koji će se povećati cijena,
te će izračunati postotak za koji tu istu cijenu treba smanjiti tako da se vrati na staru vrijednost.
4. Napišite program koji će od korisnika uzeti prošlotjednu i ovotjednu cijenu barela nafte te će
izračunati i ispisati porast ili pad izražen u postocima. Ispis treba biti jedan od sljedećih:
Cijena nafte porasla je za x %
Cijena nafte pala je za x %
Cijena nafte ostala je ista
Osigurajte da korisnik mora unijeti vrijednosti manje od 100.
5. Napišite program koji će zatražiti od korisnika da unese iznos glavnice kredita, broj otplatnih
rata i godišnju kamatnu stopu, te će na osnovu unešenih podataka izračunati i ispisati otplatni
plan.
6. Napišite program koji će zatražiti od korisnika da unese iznos mjesečnog anuiteta, broj
otplatnih rata i godišnju kamatnu stopu, te će na osnovu unešenih podataka izračunati iznos
glavnice kredita. Također, izračunajte ukupnu kamatu koja će biti otplaćena.
8. Napišite program koji će izraditi tablicu anuiteta za sve kredite u sljedećim rasponima:
glavnica od 100000 do 1000000 u razmacima po 100000
razdoblje otplate od 5 g. do 20 g. u razmacima po 1 g.
kamatna stopa od 5 % do 10 % u razmacima po 0.1 %
9. Napišite program koji će zatražiti od korisnika da unese iznos glavnice, broj otplatnih rata i
mjesečni anuitet, te će na osnovu unešenih podataka izračunati minimalni iznos potrebne kamate
za takav kredit. Kamatu izračunajte s točnošću 0.01.
10. Napišite program koji će zatražiti od korisnika da unese iznos glavnice kredita u kunama,
broj otplatnih mjesečnih rata, te staru i novi godišnju kamatnu stopu, te će na osnovu unešenih
podataka izračunati i ispisati povećanje anuiteta u kunama i u postocima.
11. Napišite program u kojem ćete definirati dva niza veličine 5 koji će predstavljati tečajnu
listu:
prvi niz u kojem će biti šifre valuta AUD, JPY, GBP, USD i EUR
drugi niz u kojem će biti srednji tečajevi tih valuta: 4.47, 4.43, 9.23, 4.68 i 7.25
28
Pod pretpostavkom da se kupovni i prodajni tečaj razlikuju za 1 % od srednjeg, definirajte dva
niza u kojima će biti vrijednosti kupovnih i prodajnih tečajeva za pojedinu valutu. Ispišite tečajnu
listu u tabličnom obliku.
12. Napišite program koji će definirati 3 niza tipa double veličine 5, te ih definirajte na sljedeći
način:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima marži za tih 5 artikala
Treći niz definirajte s iznosima poreza za tih 5 artikala
Definirajte četvrti niz tipa double veličine 5 u kojem će biti vrijednosti maloprodajnih cijeni tih 5
artikala, te ispišite njegove vrijednosti.
13. Napišite program koji će definirati 3 niza tipa double veličine 5, te ih definirajte na sljedeći
način:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima poreza za tih 5 artikala
Treći niz definirajte s maloprodajnim cijenama tih 5 artikala
Definirajte četvrti niz tipa double veličine 5 u kojem će biti vrijednosti marži za tih 5 artikala, te
ispišite njegove vrijednosti.
14. Cijena unce zlata prije 30 dana bila je 800 $. U idućih 20 dana cijena je rasla po 2 %, a u
sljedećih 10 dana cijena je padala po 3.5 %.
Napišite program koji će izračunati današnju cijenu unce zlata.
15. Cijena m3 prirodnog plina iznosi 0.45 $ i u idućim danima će rasti svaki dan po 8 %.
Napišite program koji će izračunati za koliko će dana cijena plina premašiti 1 $, te koliko bi je
nakon toga trebalo smanjiti da bude točno 1 $.
16. Napišite program u kojem ćete definirati niz tipa int veličine 10, te ćete ga definirati s
vrijednostima prvih 10 brojeva. Izračunajte standardnu devijaciju niza.
17. Napišite program u kojem ćete definirati niz tipa double veličine 10, te ćete ga definirati s
10 proizvoljnih brojeva. Izračunajte medijanu niza.
20. Napišite program koji će izračunati postotak povećanja industrijske proizvodnje u državi X
ako se godišnji prirast u razdoblju od 10 godina svake godine povećava za 0.15 % (npr. ako je u
nekoj godini prirast 4.3 % u idućoj je 4.45 %).
Za vrijednost godišnjeg prirasta u prvoj godini uzmite vrijednost 2.4 %.
29
Tipovi varijabli:
Prioritet operatora:
Operator
++x --x
* / %
+ –
<< >>
== !=
&
&&
||
30
?:
31