You are on page 1of 141

Slaven Sari

Visoka poslovna kola Minerva


Studij za informatiki menadment

Kolegij
Osnove programiranja

Rijeeni C# primjeri

Recenzent
prof. dr. sc. Mirjana Bonkovi
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Sadraj

1. Varijable i operatori .........................................................................................3


Zadaci .................................................................................................................5
Rjeenja ..............................................................................................................9

2. Kontrola toka programa................................................................................. 19


Zadaci ............................................................................................................... 21
Rjeenja ............................................................................................................ 23

3. Petlje .............................................................................................................. 37
Zadaci ............................................................................................................... 39
Rjeenja ............................................................................................................ 43

4. Nizovi.............................................................................................................. 67
Zadaci ............................................................................................................... 69
Rjeenja ............................................................................................................ 71

5. Objektno orijentirano programiranje............................................................ 83


Zadaci ............................................................................................................... 85
Rjeenja ............................................................................................................ 93

6. Zadaci iz primjene u ekonomiji ................................................................... 125


Zadaci ............................................................................................................. 127
Rjeenja .......................................................................................................... 129

Prikazani rezultati nastali su u okviru programa TEST - Tehnologijski istraivako-razvojni projekti, uz potporu
Hrvatskog instituta za tehnologiju.
Visoka poslovna kola MINERVA
Studij za informatiki menadment

1. Varijable i operatori

3
Visoka poslovna kola MINERVA
Studij za informatiki menadment

4
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci

1. Napiite 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 ispiite vrijednosti obaju varijabli.

2. Napiite 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 ispiite vrijednosti sve tri varijable.

3. Napiite program u kojem ete deklarirati varijable odgovarajueg tipa, te im pridijelite


sljedee vrijednosti:
100
-1000
a
3.123
3.123456789
true
"true"
Ispiite u jednom retku vrijednosti svih varijabli odvojene zarezom.

4. Napiite program u kojem ete deklarirati varijable odgovarajueg tipa, te im pridijelite


sljedee vrijednosti:
0.00000000001
9.99999
1/3
2/5
false
"false"
Ispiite vrijednosti varijabli tako da svaka bude u svom retku.

5. Napiite program u kojem ete deklarirati dvije varijable x i y tipa int, te uradite sljedee:
dodijelite im vrijednosti 5 (x) i 10 (y)
ispiite vrijednosti varijable x i y
zamijenite im vrijednosti
ponovo im ispiite vrijednosti

6. Napiite program u kojem ete deklarirati dvije varijable x i y tipova float (x) i double (y), te
uradite sljedee:
dodijelite im vrijednosti 4.5 (x) i 7.5 (y)
ispiite vrijednosti varijabli x i y
zamijenite im vrijednosti
ponovo im ispiite vrijednosti

7. Napiite program u kojem ete deklarirati etiri varijable: a, b, c i d tipova int (a), long (b),
float (c) i double (d) te uradite sljedee:
varijabli d dodijelite vrijednost 3.14159265
varijabli c dodijelite vrijednost varijable d
varijabli b dodijelite vrijednost varijable c
varijabli a dodijelite vrijednost varijable b
ispiite vrijednosti svih etiriju varijabli

5
Visoka poslovna kola MINERVA
Studij za informatiki menadment

8. Napiite program u kojem ete deklarirati varijable a, b, c, i d tipa double, te im dodijelite


proizvoljne vrijednosti. Deklarirajte varijablu x tipa double kojoj dodijelite vrijednost sljedeeg
izraza:

a2 + b2 + c2 + d2

(a + b)2 + (c + d)2

9. Napiite program u kojem ete deklarirati varijable a, b, c, i d tipa double, te im dodijelite


proizvoljne vrijednosti. Deklarirajte varijablu x tipa double kojoj dodijelite vrijednost sljedeeg
izraza:

(a + b + c + d)2

a2 + b2 - c2 + d2

10. Napiite 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 sljedee vrijednosti:
d1 dodijelite vrijednost dijeljenja x s y i pritom osigurajte tonost dijeljenja
d2 dodijelite vrijednost ostatka kod dijeljenja x s y
Na kraju ispiite vrijednosti varijabli d1 i d2.

11. Napiite program u kojem ete deklarirati varijable a i b tipa int, te im dodijelite vrijednosti
100 (a) i 3 (b). Ispiite njihove vrijednosti u sljedeem obliku:
a dijeljeno s b je x i ostatak y.

12. Napiite 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 izraunajte prosjenu vrijednost.

13. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova, te ete definirati
sljedee varijable:
sVelika koja e sadravati uneeni niz pretvoren u velika slova
sMala koja e sadravati uneeni niz pretvoren u mala slova
sPrvaTri koja e sadravati prva tri znaka uneenog niza
sZadnjihPet koja e sadravati zadnjih pet znakova uneenog niza
s8_11 koja e sadravati od 8. do 11. znaka uneenog niza
Na kraju i ispiite vrijednosti navedenih varijabli.

14. Napiite program u kojem ete definirati sljedee dvije varijable tipa string:
s1 sa sadrajem "Hrvatska ima more"
s2 sa sadrajem "Italija je prvak svijeta"
Definirajte i ispiite string s3 iji e sadraj biti prvih 8 znakova stringa s1 plus svi znakovi od
sedmog do kraja niza s2.

15. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova te e svaki razmak
zamijeniti znakom '_'.

16. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova te e svako
pojavljivanje znaka 'A' zamijeniti sa znakom 'B' i obratno (npr. BAOBAB - > ABOABA).

17. Napiite program u kojem ete zatraiti od korisnika da unese decimalni broj te ete ispisati
iznos decimala (npr. 12.45 -> 0.45).

6
Visoka poslovna kola MINERVA
Studij za informatiki menadment

18. Napiite program u kojem ete zatraiti od korisnika da unese jedan cijeli i jedan decimalni
broj odvojene razmakom. Dvostruke vrijednosti uneenih brojeva spremite u odgovarajue
varijable x i y, te ih ispiite.

19. Napiite program koji e zatraiti od korisnika da unese neku reenicu te e ispisati prvu i
zadnju rije te reenice.

20. Napiite program koji e zatraiti od korisnika da unese broj sekundi, te e izraunati koliko
je to minuta, a koliko sekundi (npr. 204 -> 3 minute i 24 sekunde).

21. Napiite program koji e zatraiti od korisnika da unese broj minuta, te e izraunati koliko je
to dana, koliko sati i koliko minuta (npr. 5000 -> 3 dana, 11 sati, 20 minuta).

22. Napiite program koji e zatraiti od korisnika da unese temperaturu u Fahrenheitima, te e


je pretvoriti u Celzijuse. Rezultat ispiite u obliku:
X Celzijusa = Y Fahrenheita
gdje su X i Y uneena i izraunata vrijednost. Formula za izraun je:
C = (F 32) * 5 / 9

7
Visoka poslovna kola MINERVA
Studij za informatiki menadment

8
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Napiite 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 ispiite vrijednosti obaju varijabli.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int x;
float y;

y = 50.45f;
x = (int)y;
Console.WriteLine("{0} {1}", x, y);
}
}

2. Napiite 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 ispiite vrijednosti sve tri varijable.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
long x;
float y;
double z;

y = 18.5f;
x = (long)y;
z = y;
Console.WriteLine("{0} {1} {2}", x, y, z);
}
}

3. Napiite program u kojem ete deklarirati varijable odgovarajueg tipa, te im pridijelite


sljedee vrijednosti:
100
-1000
a
3.123
3.123456789
true
"true"

9
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Ispiite u jednom retku vrijednosti svih varijabli odvojene zarezom.


--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
byte b = 100;
int i = -1000;
char c = 'a';
float f = 3.123f;
double d = 3.123456789;
bool x = true;
string s = "true";

Console.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}",


b, i, c, f, d, x, s)
}
}

4. Napiite program u kojem ete deklarirati varijable odgovarajueg tipa, te im pridijelite


sljedee vrijednosti:
0.00000000001
9.99999
1/3
2/5
false
"false"
Ispiite vrijednosti varijabli tako da svaka bude u svom retku.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
double a = 0.00000000001;
float b = 9.99999f;
double c = (double)1 / 3;
float d = (float)2 / 5;
bool x = false;
string s = "false";

Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(c);
Console.WriteLine(d);
Console.WriteLine(x);
Console.WriteLine(s);
}
}

5. Napiite program u kojem ete deklarirati dvije varijable x i y tipa int te uradite sljedee:

10
Visoka poslovna kola MINERVA
Studij za informatiki menadment

dodijelite im vrijednosti 5 (x) i 10 (y)


ispiite vrijednosti varijabli x i y
zamijenite im vrijednosti
ponovo im ispiite vrijednosti
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x = 5, y = 10;
Console.WriteLine("{0} {1}", x, y);
int z = x;
x = y;
y = z;
Console.WriteLine("{0} {1}", x, y);
}
}

6. Napiite program u kojem ete deklarirati dvije varijable x i y tipova float (x) i double (y), te
uradite sljedee:
dodijelite im vrijednosti 4.5 (x) i 7.5 (y)
ispiite vrijednosti varijable x i y
zamijenite im vrijednosti
ponovo im ispiite vrijednosti
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
float x = 4.5f;
double y = 7.5;
Console.WriteLine("{0} {1}", x, y);
double z = x;
x = (float)y;
y = z;
Console.WriteLine("{0} {1}", x, y);
}
}

7. Napiite program u kojem ete deklarirati etiri varijable: a, b, c i d tipova int (a), long (b),
float (c) i double (d) te uradite sljedee:
varijabli d dodijelite vrijednost 3.14159265
varijabli c dodijelite vrijednost varijable d
varijabli b dodijelite vrijednost varijable c
varijabli a dodijelite vrijednost varijable b
ispiite vrijednosti svih etiriju varijabli
--------------------------------------------------------------------------------------------------------------------

using System;

11
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public class Test


{
public static void Main()
{
int a;
long b;
float c;
double d = 3.14159265;
c = (float)d;
b = (long)c;
a = (int)b;
Console.WriteLine("{0}\n{1}\n{2}\n{3}", a, b, c, d);
}
}

8. Napiite program u kojem ete deklarirati varijable a, b, c, i d tipa double, te im dodijelite


proizvoljne vrijednosti. Deklarirajte varijablu x tipa double kojoj dodijelite vrijednost sljedeeg
izraza:

a2 + b2 + c2 + d2

(a + b)2 + (c + d)2
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
double a = 1, b = 2, c = 3, d = 4;

double x = (a * a + b * b + c * c + d * d) /
((a + b) * (a + b) + (c + d) * (c + d));
Console.WriteLine(x);
}
}

9. Napiite program u kojem ete deklarirati varijable a, b, c, i d tipa double, te im dodijelite


proizvoljne vrijednosti. Deklarirajte varijablu x tipa double kojoj dodijelite vrijednost sljedeeg
izraza:

(a + b + c + d)2

a2 + b2 - c2 + d2
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
double a = 1, b = 2, c = 3, d = 4;

12
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double x = (a + b + c + d) * (a + b + c + d) /
(a*a + b*b - c*c + d*d);
Console.WriteLine(x);
}
}

10. Napiite 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 sljedee vrijednosti:
d1 dodijelite vrijednost dijeljenja x s y i pritom osigurajte tonost dijeljenja
d2 dodijelite vrijednost ostatka kod dijeljenja x s y
Na kraju ispiite vrijednosti varijabli d1 i d2.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x = 20, y = 3;
double d1, d2;
d1 = (double)x / y;
d2 = x % y;
Console.WriteLine("{0} {1}", d1, d2);
}
}

11. Napiite program u kojem ete deklarirati varijable a i b tipa int, te im dodijelite vrijednosti
100 (a) i 3 (b). Ispiite njihove vrijednosti u sljedeem obliku:
a dijeljeno s b je x i ostatak y.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int a = 100, b = 3;
Console.WriteLine("{0} dijeljeno s {1} je {2} i ostatak {3}",
a, b, a / b, a % b);
}
}

12. Napiite 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 izraunajte prosjenu vrijednost.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int a = 10, b = 7;
double c = 12.5, d = 16.7;

13
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double p = (a + b + c + d) / 4;

Console.WriteLine(p);
}
}

13. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova, te ete definirati
sljedee varijable:
sVelika koja e sadravati uneeni niz pretvoren u velika slova
sMala koja e sadravati uneeni niz pretvoren u mala slova
sPrvaTri koja e sadravati prva tri znaka uneenog niza
sZadnjihPet koja e sadravati zadnjih pet znakova uneenog niza
s8_11 koja e sadravati od 8. do 11. znaka uneenog niza
Na kraju i ispiite vrijednosti navedenih varijabli.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite niz znakova:");
string s = Console.ReadLine();

string sVelika = s.ToUpper();


string sMala = s.ToLower();
string sPrvaTri = s.Substring(0, 3);
string sZadnjihPet = s.Substring(s.Length - 5, 5);
string s8_11 = s.Substring(7, 4);

Console.WriteLine();
Console.WriteLine(sVelika);
Console.WriteLine(sMala);
Console.WriteLine(sPrvaTri);
Console.WriteLine(sZadnjihPet);
Console.WriteLine(s8_11);
}
}

14. Napiite program u kojem ete definirati sljedee dvije varijable tipa string:
s1 sa sadrajem "Hrvatska ima more"
s2 sa sadrajem "Italija je prvak svijeta"
Definirajte i ispiite string s3 iji e sadraj biti prvih 8 znakova stringa s1 plus svi znakovi od
osmog do kraja niza s2.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string s1 = "Hrvatska ima more";
string s2 = "Italija je prvak svijeta";

14
Visoka poslovna kola MINERVA
Studij za informatiki menadment

string s3 = s1.Substring(0, 8) + s2.Substring(7);


Console.WriteLine(s3);
}
}

15. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova te e svaki razmak
zamijeniti znakom '_'.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite niz znakova:");
string s = Console.ReadLine();
s = s.Replace(' ', '_');
Console.WriteLine(s);
}

16. Napiite program u kojem ete zatraiti od korisnika da unese niz znakova te e svako
pojavljivanje znaka 'A' zamijeniti sa znakom 'B' i obratno (npr. BAOBAB - > ABOABA).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite niz znakova");
string s = Console.ReadLine();
s = s.Replace('A', (char)0);
s = s.Replace('B', 'A');
s = s.Replace((char)0, 'B');
Console.WriteLine(s);
}
}

17. Napiite program u kojem ete zatraiti od korisnika da unese decimalni broj te ete ispisati
iznos decimala (npr. 12.45 -> 0.45).

--------------------------------------------------------------------------------------------------------------------
using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite neki decimalni broj:");
string s = Console.ReadLine();
double d = Convert.ToDouble(s);

15
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double dec = d - (int)d;


Console.WriteLine(dec);
}
}

18. Napiite program u kojem ete zatraiti od korisnika da unese jedan cijeli i jedan decimalni
broj odvojene razmakom. Dvostruke vrijednosti uneenih brojeva spremite u odgovarajue
varijable x i y, te ih ispiite.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite cijeli i decimalni broj
odvojene razmakom:");
string s = Console.ReadLine();
int pos = s.IndexOf(' ');

string s1 = s.Substring(0, pos);


int x = Convert.ToInt32(s1) * 2;

double y = Convert.ToDouble(s.Substring(pos + 1)) * 2;

Console.WriteLine("{0} {1}", x, y);


}
}

19. Napiite program koji e zatraiti od korisnika da unese neku reenicu te e ispisati prvu i
zadnju rije te reenice.
--------------------------------------------------------------------------------------------------------------------
using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite neku reenicu:");
string s = Console.ReadLine();
int pos = s.IndexOf(' ');
Console.WriteLine(s.Substring(0, pos));
pos = s.LastIndexOf(' ');
Console.WriteLine(s.Substring(pos+1));
}
}

20. Napiite program koji e zatraiti od korisnika da unese broj sekundi, te e izraunati koliko
je to minuta, a koliko sekundi (npr. 204 -> 3 minute i 24 sekunde).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test

16
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
public static void Main()
{
Console.WriteLine("Unesite broj sekundi:");
string s1 = Console.ReadLine();
int i = Convert.ToInt32(s1);

int m = i / 60;
int s = i - m * 60;
Console.WriteLine("{0} minuta, {1} sekundi", m, s);
}
}

21. Napiite program koji e zatraiti od korisnika da unese broj minuta, te e izraunati koliko je
to dana, koliko sati i koliko minuta (npr. 5000 -> 3 dana, 11 sati, 20 minuta).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite broj minuta:");
string s = Console.ReadLine();
int i = Convert.ToInt32(s);

int d = i / 1440;
int h = (i - d * 1440) / 60;
int m = i - d * 1440 - h * 60;
Console.WriteLine("{0} dana, {1} sati, {2} minuta", d, h, m);
}
}

22. Napiite program koji e zatraiti od korisnika da unese temperaturu u Fahrenheitima, te e


je pretvoriti u Celzijuse. Rezultat ispiite u obliku:
X Celzijusa = Y Fahrenheita

gdje su X i Y uneena i izraunata vrijednost. Formula za izraun je:


C = (F 32) * 5 / 9
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite temperaturu u Fahrenheitima:");
string s = Console.ReadLine();
double F = Convert.ToDouble(s);
double C = (F - 32) * 5 / 9;
Console.WriteLine("{0} Fahrenheita je {1} Celzijusa", F, C);
}
}

17
Visoka poslovna kola MINERVA
Studij za informatiki menadment

18
Visoka poslovna kola MINERVA
Studij za informatiki menadment

2. Kontrola toka programa

19
Visoka poslovna kola MINERVA
Studij za informatiki menadment

20
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci
1. Napiite program koji e od korisnika uzeti neki broj, te e ako je broj negativan ispisati
njegovu vrijednost uveanu za 1, a ako nije negativan ispisat e vrijednost umanjenu za 1.

2. Napiite program koji e od korisnika uzeti neki broj, te ako je broj negativan uveajte ga za 2,
a ako je pozitivan umanjite ga za 3. Na kraju ispiite njegovu vrijednost.

3. Napiite program koji e od korisnika uzeti string, te definirajte novi string koji e sadravati
prva tri i zadnja tri znaka uneenog stringa. Ako je niz duine manje od 7 znakova treba ispisati
cijeli niz.

4. Napiite program koji e od korisnika uzeti string, te definirajte i ispiite novi string koji e
sadravati sve znakove uneenog stringa osim prva dva i zadnja dva znaka. Ako je niz duine
manje od 5 znakova treba ispisati cijeli niz.

5. Napiite program koji e zatraiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te e izraunati i ispisati najvei od tri broja (npr. 12,17,15 -> 17).

6. Napiite program koji e zatraiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te e izraunati i ispisati koji je od ta tri broja srednji po veliini (npr. 12,17,15 -> 15).

7. Napiite program koji e provjeriti jesu li vrijednosti sadrane u int varijablama x, y i z


stranice pravokutnog trokuta. U program ukljuite i provjeru da vrijednosti varijabli za ovakav
primjer imaju smislene vrijednosti (iznosi moraju biti vei od 0).

8. Napiite program koji e izraunati koja je najvea vrijednost spremljena u int varijablama a,
b, c i d. Varijablama dodijelite proizvoljne vrijednosti.

9. Ljetne olimpijske igre odravaju se u prijestupnim godinama, dok se zimske odravaju dvije
godine nakon njih. Za prijestupne godine pretpostavite da su sve koje su djeljive s 4.
Napiite program koji e za uneenu godinu ispisati jedno od troje:
U godini XXXX odravaju se ljetne olimpijske igre
U godini XXXX odravaju se zimske olimpijske igre
U godini XXXX ne odravaju se olimpijske igre

10. Napiite program koji e zatraiti od korisnika da unese dva datuma u formatu DD.MM te e
izraunati i ispisati razliku u danima izmeu ta dva datuma. Pretpostavite da svi mjeseci imaju 30
dana, a takoer pretpostavite i da je korisnik unio ispravne (postojee) datume.

11. Napiite program koji e zatraiti od korisnika da unese dva vremena u formatu HH:MM te
e izraunati i ispisati razliku u minutama izmeu ta dva vremena. Pretpostavite da je korisnik
unio ispravna (postojea) vremena.

12. Napiite program koji e zatraiti od korisnika da unese dva datuma u formatu DD.MM, te e
ispisati jednu od sljedee tri poruke.
Vei je prvi datum
Vei je drugi datum
Datumi su jednaki
Pretpostavite da je korisnik unio ispravne (postojee) datume.

21
Visoka poslovna kola MINERVA
Studij za informatiki menadment

13. Napiite program koji e zatraiti od korisnika da unese broj te e u ovisnosti o uneenom
broju ispisati jednu od sljedee 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 broj djeljiv i sa 4 i sa 6 mora se ispisati poruka Broj je djeljiv sa 4 i sa 6

14. Napiite program koji e provjeriti mogu li vrijednosti u int varijablama a, b, c i d biti
stranice pravokutnika. Varijablama dodijelite proizvoljne vrijednosti.

15. Napiite 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 vei od duljine tree.

16. Napiite program koji e zatraiti od korisnika da unese dva stringa, te e ih ispisati po
abecedi u uzlaznom redoslijedu.

17. Napiite program koji e zatraiti od korisnika da unese tri stringa, te e provjeriti jesu li
uneeni po abecednom redoslijedu.

18. Napiite program koji e zatraiti od korisnika da unese tri stringa, te e ih ispisati po abecedi
u uzlaznom redoslijedu.

19. Pojednostavljena provjera ispravnosti URL adrese registrirane u hrvatskom internetskom


prostoru bila bi:
mora poinjati s www
mora zavravati s hr
mora sadravati toku nakon www i prije hr
Napiite program koji e zatraiti od korisnika da unese URL adresu, te e provjeriti je li adresa
napisana u ispravnom formatu.

20. Napiite program koji e izraunati vrijednost PDV-a na osnovu od korisnika uneenih cijena
bez PDV-a i s PDV-om.

21. Napiite program koji e zatraiti od korisnika da unese datum u formatu DD.MM te e
izraunati i ispisati je li datum ispravan. Pretpostavite da godina za koju se unosi datum nije
prijestupna (npr. 30.04 -> Datum je ispravan).

22. Napiite program koji e od korisnika uzeti niz znakova, te ako je broj znakova u nizu
neparan ispiite srednji znak, a ako je paran ispiite srednja dva znaka.
(npr. SPLIT -> L ZAGREB -> GR)

23. Napiite program koji e zatraiti od korisnika da unese dvoznamenkasti broj, te e ispisati
veu znamenku uneenog broja. Ako su obje znamenke iste ne treba nita ispisati.

24. Napiite program koji e zatraiti od korisnika da unese troznamenkasti broj, te e ispisati
najveu i najmanju znamenku uneenog broja (npr. 517 -> 1 i 7).

22
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Napiite program koji e od korisnika uzeti neki broj, te e ako je broj negativan ispisati
njegovu vrijednost uveanu za 1, a ako nije negativan ispisat e vrijednost umanjenu za 1.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite neki broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

if(x < 0)
Console.WriteLine(x + 1);
else
Console.WriteLine(x - 1);
}
}

2. Napiite program koji e od korisnika uzeti neki broj, te ako je broj negativan uveajte ga za 2,
a ako je pozitivan umanjite ga za 3. Na kraju ispiite njegovu vrijednost.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite neki broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

if (x < 0)
x += 2;
else if (x > 0)
x -= 3;

Console.WriteLine(x);
}
}

3. Napiite program koji e od korisnika uzeti string, te definirajte novi string koji e sadravati
prva tri i zadnja tri znaka uneenog stringa. Ako je niz duine manje od 7 znakova treba ispisati
cijeli niz.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test

23
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
public static void Main()
{
Console.WriteLine("Unesite neki string:");
string s = Console.ReadLine();
if(s.Length < 7)
Console.WriteLine(s);
else
{
string s6 = s.Substring(0, 3) +
s.Substring(s.Length - 3, 3);
Console.WriteLine(s6);
}
}
}

4. Napiite program koji e od korisnika uzeti string, te definirajte i ispiite novi string koji e
sadravati sve znakove uneenog stringa osim prva dva i zadnja dva znaka. Ako je niz duine
manje od 5 znakova treba ispisati cijeli niz.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string s = Console.ReadLine();
if (s.Length < 5)
Console.WriteLine(s);
else
{
string s4 = s.Substring(2, s.Length - 4);
Console.WriteLine(s4);
}
}
}

5. Napiite program koji e zatraiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te e izraunati i ispisati najvei od tri broja (npr. 12,17,15 -> 17).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite 3 dvoznamenkasta broja
odijeljena zarezom:");
string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
int x = Convert.ToInt32(s1);

s1 = s.Substring(3, 2);
int y = Convert.ToInt32(s1);

24
Visoka poslovna kola MINERVA
Studij za informatiki menadment

s1 = s.Substring(6, 2);
int z = Convert.ToInt32(s1);

if(x > y && x > z)


Console.WriteLine("Najvei broj je {0}", x);
else if(y > z)
Console.WriteLine("Najvei broj je {0}", y);
else
Console.WriteLine("Najvei broj je {0}", z);
}
}

6. Napiite program koji e zatraiti od korisnika da unese tri dvoznamenkasta broja odijeljena
zarezom, te e izraunati i ispisati koji je od ta tri broja srednji po veliini (npr. 12,17,15 -> 15).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite 3 dvoznamenkasta broja odijeljena
zarezom:");
string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
int x = Convert.ToInt32(s1);

s1 = s.Substring(3, 2);
int y = Convert.ToInt32(s1);

s1 = s.Substring(6, 2);
int z = Convert.ToInt32(s1);

if(x <= y && x >= z || x >= y && x <= z)


Console.WriteLine("U sredini je broj {0}", x);
else if (y <= x && y >= z || y >= x && y <= z)
Console.WriteLine("U sredini je broj {0}", y);
else
Console.WriteLine("U sredini je broj {0}", z);
}
}

7. Napiite program koji e provjeriti jesu li vrijednosti sadrane u int varijablama x, y i z


stranice pravokutnog trokuta. U program ukljuite i provjeru da vrijednosti varijabli za ovakav
primjer imaju smislene vrijednosti (iznosi moraju biti vei od 0).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int x = 6, y = 8, z = 10;

25
Visoka poslovna kola MINERVA
Studij za informatiki menadment

if ((x * x + y * y == z * z ||
x * x + z * z == y * y ||
y * y + z * z == x * x)
&&
x > 0 && y > 0 && z > 0)
Console.WriteLine("Trokut je pravokutan");
else
Console.WriteLine("Trokut nije pravokutan");
}
}

8. Napiite program koji e izraunati koja je najvea vrijednost spremljena u int varijablama a,
b, c i d. Varijablama dodijelite proizvoljne vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int a = 10, b = 20, c = 15, d = 30;
int max;

if (a > b && a > c && a > d)


max = a;
else if (b > c && b > d)
max = b;
else if (c > d)
max = c;
else
max = d;

Console.WriteLine("Najvei broj je {0}", max);


}
}

9. Ljetne olimpijske igre odravaju se u prijestupnim godinama, dok se zimske odravaju dvije
godine nakon njih. Za prijestupne godine pretpostavite da su sve koje su djeljive s 4.
Napiite program koji e za uneenu godinu ispisati jedno od troje:
U godini XXXX odravaju se ljetne olimpijske igre
U godini XXXX odravaju se zimske olimpijske igre
U godini XXXX ne odravaju se olimpijske igre
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Upiite godinu:");
string s = Console.ReadLine();
int year = Convert.ToInt32(s);

if(year % 4 == 0)

26
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("U godini {0} odravaju se ljetne


olimpijske igre", year);
else if((year - 2) % 4 == 0)
Console.WriteLine("U godini {0} odravaju se zimske
olimpijske igre", year);
else
Console.WriteLine("U godini {0} ne odravaju se
olimpijske igre", year);
}
}

10. Napiite program koji e zatraiti od korisnika da unese dva datuma u formatu DD.MM te e
izraunati i ispisati razliku u danima izmeu ta dva datuma. Pretpostavite da svi mjeseci imaju 30
dana, a takoer pretpostavite i da je korisnik unio ispravne (postojee) datume.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
byte d1, d2, m1, m2;
Console.WriteLine("Unesite prvi datum u formatu DD.MM");
string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
d1 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m1 = Convert.ToByte(s1);

Console.WriteLine("Unesite drugi datum u formatu DD.MM");


s = Console.ReadLine();
s1 = s.Substring(0, 2);
d2 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m2 = Convert.ToByte(s1);

int dani = (m2 - m1) * 30 + d2 - d1;


if(dani < 0)
dani *= -1;
Console.WriteLine(dani);
}
}

11. Napiite program koji e zatraiti od korisnika da unese dva vremena u formatu HH:MM te
e izraunati i ispisati razliku u minutama izmeu ta dva vremena. Pretpostavite da je korisnik
unio ispravna (postojea) vremena.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int h1, h2, m1, m2;

27
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Unesite prvo vrijeme u formatu HH.MM");


string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
h1 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m1 = Convert.ToByte(s1);

Console.WriteLine("Unesite drugo vrijeme u formatu HH.MM");


s = Console.ReadLine();
s1 = s.Substring(0, 2);
h2 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m2 = Convert.ToByte(s1);

int min = (h2 - h1) * 60 + m2 - m1;


if(min < 0)
min *= -1;

Console.WriteLine(min);
}
}

12. Napiite program koji e zatraiti od korisnika da unese dva datuma u formatu DD.MM, te e
ispisati jednu od sljedee tri poruke.
Vei je prvi datum
Vei je drugi datum
Datumi su jednaki
Pretpostavite da je korisnik unio ispravne (postojee) datume.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int d1, d2, m1, m2;

Console.WriteLine("Unesite prvi datum u formatu DD.MM");


string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
d1 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m1 = Convert.ToByte(s1);

Console.WriteLine("Unesite drugi datum u formatu DD.MM");


s = Console.ReadLine();
s1 = s.Substring(0, 2);
d2 = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m2 = Convert.ToByte(s1);

if (m1 > m2 || m1 == m2 && d1 > d2)


Console.WriteLine("Vei je prvi datum");
else if (m1 == m2 && d1 == d2)

28
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Datumi su jednaki");
else
Console.WriteLine("Vei je drugi datum");
}
}

13. Napiite program koji e zatraiti od korisnika da unese broj te e u ovisnosti o uneenom
broju ispisati jednu od sljedee 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 broj djeljiv i sa 4 i sa 6 mora se ispisati poruka Broj je djeljiv sa 4 i sa 6
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

if (x % 4 == 0 && x % 6 == 0)
Console.WriteLine("Broj je djeljiv sa 4 i sa 6");
else if (x % 4 == 0)
Console.WriteLine("Broj je djeljiv sa 4");
else if (x % 6 == 0)
Console.WriteLine("Broj je djeljiv sa 6");
else
Console.WriteLine("Broj nije djeljiv sa 4 ni sa 6");
}
}

14. Napiite program koji e provjeriti mogu li vrijednosti u int varijablama a, b, c i d biti
stranice pravokutnika. Varijablama dodijelite proizvoljne vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int a = 10, b = 20, c = 10, d = 20;

if (a == b && c == d
||
a == c && b == d
||
a == d && b == c)
Console.WriteLine(
"Vrijednosti mogu biti stranice pravokutnika");

29
Visoka poslovna kola MINERVA
Studij za informatiki menadment

else
Console.WriteLine(
"Vrijednosti ne mogu biti stranice pravokutnika");
}
}

15. Napiite 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 vei od duljine tree.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int a = 10, b = 20, c = 30;

if (a+b > c && a+c > b && b+c > a)


Console.WriteLine(
"Vrijednosti mogu biti stranice trokuta");
else
Console.WriteLine(
"Vrijednosti ne mogu biti stranice trokuta");
}
}

16. Napiite program koji e zatraiti od korisnika da unese dva stringa, te e ih ispisati po
abecedi u uzlaznom redoslijedu.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite prvi string:");
string s1 = Console.ReadLine();
Console.WriteLine("Unesite drugi string:");
string s2 = Console.ReadLine();

if(s1.CompareTo(s2) > 0)
{
Console.WriteLine(s2);
Console.WriteLine(s1);
}
else
{
Console.WriteLine(s1);
Console.WriteLine(s2);
}
}
}

30
Visoka poslovna kola MINERVA
Studij za informatiki menadment

17. Napiite program koji e zatraiti od korisnika da unese tri stringa, te e provjeriti jesu li
uneeni po abecednom redoslijedu.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite tri stringa:");
string s1 = Console.ReadLine();
string s2 = Console.ReadLine();
string s3 = Console.ReadLine();

if (s1.CompareTo(s2) <= 0 && s1.CompareTo(s3) <= 0


&& s2.CompareTo(s3) <= 0)
Console.WriteLine(
"Stringovi su uneeni po abecedi");
else
Console.WriteLine(
"Stringovi nisu uneeni po abecedi");
}
}

18. Napiite program koji e zatraiti od korisnika da unese tri stringa, te e ih ispisati po abecedi
u uzlaznom redoslijedu.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite tri stringa:");
string s1 = Console.ReadLine();
string s2 = Console.ReadLine();
string s3 = Console.ReadLine();

if(s1.CompareTo(s2) > 0)
{
string s = s1;
s1 = s2;
s2 = s;
}

if(s1.CompareTo(s3) > 0)
{
string s = s1;
s1 = s3;
s3 = s;
}

if(s2.CompareTo(s3) > 0)

31
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
string s = s2;
s2 = s3;
s3 = s;
}

Console.WriteLine(s1);
Console.WriteLine(s2);
Console.WriteLine(s3);
}
}

19. Pojednostavljena provjera ispravnosti URL adrese registrirane u hrvatskom internetskom


prostoru bila bi:
mora poinjati s www
mora zavravati s hr
mora sadravati toku nakon www i prije hr
Napiite program koji e zatraiti od korisnika da unese URL adresu, te e provjeriti je li adresa
napisana u ispravnom formatu.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite URL adresu:");
string s = Console.ReadLine();
if (s.Substring(0, 4).ToLower() == "www."
&&
s.Substring(s.Length - 3, 3).ToLower() == ".hr"
&&
s.Length >= 8) // ZATO DA www.hr NE BUDE ISPRAVNA
Console.WriteLine("URL adresa je ispravna");
else
Console.WriteLine("URL adresa nije ispravna");
}
}

20. Napiite program koji e izraunati vrijednost PDV-a na osnovu od korisnika uneenih cijena
bez PDV-a i s PDV-om.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite cijenu bez PDV-a:");
string s = Console.ReadLine();
double bezPDV = Convert.ToDouble(s);

Console.WriteLine("Unesite cijenu s PDV-om:");


s = Console.ReadLine();

32
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double sPDV = Convert.ToDouble(s);

if(sPDV < bezPDV)


Console.WriteLine("Cijene nisu ispravno uneene");
else
Console.WriteLine("PDV iznosi {0} %",
(sPDV - bezPDV) / bezPDV * 100);
}
}

21. Napiite program koji e zatraiti od korisnika da unese datum u formatu DD.MM te e
izraunati i ispisati je li datum ispravan. Pretpostavite da godina za koju se unosi datum nije
prijestupna (npr. 30.04 -> Datum je ispravan).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
byte d, m;
bool flag = false;

Console.WriteLine("Upiite datum u formatu DD.MM");


string s = Console.ReadLine();
string s1 = s.Substring(0, 2);
d = Convert.ToByte(s1);
s1 = s.Substring(3, 2);
m = Convert.ToByte(s1);

if (m==1 || m==3 || m==5 || m==7 || m==8 || m==10 || m==12)


{
if (d <= 31)
flag = true;
}
else if (m==4 || m==6 || m==9 || m==11)
{
if (d <= 30)
flag = true;
}
else if (m==2)
{
if (d <= 28)
flag = true;
}
else
flag = false;

Console.WriteLine("Datum {0} ispravan", flag ? "je" : "nije");


}
}

22. Napiite program koji e od korisnika uzeti niz znakova, te ako je broj znakova u nizu
neparan ispiite srednji znak, a ako je paran ispiite srednja dva znaka.
(npr. SPLIT -> L ZAGREB -> GR)

33
Visoka poslovna kola MINERVA
Studij za informatiki menadment

--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite rije:");
string s = Console.ReadLine();

int x = s.Length;
if(x % 2 == 1)
Console.WriteLine(s[x/2]);
else
Console.WriteLine("{0}{1}", s[x/2 - 1], s[x/2]);
}
}

23. Napiite program koji e zatraiti od korisnika da unese dvoznamenkasti broj, te e ispisati
veu znamenku uneenog broja. Ako su obje znamenke iste ne treba nita ispisati.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite dvoznamenkasti broj:");
string s = Console.ReadLine();
int Broj = Convert.ToInt32(s);
int x, y;

y = Broj % 10;
Broj /= 10;
x = Broj % 10;

if(x != y)
Console.WriteLine(x > y ? x : y);
}
}

24. Napiite program koji e zatraiti od korisnika da unese troznamenkasti broj, te e ispisati
najveu i najmanju znamenku uneenog broja (npr. 517 -> 1 i 7).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite troznamenkasti broj:");
string s = Console.ReadLine();
int Broj = Convert.ToInt32(s);

34
Visoka poslovna kola MINERVA
Studij za informatiki menadment

int x, y, z;

z = Broj % 10;
Broj /= 10;
y = Broj % 10;
Broj /= 10;
x = Broj % 10;

if (x <= y && x >= z || x >= y && x <= z)


Console.WriteLine("{0} {1}", y, z);
else if (y <= x && y >= z || y >= x && y <= z)
Console.WriteLine("{0} {1}", x, z);
else
Console.WriteLine("{0} {1}", x, y);
}
}

35
Visoka poslovna kola MINERVA
Studij za informatiki menadment

36
Visoka poslovna kola MINERVA
Studij za informatiki menadment

3. Petlje

37
Visoka poslovna kola MINERVA
Studij za informatiki menadment

38
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci

1. Napiite program koji e ispisati prvih 100 brojeva.

2. Napiite program koji e ispisati 100 razliitih brojeva izmeu 0 i 1.

3. Napiite program koji e od korisnika uzeti string te e ga ispisati u obrnutom redoslijedu


(npr. LAV -> VAL).

4. Napiite program koji e zbrojiti prvih n brojeva. Broj n uzmite od korisnika, a rezultat ispiite
u obliku:
Zbroj prvih n brojeva je x.

5. Napiite program koji e izraunati zbroj prvih 500 neparnih brojeva.

6. Napiite program koji e izraunati faktorijel broja n (faktorijel od npr. 4 je 1 * 2 * 3 * 4) .


Broj n uzmite od korisnika, a rezultat ispiite u obliku:
n! = x

7. Napiite program koji e izraunati sumu reda:


1/3 + 1/9 + 1/27 + . . .

8. Napiite program koji e zatraiti 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. Napiite program koji e ispisati sve prijestupne godine u razdoblju od (ukljuujui) 1900. do
(ukljuujui) 2100.
Prijestupne godine su one koje su djeljive sa 400 plus one koje su djeljive sa 4, ali ne i sa 100.

10. Temperatura u Celzijusima dobije se tako da se temperatura u Kelvinima umanji za 273.15.


Napiite program koji e za uneenu temperaturu u Kelvinima ispisati odgovarajuu temperaturu
u Celzijusima. Program treba osigurati da se ne dozvoli korisniku unos nemoguih temperatura
(manje od 0 Kelvina), te rezultat treba ispisati u formatu kao npr.:
20 K = -253.15 C

11. Napiite program koji e zatraiti od korisnika da upie niz znakova koji mora imati jednu od
dvije vrijednosti CRVENA ili PLAVA. Ako je korisnik upisao CRVENA neka se ispie PLAVA i
obrnuto. Program mora prisiliti korisnika da unese jednu od tih dviju vrijednosti.

12. Napiite program koji e zatraiti od korisnika da unese neki string, te e ispisati podskupove
tog stringa na sljedei nain:
npr. za uneeni string Voda treba ispisati:
V
Vo
Vod
Voda

13. Napiite program koji e zatraiti od korisnika da unese neki string, te e ispisati podskupove
tog stringa na sljedei nain:
npr. za uneeni string Voda treba ispisati:
Voda
Vod

39
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Vo
V

14. Napiite program koji e zatraiti od korisnika da upie rije, te e ispisati podskupove te
rijei na sljedei nain kao npr. za rije KUGLA:
A
LA
GLA
UGLA
KUGLA

15. Napiite program koji e zatraiti od korisnika da unese niz znakova, te e kreirati i ispisati
string koji e sadravati sve znakove iz uneenog niza osim znakova A i a (npr. Afrika -> frik).

16. Napiite program koji e zatraiti od korisnika da unese neku rije, te e je ispisati tako da
ispie najprije samoglasnike iz te rijei, a nakon toga i suglasnike (npr. Zlato -> aoZlt).

17. Napiite program koji e izraunati broj prim brojeva manjih od 100 (prim broj je broj koji
je djeljiv samo s 1 i sa samim sobom)

18. Napiite program koji e zatraiti od korisnika da unese dvije rijei, te e izraunati broj
pojavljivanja druge rijei u prvoj (npr. VODOVOD, VOD -> VOD -> 2 puta).

19. Napiite program koji e za uneeni niz znakova pronai znak koji se pojavljuje najvie puta,
te e i izraunati taj broj (npr. VODOVOD -> O, 3 puta).

20. Napiite program koji e uitavati ocjene sve dok korisnik ne unese 0, te e izraunati
prosjek ocjena. Ako je barem jedna ocjena 1, prosjek ocjena je 1.

21. Napiite program koji e izraunati zbroj svih znamenki broja iju vrijednost sadri varijabla
Broj kojoj dodijelite proizvoljnu vrijednost. (npr. 345 -> 12).

22. Napiite program koji e iz dva uneena niza znakova ispisati samo znakove koji su sadrani
u oba niza. Pojedini znak treba ispisati samo jednom (npr. HRVATSKA i AUSTRIJA -> RATS).

23. Napiite program koji e zatraiti od korisnika da unese stranice trokuta odvojene razmakom,
te e provjeriti je li trokut pravokutan (npr. 6 8 10 -> DA)

24. Napiite program koji e zatraiti od korisnika da unese broj u binarnom obliku, te e
izraunati i ispisati njegovu dekadsku vrijednost (npr. 11001 -> 25).

25. Napiite program koji e zatraiti od korisnika da unese broj u dekadskom obliku, te e
izraunati i ispisati njegovu binarnu vrijednost (npr. 25 -> 11001).

26. Napiite program koji e zatraiti od korisnika da unese dva broja, te e izraunati najvei
broj s kojim su oba broja djeljiva.

27. Napiite program koji e zatraiti od korisnika da unese dva broja, te e izraunati najmanji
broj koji je djeljiv s oba uneena broja.

28. Napiite program koji e zbrojiti prvih n brojeva ne uzimajui u obzir one koji imaju
znamenku 9 na posljednjem mjestu. Broj n uzmite od korisnika.

40
Visoka poslovna kola MINERVA
Studij za informatiki menadment

29. Napiite program koji e zatraiti od korisnika da unese jednu rije, te e je ispisati tako da
izbaci svako ponavljanje pojedinog slova (npr. VODOVOD -> VOD).

30. Napiite program koji e zatraiti od korisnika da unese neki pozitivni broj, te e ispisati sve
brojeve manje od tog broja na sljedei nain: npr. za uneeni broj 5 treba ispisati:
1
12
123
1234

31. Napiite program koji e zatraiti od korisnika da unese neki pozitivni broj, te e izraunati je
li korijen tog broja cijeli broj (npr. 100 -> Da).

32. Napiite program koji e traiti od korisnika da unosi vrijednosti igraih karata (1 13), te e
zavriti s programom kad ukupno uneena 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 vea od 31)

33. Napiite program koji e od korisnika uzeti string, te e provjeriti je li rije palindrom.
(npr. ANA -> DA)

34. Fibonaccijev niz definiran je na sljedei nain:


prvi lan niza je 0
drugi lan niza je 1
svaki sljedei lan niza jednak je zbroju prethodna dva lana
Napiite program koji e zatraiti od korisnika da unese broj n, te e izraunati n-ti lan
Fibonaccijevog niza.

35. Napiite program koji e izraunati najvei broj iji faktorijel je manji od 1000000.
Faktorijel od npr. 4 je 1 * 2 * 3 * 4.

36. Napiite program koji e zatraiti od korisnika da unese 10 cijelih brojeva od 1 do 1000, te e
provjeriti je li aritmetika sredina svih uneenih brojeva jednaka aritmetikoj sredini najveeg i
najmanjeg uneenog broja.
Korisnik mora unijeti 10 brojeva u zadanom rasponu, unose brojeva izvan raspona ne smijete
raunati kao jedan od 10 unosa.

37. Napiite program koji e zatraiti od korisnika da unese 2 broja koje spremite u int varijable
x i y, te izraunajte koji broj je vei xy ili yx.

38. Napiite program koji e zatraiti od korisnika da unese cijeli broj, te e provjeriti je li taj broj
faktorijel nekog broja.

39. Napiite program koji e zatraiti od korisnika da unese dvije rijei, te e iz prve izbaciti
svako pojavljivanje druge rijei (npr. VODOVODNA, VOD -> ONA).

40. Napiite program koji e zatraiti od korisnika da unese neki broj s proizvoljnim brojem
znamenaka, te e ispisati najveu i najmanju znamenku uneenog broja (npr. 3682 -> 2 i 8).

41
Visoka poslovna kola MINERVA
Studij za informatiki menadment

41. Napiite program koji e zatraiti od korisnika da upie razlomak u obliku X/Y. Razlomak
treba maksimalno skratiti, te ga ispisati u takvom skraenom obliku (npr. 16/24 -> 2/3).

42. Napiite program koji e provjeriti je li cjelobrojni broj iju vrijednost sadri varijabla
Number djeljiv sa svim svojim znamenkama (npr. 1395 -> DA).
Varijabli Number dodijelite proizvoljnu vrijednost.

43. Broj (PI) se moe izraunati po formuli:


/4 = 1 1/3 + 1/5 1/7 + 1/9 -
Napiite program koji e izraunati broj , a raunanje prekinite kad postignete tonost na petoj
decimali (broj na pet decimala iznosi 3.14159).

44. Napiite program koji e za uneeni niz znakova izraunati broj znakova koji se u nizu
pojavljuju samo jednom (npr. LONDON -> 2).

45. Napiite program koji e zatraiti od korisnika da unese neki broj, te e provjeriti sadri li broj
sve razliite znamenke. (npr. 2734 -> Da 273473 -> Ne).

46. Napiite program koji e zatraiti od korisnika da unese rije te e izraunati koliko rije ima
slova. Napomena: D, LJ i NJ su jedno slovo.

47. Napiite program koji e od prvih 100 brojeva ispisati sve parove razliitih brojeva koji
zadovoljavaju sljedei 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)

48. Napiite program koji e generirati sve razliite kombinacije igre na sreu LOTO 7/39 (jedna
kombinacija sadri sedam razliitih brojeva od 1 do 39).

49. Napiite program koji e izraunati za koliko se prosjeno polja pomakne figura u jednom
bacanju kocke u igri ovjee ne ljuti se (estica znai ponovno bacanje koje pomie figuru, ali
se ne rauna kao novo bacanje kocke !).

42
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Napiite program koji e ispisati prvih 100 brojeva.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
for (int i = 1; i <= 100; i++)
Console.WriteLine(i);
}
}

2. Napiite program koji e ispisati 100 razliitih brojeva izmeu 0 i 1.


--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
for (double d = 0; d < 1; d += 0.01)
Console.WriteLine("{0,0:f}", d);
}
}

3. Napiite program koji e od korisnika uzeti string te e ga ispisati u obrnutom redoslijedu


(npr. LAV -> VAL).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite string:");
string s = Console.ReadLine();
for(int i = s.Length - 1; i >= 0; i--)
Console.Write(s[i]);
}
}

4. Napiite program koji e zbrojiti prvih n brojeva. Broj n uzmite od korisnika, a rezultat ispiite
u obliku:
Zbroj prvih n brojeva je x.
--------------------------------------------------------------------------------------------------------------------

43
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

class Test
{
public static void Main()
{
int sum = 0;
Console.WriteLine("Upiite broj:");
string s = Console.ReadLine();
int n = Convert.ToInt32(s);

for(int i = 1; i <= n; i++)


sum += i;

Console.WriteLine("Zbroj prvih {0} brojeva je {1}",


n, sum);
}
}

5. Napiite program koji e izraunati zbroj prvih 500 neparnih brojeva.


--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x = 1;
long sum = 0;

for(int i = 0; i < 500; i++, x += 2)


sum += x;

Console.WriteLine(sum);
}
}

6. Napiite program koji e izraunati faktorijel broja n (faktorijel od npr. 4 je 1 * 2 * 3 * 4) .


Broj n uzmite od korisnika, a rezultat ispiite u obliku:
n! = x
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
long fakt = 1;
Console.WriteLine("Upiite broj:");
string s = Console.ReadLine();
int n = Convert.ToInt32(s);

for(int i = 1; i <= n; i++)


fakt *= i;

44
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("{0}! = {1}", n, fakt);


}
}

7. Napiite program koji e izraunati sumu reda:


1/3 + 1/9 + 1/27 + . . .

using System;

class Test
{
public static void Main()
{
double d = 1.0 / 3, sum = 0 ;
for(int i = 0; i < 100000; i++)
{
sum += d;
d /= 3;
}
Console.WriteLine(sum);
}
}

8. Napiite program koji e zatraiti od korisnika da unese niz znakova, te e provjeriti jesu li svi
znakovi u nizu poredani u uzlaznom redoslijedu (npr. ACEFH -> DA ADFBH -> NE)
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite neki string:");
string s = Console.ReadLine().ToUpper();

bool flag = true;


for(int i = 0; i < s.Length - 1; i++)
if (s[i] > s[i + 1])
{
Console.WriteLine("Znakovi nisu poredani po abecedi");
flag = false;
break;
}
if(flag)
Console.WriteLine("Znakovi su poredani po abecedi");
}
}

9. Napiite program koji e ispisati sve prijestupne godine u razdoblju od (ukljuujui) 1900. do
(ukljuujui) 2100.
Prijestupne godine su one koje su djeljive sa 400 plus one koje su djeljive sa 4, ali ne i sa 100.
--------------------------------------------------------------------------------------------------------------------

using System;

45
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public class Test


{
public static void Main()
{
for(int i = 1900; i <= 2100; i++)
if((i % 400 == 0) || (i % 4 == 0 && i % 100 != 0))
Console.WriteLine(i);
}
}

10. Temperatura u Celzijusima dobije se tako da se temperatura u Kelvinima umanji za 273.15.


Napiite program koji e za uneenu temperaturu u Kelvinima ispisati odgovarajuu temperaturu
u Celzijusima. Program treba osigurati da se ne dozvoli korisniku unos nemoguih temperatura
(manje od 0 Kelvina), te rezultat treba ispisati u formatu kao npr.:
20 K = -253.15 C
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
string s;
double kelvin;

do
{
Console.WriteLine("Upiite vrijednost temperature u
Kelvinima:");
s = Console.ReadLine();
kelvin = Convert.ToDouble(s);
} while(kelvin < 0);

double celzius = kelvin - 273.15;


Console.WriteLine("{0} K = {1} C", kelvin, celzius);
}
}

11. Napiite program koji e zatraiti od korisnika da upie niz znakova koji mora imati jednu od
dvije vrijednosti CRVENA ili PLAVA. Ako je korisnik upisao CRVENA neka se ispie PLAVA i
obrnuto. Program mora prisiliti korisnika da unese jednu od tih dviju vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
string s;

do
{
Console.WriteLine("Upiite niz znakova CRVENA ili PLAVA:");

46
Visoka poslovna kola MINERVA
Studij za informatiki menadment

s = Console.ReadLine();
} while (s != "CRVENA" && s != "PLAVA");

Console.WriteLine(s == "CRVENA" ? "PLAVA" : "CRVENA");


}
}

12. Napiite program koji e zatraiti od korisnika da unese neki string, te e ispisati podskupove
tog stringa na sljedei nain:
npr. za uneeni string Voda treba ispisati:
V
Vo
Vod
Voda
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite string:");
string s = Console.ReadLine();
for(int i = 0; i < s.Length; i++)
Console.WriteLine(s.Substring(0, i + 1));
}
}

13. Napiite program koji e zatraiti od korisnika da unese neki string, te e ispisati podskupove
tog stringa na sljedei nain:
npr. za uneeni string Voda treba ispisati:
Voda
Vod
Vo
V
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite string:");
string s = Console.ReadLine();
for(int i = 0; i < s.Length; i++)
Console.WriteLine(s.Substring(0, s.Length - i));
}
}

14. Napiite program koji e zatraiti od korisnika da upie rije, te e ispisati podskupove te
rijei na sljedei nain kao npr. za rije KUGLA:
A
LA

47
Visoka poslovna kola MINERVA
Studij za informatiki menadment

GLA
UGLA
KUGLA
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite rije:");
string s = Console.ReadLine();

for (int i = 0; i < s.Length; i++)


{
for (int j = 0; j < s.Length - 1 - i; j++)
Console.Write(" ");
Console.WriteLine(s.Substring(s.Length - 1 - i));
}
}
}

15. Napiite program koji e zatraiti od korisnika da unese niz znakova, te e kreirati i ispisati
string koji e sadravati sve znakove iz uneenog niza osim znakova A i a (npr. Afrika -> frik).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite niz znakova:");
string s = Console.ReadLine();
string s1 = "";

for(int i = 0; i < s.Length; i++)


if(s[i] != 'A' && s[i] != 'a')
s1 += s[i];

Console.WriteLine(s1);
}
}

16. Napiite program koji e zatraiti od korisnika da unese neku rije, te e je ispisati tako da
ispie najprije samoglasnike iz te rijei, a nakon toga i suglasnike (npr. Zlato -> aoZlt).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite rije:");

48
Visoka poslovna kola MINERVA
Studij za informatiki menadment

string s = Console.ReadLine();
string s1 = "";

for(int i = 0; i < s.Length; i++)


if(s[i] == 'A' || s[i] == 'a' ||
s[i] == 'E' || s[i] == 'e' ||
s[i] == 'I' || s[i] == 'i' ||
s[i] == 'O' || s[i] == 'o' ||
s[i] == 'U' || s[i] == 'u')
s1 += s[i];

for(int i = 0; i < s.Length; i++)


if(!(s[i] == 'A' || s[i] == 'a' ||
s[i] == 'E' || s[i] == 'e' ||
s[i] == 'I' || s[i] == 'i' ||
s[i] == 'O' || s[i] == 'o' ||
s[i] == 'U' || s[i] == 'u'))
s1 += s[i];

Console.WriteLine(s1);
}
}

17. Napiite program koji e izraunati broj prim brojeva manjih od 100 (prim broj je broj koji
je djeljiv samo s 1 i sa samim sobom)
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
bool FlagPrim = true;
int BrojPrimova = 0;

for(int i = 1; i < 100; i++)


{
for(int j = 2; j < i - 1; j++)
if(i % j == 0)
{
FlagPrim = false;
break;
}

if(FlagPrim)
BrojPrimova++;
FlagPrim = true;
}
Console.WriteLine(BrojPrimova);
}
}

18. Napiite program koji e zatraiti od korisnika da unese dvije rijei, te e izraunati broj
pojavljivanja druge rijei u prvoj (npr. VODOVOD, VOD -> VOD -> 2 puta).
--------------------------------------------------------------------------------------------------------------------

49
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

public class Test


{
public static void Main()
{
int x = 0, y;

Console.WriteLine("Unesite prvu rije:");


string s1 = Console.ReadLine();
Console.WriteLine("Unesite drugu rije:");
string s2 = Console.ReadLine();

while((y = s1.IndexOf(s2)) != -1)


{
s1 = s1.Remove(y, s2.Length);
x++;
}
Console.WriteLine("{0} puta", x);
}
}

19. Napiite program koji e za uneeni niz znakova pronai znak koji se pojavljuje najvie puta,
te e i izraunati taj broj (npr. VODOVOD -> O, 3 puta).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
char c = ' ';
int x, max = 0;

Console.WriteLine("Unesite rije:");
string s = Console.ReadLine();

for(int i = 0; i < s.Length; i++)


{
x = 0;
for(int j = 0; j < s.Length; j++)
if(s[i] == s[j])
x++;

if(x > max)


{
c = s[i];
max = x;
}
}
Console.WriteLine("Znak {0} {1} puta", c, max);
}
}

50
Visoka poslovna kola MINERVA
Studij za informatiki menadment

20. Napiite program koji e uitavati ocjene sve dok korisnik ne unese 0, te e izraunati
prosjek ocjena. Ako je barem jedna ocjena 1, prosjek ocjena je 1.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int i, zbroj = 0, broj = 0;
string s;

do
{
Console.WriteLine("Unesite ocjenu:");
s = Console.ReadLine();
i = Convert.ToInt32(s);

if(i > 1 && i <= 5)


{
zbroj += i;
broj++;
}
else if(i == 1)
{
zbroj = broj = 1;
break;
}
} while(i != 0);

Console.WriteLine("Prosjek ocjena je {0}",


(double)zbroj / broj);
}
}

21. Napiite program koji e izraunati zbroj svih znamenki broja iju vrijednost sadri varijabla
Broj kojoj dodijelite proizvoljnu vrijednost. (npr. 345 -> 12).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int Broj = 345, x = 0;

while (Broj != 0)
{
x += Broj % 10;
Broj /= 10;
}

Console.WriteLine("Zbroj znamenki je {0}", x);


}

51
Visoka poslovna kola MINERVA
Studij za informatiki menadment

22. Napiite program koji e iz dva uneena niza znakova ispisati samo znakove koji su sadrani
u oba niza. Pojedini znak treba ispisati samo jednom (npr. HRVATSKA i AUSTRIJA -> RATS).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite prvi niz znakova:");
string s1 = Console.ReadLine();
Console.WriteLine("Unesite drugi niz znakova:");
string s2 = Console.ReadLine();
string s3 = "";

for(int i = 0; i < s1.Length; i++)


for(int j = 0; j < s2.Length; j++)
if(s1[i] == s2[j] && s3.IndexOf(s2[j]) == -1)
s3 += s2[j];

Console.WriteLine(s3);
}
}

23. Napiite program koji e zatraiti od korisnika da unese stranice trokuta odvojene razmakom,
te e provjeriti je li trokut pravokutan (npr. 6 8 10 -> DA)
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
string s, s1 = "";
int i, a, b, c;

Console.WriteLine("Unesite stranice trokuta odvojene


razmakom:");
s = Console.ReadLine();

int x = 0;
while (s[x++] != ' ')
s1 += s[x - 1];
a = Convert.ToInt32(s1);

s1 = "";
while (s[x++] != ' ')
s1 += s[x - 1];
b = Convert.ToInt32(s1);

c = Convert.ToInt32(s.Substring(x - 1));

52
Visoka poslovna kola MINERVA
Studij za informatiki menadment

if (a * a + b * b == c * c ||
a * a + c * c == b * b ||
b * b + c * c == a * a)
Console.WriteLine("Trokut je pravokutan");
else
Console.WriteLine("Trokut nije pravokutan");
}
}

24. Napiite program koji e zatraiti od korisnika da unese broj u binarnom obliku, te e
izraunati i ispisati njegovu dekadsku vrijednost (npr. 11001 -> 25).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Upiite broj u binarnom obliku:");
string s = Console.ReadLine();
int f = 1, dek = 0;

for(int i = s.Length - 1; i >= 0; i--)


{
if(s[i] == '1')
dek += f;
f *= 2;
}
Console.WriteLine(dek);
}
}

25. Napiite program koji e zatraiti od korisnika da unese broj u dekadskom obliku, te e
izraunati i ispisati njegovu binarnu vrijednost (npr. 25 -> 11001).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Upiite broj u dekadskom obliku:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

for(s = ""; x > 0; x /= 2)


s += (x % 2).ToString();

for(int i = s.Length-1; i >= 0; i--)


Console.Write(s[i]);
}
}

53
Visoka poslovna kola MINERVA
Studij za informatiki menadment

26. Napiite program koji e zatraiti od korisnika da unese dva broja, te e izraunati najvei
broj s kojim su oba broja djeljiva.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int x, y, z, max = 1;
Console.WriteLine("Upiite prvi broj:");
string s = Console.ReadLine();
x = Convert.ToInt32(s);
Console.WriteLine("Upiite drugi broj:");
s = Console.ReadLine();
y = Convert.ToInt32(s);

z = x < y ? x : y;

for (int i = z; i >= 1; i--)


if (x % i == 0 && y % i == 0)
{
max = i;
break;
}

Console.WriteLine(max);
}
}

27. Napiite program koji e zatraiti od korisnika da unese dva broja, te e izraunati najmanji
broj koji je djeljiv s oba uneena broja.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x, y, z, min = 1;
Console.WriteLine("Upiite prvi broj:");
string s = Console.ReadLine();
x = Convert.ToInt32(s);
Console.WriteLine("Upiite drugi broj:");
s = Console.ReadLine();
y = Convert.ToInt32(s);

z = x > y ? x : y;

for(int i = z; ; i++)
if(i % x == 0 && i % y == 0)
{
min = i;
break;

54
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine(min);
}
}

28. Napiite program koji e zbrojiti prvih n brojeva ne uzimajui u obzir one koji imaju
znamenku 9 na posljednjem mjestu. Broj n uzmite od korisnika.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Upiite neki broj:");
string s = Console.ReadLine();
int n = Convert.ToInt32(s);

int zbroj = 0;
for(int i = 1; i <= n; i++)
if(i % 10 != 9)
zbroj += i;

Console.WriteLine(zbroj);
}
}

29. Napiite program koji e zatraiti od korisnika da unese jednu rije, te e je ispisati tako da
izbaci svako ponavljanje pojedinog slova (npr. VODOVOD -> VOD).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite rije:");
string s = Console.ReadLine();
string s1 = "";
bool flag;

for(int i = 0; i < s.Length; i++)


{
flag = false;
for(int j = 0; j < i; j++)
if(s[j] == s[i])
{
flag = true;
continue;
}

if(!flag)
s1 += s[i];

55
Visoka poslovna kola MINERVA
Studij za informatiki menadment

}
Console.WriteLine(s1);
}
}

30. Napiite program koji e zatraiti od korisnika da unese neki pozitivni broj, te e ispisati sve
brojeve manje od tog broja na sljedei nain: npr. za uneeni broj 5 treba ispisati:
1
12
123
1234
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite neki pozitivni broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

for(int i = 1; i < x; i++)


{
for(int j = 1; j <= i; j++)
Console.Write(j);
Console.WriteLine();
}
}
}

31. Napiite program koji e zatraiti od korisnika da unese neki pozitivni broj, te e izraunati je
li korijen tog broja cijeli broj (npr. 100 -> Da).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite neki pozitivni broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

bool flag = false;


int y = x / 2;
for(int i = 0; i < y; i++)
if(i * i == x)
{
flag = true;
break;
}

Console.WriteLine(flag ? "Da" : "Ne");

56
Visoka poslovna kola MINERVA
Studij za informatiki menadment

}
}

32. Napiite program koji e traiti od korisnika da unosi vrijednosti igraih karata (1 13), te e
zavriti s programom kad ukupno uneena 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 vea od 31)
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x, sum = 0;
string s;

do
{
Console.WriteLine("Unesite vrijednost igrae karte:");
s = Console.ReadLine();
x = Convert.ToInt32(s);
if (x >= 1 && x <= 13)
sum += x;
} while(sum < 31);

Console.WriteLine("{0}",
sum == 31 ? "Pobijedili ste" : "Izgubili ste");
}
}

33. Napiite program koji e od korisnika uzeti string, te e provjeriti je li rije palindrom.
(npr. ANA -> DA)
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite string:");
string s = Console.ReadLine();
string s1 = "";
for(int i = s.Length - 1; i >= 0; i--)
s1 += s[i];

Console.WriteLine("Rije {0} palindrom",


s == s1 ? "je" : "nije");
}
}

57
Visoka poslovna kola MINERVA
Studij za informatiki menadment

34. Fibonaccijev niz definiran je na sljedei nain:


prvi lan niza je 0
drugi lan niza je 1
svaki sljedei lan niza jednak je zbroju prethodna dva lana
Napiite program koji e zatraiti od korisnika da unese broj n, te e izraunati n-ti lan
Fibonaccijevog niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int n;
Console.WriteLine("Upiite neki broj:");
string s = Console.ReadLine();
n = Convert.ToInt32(s);

long x1 = 0, x2 = 1, fib;

if(n == 1)
fib = 0;
else if(n == 2)
fib = 1;
else
{
for(int i = 0; i < n; i++)
{
long y = x1 + x2;
x1 = x2;
x2 = y;
}
fib = x1;
}
Console.WriteLine(
"{0}. lan Fibonnacijevog niza je {1}", n, fib);
}
}

35. Napiite program koji e izraunati najvei broj iji faktorijel je manji od 1000000.
Faktorijel od npr. 4 je 1 * 2 * 3 * 4.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int i = 1;
long Faktorijel = 1;

for (; ;)
{
if (Faktorijel > 1000000)

58
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
Faktorijel /= (i - 1);
break;
}
Faktorijel *= i++;
}
Console.WriteLine("{0}! = {1}", i - 2, Faktorijel);
}
}

36. Napiite program koji e zatraiti od korisnika da unese 10 cijelih brojeva od 1 do 1000, te e
provjeriti je li aritmetika sredina svih uneenih brojeva jednaka aritmetikoj sredini najveeg i
najmanjeg uneenog broja.
Korisnik mora unijeti 10 brojeva u zadanom rasponu, unose brojeva izvan raspona ne smijete
raunati kao jedan od 10 unosa.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int min = 1000, max = 0, zbroj = 0;

Console.WriteLine("Unesite 10 cijelih brojeva u rasponu 1 do


1000:");
for(int i = 0; i < 10; i++)
{
string s = Console.ReadLine();
int x = Convert.ToInt32(s);
if(x < 1 || x > 1000)
{
i--;
continue;
}
else if(min > x)
min = x;
else if(max < x)
max = x;

zbroj += x;
}

if((double)zbroj / 10 == (double)(min + max) / 2)


Console.WriteLine("Da");
else
Console.WriteLine("Ne");

}
}

37. Napiite program koji e zatraiti od korisnika da unese 2 broja koje spremite u int varijable
x i y, te izraunajte koji broj je vei xy ili yx.
--------------------------------------------------------------------------------------------------------------------

59
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite prvi broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);
Console.WriteLine("Upiite drugi broj:");
s = Console.ReadLine();
int y = Convert.ToInt32(s);

int broj1 = 1;
for (int i = 0; i < y; i++)
broj1 *= x;

int broj2 = 1;
for(int i = 0; i < x; i++)
broj2 *= y;

if(broj1 > broj2)


Console.WriteLine("Vei broj je {0} na {1}", x, y);
else if(broj2 > broj1)
Console.WriteLine("Vei broj je {0} na {1}", y, x);
else
Console.WriteLine("{0} na {1} == {2} na {3}", x, y, y, x);
}
}

38. Napiite program koji e zatraiti od korisnika da unese cijeli broj, te e provjeriti je li taj broj
faktorijel nekog broja.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite cijeli broj:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);
long fakt = 1;

for(int i = 1; ; i++)
{
fakt *= i;
if (fakt == x)
{
Console.WriteLine("{0} je faktorijel broja {1}", x, i);
break;
}
else if(fakt > x)
{
Console.WriteLine(

60
Visoka poslovna kola MINERVA
Studij za informatiki menadment

"{0} nije faktorijel niti jednog broja", x);


break;
}
}
}
}

39. Napiite program koji e zatraiti od korisnika da unese dvije rijei, te e iz prve izbaciti
svako pojavljivanje druge rijei (npr. VODOVODNA, VOD -> ONA).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int x;

Console.WriteLine("Unesite prvu rije:");


string s1 = Console.ReadLine();
Console.WriteLine("Unesite drugu rije:");
string s2 = Console.ReadLine();

while((x = s1.IndexOf(s2)) != -1)


s1 = s1.Remove(x, s2.Length);

Console.WriteLine(s1);
}
}

40. Napiite program koji e zatraiti od korisnika da unese neki broj s proizvoljnim brojem
znamenaka, te e ispisati najveu i najmanju znamenku uneenog broja (npr. 3682 -> 2 i 8).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
Console.WriteLine("Unesite neki broj:");
string s = Console.ReadLine();

int max = 0, min = 9;


for (int i = 0; i < s.Length; i++)
{
if (s[i] - 48 > max)
max = s[i] - 48;
if (s[i] - 48 < min)
min = s[i] - 48;
}
Console.WriteLine("{0} {1}", min, max);
}
}

61
Visoka poslovna kola MINERVA
Studij za informatiki menadment

41. Napiite program koji e zatraiti od korisnika da upie razlomak u obliku X/Y. Razlomak
treba maksimalno skratiti, te ga ispisati u takvom skraenom obliku (npr. 16/24 -> 2/3).
--------------------------------------------------------------------------------------------------------------------

using System;

class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Upiite razlomak u obliku X/Y");
string s = Console.ReadLine();
int pos = s.IndexOf('/');
int brojnik = Convert.ToInt32(s.Substring(0, pos));
int nazivnik = Convert.ToInt32(s.Substring(pos + 1));

int min = brojnik < nazivnik ? brojnik : nazivnik;

for(int i = min; i > 1; i--)


if(brojnik % i == 0 && nazivnik % i == 0)
{
brojnik /= i;
nazivnik /= i;
}

if(nazivnik == 1)
Console.WriteLine(brojnik);
else
Console.WriteLine("{0}/{1}", brojnik, nazivnik);
}
}

42. Napiite program koji e provjeriti je li cjelobrojni broj iju vrijednost sadri varijabla
Number djeljiv sa svim svojim znamenkama (npr. 1395 -> DA).
Varijabli Number dodijelite proizvoljnu vrijednost.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int x, Number = 1395;
bool flag = true;

int NumberOld = Number; // Sauvaj jer se Number mijenja


while (Number / 10 != 0)
{
x = Number % 10;
if (x != 0 && NumberOld % x != 0)
{
flag = false;
break;
}

62
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Number /= 10;
}

x = Number % 10; // Provjeri i zadnju znamenku


if (NumberOld % x != 0)
flag = false;

Console.WriteLine("Broj {0} {1} djeljiv sa svim svojim


znamenkama", NumberOld, flag ? "je" : "nije");
}
}

43. Broj (PI) se moe izraunati po formuli:


/4 = 1 1/3 + 1/5 1/7 + 1/9 -
Napiite program koji e izraunati broj , a raunanje prekinite kad postignete tonost na petoj
decimali (broj na pet decimala iznosi 3.14159).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
long x = 3;
double pi = 1;
for(int i = 0; ;i++ )
{
if(i % 2 == 0)
pi -= 1.0 / x;
else
pi += 1.0 / x;
x += 2;

if((int)(pi * 4 * 1000000) - 3000000 == 141592)


break;
}
pi *= 4;
Console.WriteLine(pi);
}
}

44. Napiite program koji e za uneeni niz znakova izraunati broj znakova koji se u nizu
pojavljuju samo jednom (npr. LONDON -> 2).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
bool flag;
int x = 0;

Console.WriteLine("Unesite rije:");

63
Visoka poslovna kola MINERVA
Studij za informatiki menadment

string s = Console.ReadLine();

for(int i = 0; i < s.Length; i++)


{
flag = true;
for(int j = 0; j < s.Length; j++)
if(s[i] == s[j] && i != j)
{ // Ako je pronaen u ostalim znakovima
flag = false;
break;
}
if(flag == true)
x++;
}
Console.WriteLine(x);
}
}

45. Napiite program koji e zatraiti od korisnika da unese neki broj, te e provjeriti sadri li broj
sve razliite znamenke. (npr. 2734 -> Da 273473 -> Ne).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
bool flag = true;
Console.WriteLine("Upii broj:");
string s = Console.ReadLine();
for (int i = 0; i < s.Length - 1 && flag; i++)
for (int j = i + 1; j < s.Length; j++)
if (s[i] == s[j])
{
flag = false;
break;
}
Console.WriteLine(flag ? "Da" : "Ne");
}
}

46. Napiite program koji e zatraiti od korisnika da unese rije te e izraunati koliko rije ima
slova. Napomena: D, LJ i NJ su jedno slovo.
--------------------------------------------------------------------------------------------------------------------
using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upii neku rije");
string s = Console.ReadLine().ToUpper();
int n = 0;

for(int i=0; i < s.Length-1;i++)

64
Visoka poslovna kola MINERVA
Studij za informatiki menadment

if(!(s[i] == 'D' && s[i+1] == ''


||
s[i] == 'L' && s[i+1] == 'J'
||
s[i] == 'N' && s[i+1] == 'J'))
n++;
Console.WriteLine(++n); // n poveaj za zadnje slovo
}
}

47. Napiite program koji e od prvih 100 brojeva ispisati sve parove razliitih brojeva koji
zadovoljavaju sljedei 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)
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int zbroj1, zbroj2, MAX = 100;

for (int x = 0; x < MAX-1; x++)


for (int y = x + 1; y < MAX; y++)
{
zbroj1 = zbroj2 = 0;
for(int z = 2; z < x; z++)
if(x % z == 0)
zbroj1 += z;

for(int z = 2; z < y; z++)


if(y % z == 0)
zbroj2 += z;

if(zbroj1 == zbroj2 && zbroj1 + zbroj2 != 0)


Console.WriteLine("{0} {1}", x, y);
}
}
}

48. Napiite program koji e generirati sve razliite kombinacije igre na sreu LOTO 7/39 (jedna
kombinacija sadri sedam razliitih brojeva od 1 do 39).
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int MAX = 39;

for(int a = 1; a <= MAX - 6; a++)


for(int b = a + 1; b <= MAX - 5; b++)

65
Visoka poslovna kola MINERVA
Studij za informatiki menadment

for(int c = b + 1; c <= MAX - 4; c++)


for(int d = c + 1; d <= MAX - 3; d++)
for(int e = d + 1; e <= MAX - 2; e++)
for(int f = e + 1; f <= MAX - 1; f++)
for(int g = f + 1; g <= MAX; g++)
Console.WriteLine("{0} {1} {2} {3} {4} {5} {6}",
a, b, c, d, e, f, g);
}
}

49. Napiite program koji e izraunati za koliko se prosjeno polja pomakne figura u jednom
bacanju kocke u igri ovjee ne ljuti se (estica znai ponovno bacanje koje pomie figuru, ali
se ne rauna kao novo bacanje kocke !).
--------------------------------------------------------------------------------------------------------------------

using System;
using System.Threading;

class Test
{
public static void Main()
{
int sum = 0, y;
int MAX = 1000000; // 1000000 je dovoljno velik broj
Random x = new Random(); // za ovaj izraun

for(int i = 0; i < MAX; i++)


{
while((y = x.Next(6) + 1) == 6) // Sve dok je estica
sum += y; // bacaj ponovo i ne raunaj kao pokuaj

sum += y;
}
Console.WriteLine("{0,0:f}", (double)sum / MAX);
}
}

66
Visoka poslovna kola MINERVA
Studij za informatiki menadment

4. Nizovi

67
Visoka poslovna kola MINERVA
Studij za informatiki menadment

68
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci
1. Napiite program koji e deklarirati niz tipa int, te e ga definirati s kvadratima prvih 10
brojeva. lanove niza na kraju ispiite.

2. Napiite program koji e definirati niz tipa string, te e definirati i drugi niz tipa int u kojem
e lanovi biti duine stringova iz prvog niza. Program mora raditi ispravno za proizvoljni broj
lanova niza.

3. Napiite program koji e deklarirati niz tipa int veliine 100, te e ga definirati vrijednostima
prvih 100 brojeva. Definirajte i ispiite niz tipa double u kojem e biti polovice vrijednosti iz
prvog niza.

4. Napiite program koji e definirati 2 niza tipa double, te e definirati i trei niz tipa double u
kojem e lanovi biti svi lanovi iz prva dva niza. Program mora raditi ispravno za proizvoljni broj
lanova niza.

5. Napiite program koji e definirati niz koji e sadravati n prvih dvoznamenkastih brojeva.
Broj n uzmite od korisnika, a prisilite ga da ne unese broj vei od maksimalnog broja
dvoznamenkastih brojeva.

6. Napiite 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. Napiite program koji e za dva definirana niza tipa int provjeriti sadre li barem jedan
zajedniki lan. Program mora raditi ispravno za proizvoljni broj lanova niza.

8. Napiite program koji e definirati 2 niza tipa int, te e definirati i trei niz tipa int koji e
sadravati samo zajednike lanove iz oba niza. Program mora raditi ispravno za proizvoljni broj
lanova niza. lanove niza na kraju ispiite.

9. Napiite program koji e definirati 2 niza tipa int, te e definirati i trei niz tipa int koji e
sadravati 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 ispiite.

10. Napiite program u kojem ete deklarirati dvodimenzionalni niz tipa int s 11 redova i 11
stupaca. lanove niza definirajte kao umnoak indeksa retka i indeksa stupca. Provjerite da tako
definirani niz predstavlja tablicu mnoenja tako da ispiete vrijednost lana arr[7,5].

11. Napiite program u kojem ete definirati matricu m x n gdje su m i n uneeni od korisnika,
te definirajte matricu sa sluajnim brojevima od 0 do 100 i ispiite lanove matrice.

12. Napiite program koji e deklarirati dva niza tipa int veliine 10 lanova, te e zatraiti 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 premai 10.
Na kraju ispiite sve lanove nizova.

13. Napiite program koji e za definirani niz tipa double pronai lan koji najmanje odstupa od
prosjene vrijednosti niza. Program mora raditi ispravno za proizvoljni broj lanova niza.

69
Visoka poslovna kola MINERVA
Studij za informatiki menadment

14. Napiite program koji e definirati 2 niza tipa int, te e izraunati broj lanova koji se nalaze
na istom indeksu i imaju istu vrijednost. Program mora raditi ispravno za proizvoljni broj lanova
niza.

15. Napiite program koji e definirati niz tipa int, te e ga predefinirati, odnosno sortirati tako
da lanovi budu poredani od manjeg prema veem. Program mora raditi ispravno za proizvoljni
broj lanova niza. lanove niza na kraju ispiite.

16. Napiite program koji e definirati niz tipa int s proizvoljnim lanovima, te zatraite od
korisnika da unese indeks nekog od lanova niza. Ako je indeks unutar veliine niza ispiite
vrijednost lana na mjestu uneenog indeksa, a ako je izvan granica uhvatite iznimku
IndexOutOfRangeException.

17. Napiite program koji e definirati niz tipa byte u kojem e biti prvih 10 brojeva, te zatraite
od korisnika da unese vrijednost koju ete dodijeliti estom lanu niza. Ako se uneeni broj ne
moe pretvoriti u tip byte uhvatite iznimku OverflowException.

18. Napiite program koji e zatraiti od korisnika da unese 5 igraih karata, te e napisati
sainjavaju li tih 5 karata kombinaciju poker (4 iste karte).

19. Napiite program koji e generirati raspored igranja 32 tenisaa (esneastina finala). Na
turniru nema nositelja i svatko moe igrati protiv svakog.

20. Napiite program koji e generirati raspored igranja 16 tenisaa (osmina finala). Na turniru
ima 8 nositelja i oni ne mogu meusobno igrati.

70
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Napiite program koji e deklarirati niz tipa int, te e ga definirati s kvadratima prvih 10
brojeva. lanove niza na kraju ispiite.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr = new int[10];

for(int i = 0; i < arr.Length; i++)


arr[i] = (i + 1) * (i + 1);

for(int i = 0; i < arr.Length; i++)


Console.WriteLine(arr[i]);
}
}

2. Napiite program koji e definirati niz tipa string, te e definirati i drugi niz tipa int u kojem
e lanovi biti duine stringova iz prvog niza. Program mora raditi ispravno za proizvoljni broj
lanova niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string[] arr1 = {"Jedan", "Dva", "Tri", "etiri", "Pet"};
int[] arr2 = new int[arr1.Length];

for(int i = 0; i < arr1.Length; i++)


arr2[i] = arr1[i].Length;
}
}

3. Napiite program koji e deklarirati niz tipa int veliine 100, te e ga definirati vrijednostima
prvih 100 brojeva. Definirajte i ispiite niz tipa double u kojem e biti polovice vrijednosti iz
prvog niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
const int MAX = 100;
int[] arr1 = new int[MAX];
double[] arr2 = new double[MAX];

71
Visoka poslovna kola MINERVA
Studij za informatiki menadment

for (int i = 0; i < MAX; i++)


arr1[i] = (i + 1);

for (int i = 0; i < MAX; i++)


arr2[i] = (double)(i + 1) / 2;

for (int i = 0; i < MAX; i++)


Console.WriteLine(arr2[i]);
}
}

4. Napiite program koji e definirati 2 niza tipa double, te e definirati i trei niz tipa double u
kojem e lanovi biti svi lanovi iz prva dva niza. Program mora raditi ispravno za proizvoljni broj
lanova niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
double[] arr1 = { 1.1, 2.2, 3.3, 4.4, 5.5 };
double[] arr2 = { 6.6, 7.7, 8.8, 9.9, 10.10 };
double[] arr3 = new double[arr1.Length + arr2.Length];

int x = 0;
for(int i = 0; i < arr1.Length; i++)
arr3[x++] = arr1[i];
for(int i = 0; i < arr2.Length; i++)
arr3[x++] = arr2[i];
}
}

5. Napiite program koji e definirati niz koji e sadravati n prvih dvoznamenkastih brojeva.
Broj n uzmite od korisnika, a prisilite ga da ne unese broj vei od maksimalnog broja
dvoznamenkastih brojeva.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int n;
string s;

do
{
Console.WriteLine("Upiite broj lanova niza:");
s = Console.ReadLine();
n = Convert.ToInt32(s);
} while(n <= 0 || n > 90);

72
Visoka poslovna kola MINERVA
Studij za informatiki menadment

int[] arr = new int[n];


int x = 10;

for(int i = 0; i < n; i++)


arr[i] = x++;
}
}

6. Napiite 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.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7 };
bool flag = false;

for(int i = 0; i < arr.Length-1; i++)


for(int j = i + 1; j < arr.Length; j++)
if(arr[i] == arr[j])
{
flag = true;
break;
}

Console.WriteLine("Niz {0} barem dva ista broja",


flag ? "sadri" : "ne sadri");
}
}

7. Napiite program koji e za dva definirana niza tipa int provjeriti sadre li barem jedan
zajedniki lan. Program mora raditi ispravno za proizvoljni broj lanova niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = { 5, 6, 7, 8, 9 };

bool flag = false;


for(int i = 0; i < arr1.Length; i++)
for(int j = 0; j < arr2.Length; j++)
if(arr1[i] == arr2[j])
{
flag = true;
break;
}

73
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Nizovi {0} barem dva ista lana",


flag ? "imaju" : "nemaju");
}
}

8. Napiite program koji e definirati 2 niza tipa int, te e definirati i trei niz tipa int koji e
sadravati samo zajednike lanove iz oba niza. Program mora raditi ispravno za proizvoljni broj
lanova niza. lanove niza na kraju ispiite.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = { 3, 5, 7, 9 };
int[] arr3 = new int[arr1.Length];

int x = 0;
bool flag;

for(int i = 0; i < arr1.Length; i++)


{
flag = false;
for(int j = 0; j < arr2.Length; j++)
if (arr1[i] == arr2[j])
{
flag = true;
break;
}
if(flag)
arr3[x++] = arr1[i];
}

for(int i = 0; i < x; i++) // OD x do arr3.Length arr3


Console.WriteLine(arr3[i]);// bit e ispunjen s 0
}
}

9. Napiite program koji e definirati 2 niza tipa int, te e definirati i trei niz tipa int koji e
sadravati 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 ispiite.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr1 = { 1, 2, 3, 4, 5 };
int[] arr2 = { 3, 5, 7, 9 };
int[] arr3 = new int[arr1.Length];

74
Visoka poslovna kola MINERVA
Studij za informatiki menadment

int x = 0;
bool flag;

for(int i = 0; i < arr1.Length; i++)


{
flag = false;
for(int j = 0; j < arr2.Length; j++)
if(arr1[i] == arr2[j])
{
flag = true;
break;
}
if(!flag)
arr3[x++] = arr1[i];
}

for(int i = 0; i < x; i++) // OD x do arr3.Length arr3


Console.WriteLine(arr3[i]);// bit e ispunjen s 0
}
}

10. Napiite program u kojem ete deklarirati dvodimenzionalni niz tipa int s 11 redova i 11
stupaca. lanove niza definirajte kao umnoak indeksa retka i indeksa stupca. Provjerite da tako
definirani niz predstavlja tablicu mnoenja tako da ispiete vrijednost lana arr[7,5].
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[,] arr = new int[11, 11];

for (int i = 0; i < 11; i++)


for (int j = 0; j < 11; j++)
arr[i, j] = i * j;

Console.WriteLine(arr[7, 5]);
}
}

11. Napiite program u kojem ete definirati matricu m x n gdje su m i n uneeni od korisnika,
te definirajte matricu sa sluajnim brojevima od 0 do 100 i ispiite lanove matrice.
--------------------------------------------------------------------------------------------------------------------

using System;
using System.Threading;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite broj redaka");
string s = Console.ReadLine();

75
Visoka poslovna kola MINERVA
Studij za informatiki menadment

int m = Convert.ToInt32(s);

Console.WriteLine("Upiite broj stupaca");


s = Console.ReadLine();
int n = Convert.ToInt32(s);

int[,] arr = new int[m, n];


Random r = new Random();

for(int i = 0; i < m; i++)


for (int j = 0; j < n; j++)
arr[i, j] = r.Next(100);

for(int i = 0; i < m; i++)


{
for (int j = 0; j < n; j++)
Console.Write("{0,2:d} ", arr[i, j]);
Console.WriteLine();
}
}
}

12. Napiite program koji e deklarirati dva niza tipa int veliine 10 lanova, te e zatraiti 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 premai 10.
Na kraju ispiite sve lanove nizova.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr1 = new int[10];
int[] arr2 = new int[10];
string s;
int x, n1 = 0, n2 = 0;

do
{
Console.WriteLine("Upiite broj:");
s = Console.ReadLine();
x = Convert.ToInt32(s);
if (x % 2 != 0)
arr1[n1++] = x;
else
arr2[n2++] = x;
} while(x != 0 && n1 < 10 && n2 < 10);

Console.WriteLine();
for(int i = 0; i < n1; i++)
Console.WriteLine(arr1[i]);
Console.WriteLine();
for(int i = 0; i < n2; i++)

76
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine(arr2[i]);
}
}

13. Napiite program koji e za definirani niz tipa double pronai lan koji najmanje odstupa od
prosjene vrijednosti niza. Program mora raditi ispravno za proizvoljni broj lanova niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
double[] arr = { 1.5, 2.3, 3.6, 4.8, 5.2, 6.9, 7.4 };
double sum = 0;

for (int i = 0; i < arr.Length; i++)


sum += arr[i];
double prosjek = sum / arr.Length;

int ind = 0;
double min = sum; // Bitno je da min bude vei od oekivanog
for(int i = 0; i < arr.Length; i++)
if(Math.Abs(arr[i] - prosjek) < min)
{
min = Math.Abs(arr[i] - prosjek);
ind = i;
}

Console.WriteLine(arr[ind]);
}
}

14. Napiite program koji e definirati 2 niza tipa int, te e izraunati broj lanova koji se nalaze
na istom indeksu i imaju istu vrijednost. Program mora raditi ispravno za proizvoljni broj lanova
niza.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int[] arr1 = { 1, 2, 3, 4, 5, 6, 7 };
int[] arr2 = { 3, 2, 8, 5, 5, 7 };

int x, count = 0;
if(arr1.Length < arr2.Length)
x = arr1.Length;
else
x = arr2.Length;

for(int i = 0; i < x; i++)


if(arr1[i] == arr2[i])

77
Visoka poslovna kola MINERVA
Studij za informatiki menadment

count++;

Console.WriteLine("Broj zajednikih lanova je {0}", count);


}
}

15. Napiite program koji e definirati niz tipa int, te e ga predefinirati, odnosno sortirati tako
da lanovi budu poredani od manjeg prema veem. Program mora raditi ispravno za proizvoljni
broj lanova niza. lanove niza na kraju ispiite.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int[] arr = { 10, 1, 8, 3, 2, 4, 5, 9, 6, 7 };

for(int i = 0; i < arr.Length - 1; i++)


for(int j = i+1; j < arr.Length;j++ )
if(arr[i] > arr[j])
{
int x = arr[i];
arr[i] = arr[j];
arr[j] = x;
}

for(int i = 0;i<arr.Length;i++)
Console.WriteLine(arr[i]);
}
}

16. Napiite program koji e definirati niz tipa int s proizvoljnim lanovima, te zatraite od
korisnika da unese indeks nekog od lanova niza. Ako je indeks unutar veliine niza ispiite
vrijednost lana na mjestu uneenog indeksa, a ako je izvan granica uhvatite iznimku
IndexOutOfRangeException.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Console.WriteLine("Upiite indeks lana niza:");
string s = Console.ReadLine();
int x = Convert.ToInt32(s);

try
{
Console.WriteLine(arr[x]);
}
catch(IndexOutOfRangeException)
{

78
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Indeks je izvan veliine niza.");


}
}
}

17. Napiite program koji e definirati niz tipa byte u kojem e biti prvih 10 brojeva, te zatraite
od korisnika da unese vrijednost koju ete dodijeliti estom lanu niza. Ako se uneeni broj ne
moe pretvoriti u tip byte uhvatite iznimku OverflowException.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
byte[] arr = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

Console.WriteLine("Upiite vrijednost:");
string s = Console.ReadLine();

try
{
byte x = Convert.ToByte(s);
arr[5] = x;
}
catch(OverflowException)
{
Console.WriteLine("Broj se ne moe dodijeliti nizu.");
}
}
}

18. Napiite program koji e zatraiti od korisnika da unese 5 igraih karata, te e napisati
sainjavaju li tih 5 karata kombinaciju poker (4 iste karte).
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
int []arr = new int[5];
for(int i = 0;i<5;i++)
{
Console.WriteLine("Unesite {0}. kartu", i+1);
string s = Console.ReadLine();
arr[i] = Convert.ToInt32(s);
}

if(arr[0] == arr[1] && arr[1] == arr[2] && arr[2] == arr[3]


||
arr[0] == arr[1] && arr[1] == arr[2] && arr[2] == arr[4]
||
arr[0] == arr[1] && arr[1] == arr[3] && arr[3] == arr[4]

79
Visoka poslovna kola MINERVA
Studij za informatiki menadment

||
arr[0] == arr[2] && arr[2] == arr[3] && arr[3] == arr[4]
||
arr[1] == arr[2] && arr[2] == arr[3] && arr[3] == arr[4])
Console.WriteLine("Poker");
else
Console.WriteLine("Nije poker");
}
}

19. Napiite program koji e generirati raspored igranja 32 tenisaa (esneastina finala). Na
turniru nema nositelja i svatko moe igrati protiv svakog.
--------------------------------------------------------------------------------------------------------------------

using System;
using System.Threading;

class Test
{
public static void Main()
{
int n = 0, Broj = 32;
int [] arr = new int[Broj];
Random x = new Random();

do
{
int y = x.Next(Broj) + 1;
bool flag = false;

for (int i = 0; i < n; i++)


if (arr[i] == y) // Ako je broj ve dodijeljen,
{ // ne dodijeljuj ga
flag = true;
break;
}

if (flag == false) // Broj nije dodijeljen


arr[n++] = y;

} while (n != Broj);

for (int i = 0, j = 0; i < Broj/2; i++, j += 2)


Console.WriteLine("{0} vs. {1}", arr[j], arr[j + 1]);
}
}

20. Napiite program koji e generirati raspored igranja 16 tenisaa (osmina finala). Na turniru
ima 8 nositelja i oni ne mogu meusobno igrati.
--------------------------------------------------------------------------------------------------------------------

using System;
using System.Threading;

class Test

80
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
public static void Main()
{
int n = 0, Broj = 16;
int[] arr = new int[Broj];
Random x = new Random();

do
{
int y = x.Next(Broj) + 1;
bool flag = false;

for (int i = 0; i < n; i++)


if (arr[i] == y) // Ako je broj ve dodijeljen,
{ // ne dodijeljuj ga
flag = true;
break;
}

if (flag == false) // Broj nije dodijeljen


arr[n++] = y;
} while (n != Broj);

// Sad raspodijeli igrae u dva niza


int [] arr1 = new int [Broj/2]; // Ovdje e biti nositelji
int [] arr2 = new int [Broj/2]; // a ovdje nenositelji
int a = 0, b = 0;

for(int i = 0; i < Broj; i++)


if(arr[i] <= Broj / 2) // Ako je broj od nositelja
arr1[a++] = arr[i];
else // Ako nije od nositelja
arr2[b++] = arr[i];

for(int i = 0; i < Broj / 2; i++)


Console.WriteLine("{0} vs. {1}", arr1[i], arr2[i]);
}
}

81
Visoka poslovna kola MINERVA
Studij za informatiki menadment

82
Visoka poslovna kola MINERVA
Studij za informatiki menadment

5. Objektno orijentirano programiranje

83
Visoka poslovna kola MINERVA
Studij za informatiki menadment

84
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci

1. Definirajte klasu Zrakoplov sa sljedeim lanicama:


privatne varijable:
Naziv, SnagaMotora, DosegLeta
konstruktor:
Zrakoplov(string, double, int)

Konstruktor treba definirati pripadajue varijable lanice s vrijednostima proslijeenih


argumenata.

Definirajte objekt x380 tipa Zrakoplov sa sljedeim podacima:


naziv Airbus, snaga motora 2000 kW, te doseg leta 6000 km.

2. Definirajte klasu Fruit sa sljedeim lanicama:


privatne varijable:
Vrsta, Boja, JeLiSlatko
konstruktori:
Fruit(string)
Fruit(string, string, bool)
Konstruktori trebaju definirati pripadajue varijable lanice s vrijednostima proslijeenih
argumenata.

Definirajte sljedea tri objekta tipa Fruit: x, y i z koji e predstavljati sljedee voe:
Jagoda
Limun
Avokado

3. Definirajte klasu Sport sa sljedeim lanicama:


privatne varijable:
Naziv, IgraLiSeLoptom, BrojIgraca,
konstruktori:
Sport(string)
Sport(string, bool)
Sport(string, bool, byte)
Konstruktor treba definirati pripadajue varijable lanice s vrijednostima proslijeenih
argumenata.

Definirajte sljedea tri objekta tipa Sport:


Nogomet
Vaterpolo
Curling

4. Definirajte klasu Neboder sa sljedeim lanicama:


privatne varijable:
visina, brojKatova
svojstva
Visina koje e vraati i definirati visinu nebodera.
BrojKatova koje e vraati i definirati broj katova.

85
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Definirajte objekt Tower tipa Neboder s visinom od 200 m, postavite vrijednost broja katova na
100, poveajte visinu za 10 m, poveajte broj katova za 1, te ispiite kolika je prosjena visina
kata.

5. Definirajte klasu Vozilo sa sljedeim lanicama:


privatne varijable:
vrsta, maxBrzina i brojKotaca
svojstva
Vrsta koje e vraati i definirati naziv vrste vozila
MaxBrzina koje e vraati i definirati maksimalnu brzinu vozila
BrojTockova koje e vraati i definirati broj kotaa koje vozilo ima

Definirajte dva objekta tipa Vozilo sa sljedeim podacima:


o vrsta Motocikl, broj kotaa 2, a maksimalnu brzinu zatraite od korisnika.
o vrsta Automobil, broj kotaa 4, maksimalna brzina 30 % vea od one koju ima motocikl.

6. Definirajte klasu PrvaKlasa sa sljedeim lanicama:


privatna statika varijabla tipa int
counter
konstruktor
PrvaKlasa() koji e poveati vrijednost statike varijable za jedan
svojstvo
Counter koje e vraati vrijednost statike varijable (read only)

Definirajte tri objekta tipa PrvaKlasa: x, y i z, te nakon toga ispiite vrijednost statike varijable
counter.

7. Definirajte klasu KlasaX sa sljedeim lanicama:


privatna statika varijabla tipa int
broj
statiko svojstvo
Broj koje e vraati i definirati vrijednost statike varijable

Dodijelite vrijednost 10 varijabli broj, te ispiite njenu vrijednost.

8. Definirajte klasu Film sa sljedeim lanicama:


varijable
VrijemeTrajanja
Reziser

Definirajte klase Horor, Drama i Komedija izvedene iz klase Film.


Definirajte tri objekta x, y i z tipa Horor, Drama i Komedija.

9. Definirajte klasu Biljka, te definirajte od nje izvedenu klasu Stablo sa sljedeim lanicama:
varijabla tipa bool
opadajuListovi
svojstvo
OpadajuListovi

86
Visoka poslovna kola MINERVA
Studij za informatiki menadment

konstruktor
Stablo(bool) koji e dodijeliti vrijednost proslijeenog argumenta varijabli
opadajuListovi

Definirajte klasu Cvijet izvedenu iz klase Biljka.


Definirajte klase Bijelogoricno i Crnogoricno izvedene iz klase Stablo. Klasama definirajte
odgovarajue konstruktore.

Definirajte dva objekta Hrast i Bor tipova Bijelogoricno i Crnogoricno, te ispiite vrijednosti
njihovih lanica opadajuListovi.

10. Definirajte klasu GeometrijskiLik sa sljedeim lanicama:


varijabla tipa int
BrojStranica
niz tipa double veliine 10
Stranice
metode
UcitajStranice() koja e uitati od korisnika stranice geometrijskog lika
Opseg () koja e vratiti opseg geometrijskog lika

Definirajte klase Trokut i Cetverokut izvedene iz klase GeometrijskiLik, te im definirajte


konstruktore u kojima ete varijabli BrojStranica dodijeliti odgovarajuu vrijednost.

Definirajte dva objekta tipa Trokut i Cetverokut, uitajte duljine stranica, te izraunajte
opsege.

11. Definirajte klasu Vozilo sa sljedeim lanicama:


varijable
JeLiLeti
JeLiPlovi
metoda
KudaVozi() koja e ispisati vrijednost dviju varijabli lanica

Definirajte klase Brod i Zrakoplov izvedene iz klase Vozilo, te im definirajte konstruktore u


kojima ete varijablama JeLiLeti i JeLiPlovi dodijeliti odgovarajuu vrijednost.

Definirajte dva objekta tipa Brod i Zrakoplov, te ispiite vrijednosti varijabli JeLiLeti i
JeLiPlovi.

12. Definirajte klasu Brojevi sa sljedeim lanicama:


varijabla tipa double
broj
svojstvo
Broj
virtualna metoda
double ApsVrijednost() koja e vraati 0

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 vraa apsolutnu vrijednost varijable broj.

87
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Definirajte tri objekta x, y, i z tipa Pozitivni, Negativni i Decimalni, dodijelite im vrijednosti


varijable broj 100, -100 i 100.45, te ispiite njihove apsolutne vrijednosti.

13. Definirajte klasu ProgramskiJezik sa sljedeim lanicama:


varijabla tipa double
postotak
svojstvo
Postotak

Definirajte klase Proceduralni, Objektni i Funkcionalni izvedene od klase ProgramskiJezik.

Definirajte tri objekta x, y i z tipova Proceduralni, Objektni i Funkcionalni, te zatraite od


korisnika da unese vrijednosti postotka za pojedini objekt.
Ako je zbroj postotaka razliit od 100 ispiite poruku o neispravnom unosu podataka, a ako je
zbroj jednak 100 izraunajte i ispiite koja vrsta programskih jezika je najzastupljenija.

14. Definirajte klasu GeometrijskoTijelo sa sljedeim varijablama lanicama:


varijable tipa double
Volumen
Oplosje
statika varijabla tipa int
BrojacTijela

Definirajte klase Kugla i Kvadar izvedene iz klase GeometrijskoTijelo.


Definirajte klasu Kocka izvedenu iz klase Kvadar.

Definirajte objekte x, y i z tipova Kugla, Kvadar i Kocka i poveajte vrijednost varijable


BrojacTijela za 1 sa svakom definicijom objekta.

15. Definirajte klasu NebeskoTijelo sa sljedeim varijablama lanicama:


varijable tipa double
BrzinaOkoOsi
BrzinaOkoSunca

Definirajte klase Planet i Satelit izvedene iz klase NebeskoTijelo, te im definirajte sljedee


konstruktore:
Planet(double, double)
Satelit(double, double)
koji e dodijeliti vrijednosti proslijeenih argumenata naslijeenim varijablama lanicama

Definirajte dva objekta Zemlja i Mjesec tipova Planet i Satelit.

16. Definirajte klasu Cat sa sljedeim lanicama:


varijabla tipa bool
opasna
svojstvo
Opasna
virtualna metoda

88
Visoka poslovna kola MINERVA
Studij za informatiki menadment

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 g tipa Gepard, te pozovite njegovu metodu lanicu Opasnost.

17. Definirajte klasu KlasaX sa sljedeim lanicama:


niz tipa int veliine 100 elemenata
arr
indeks koji e vraati i postavljati pojedini lan niza arr.

Definirajte objekt x tipa KlasaX, te koristei indekse dodijelite nizu arr prvih 100 brojeva i
ispiite 50. lan niza.

18. Definirajte klasu KlasaY sa sljedeim lanicama:


niz tipa string veliine 5 elemenata
arr
indeks koji e vraati i postavljati pojedini lan niza arr.

Definirajte objekt y tipa KlasaY, te koristei indekse dodijelite nizu arr 5 proizvoljnih stringova te
ispiite etvrti lan niza.

19. Definirajte suelje IControl sa sljedeim lanicama:


metode
void Metoda1()
void Metoda2()
Definirajte klase RadioButton i CheckBox koje nasljeuju suelje IControl. U definiciji
naslijeenih metoda samo ispiite naziv metode.

Definirajte dva objekta x i y tipova RadioButton i CheckBox.

20. Definirajte suelje IControl sa sljedeim lanicama:


metoda
void Metoda()
svojstvo tipa int
Brojac
Definirajte klase ListBox i ComboBox koje nasljeuju suelje IControl. U definiciji naslijeene
metode samo ispiite naziv metode.

Definirajte dva objekta x i y tipova ListBox i ComboBox.

21. Definirajte klasu KlasaA sa sljedeim lanicama:


metode
void PrintNumber(int)
void PrintNumber(double)
void PrintNumber(int, double)

Metode definirajte tako da ispiu vrijednosti proslijeenih argumenata.

89
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Definirajte objekt tipa KlasaA, te pozovite svaku od preoptereenih metoda s proizvoljno


odabranim argumentima.

22. Definirajte klasu KlasaB sa sljedeim lanicama:


metoda
string BezPrvogIZadnjeg(string) koja e vratiti proslijeeni string bez prvog i
zadnjeg znaka.

Definirajte objekt tipa KlasaB, zatraite od korisnika da unese niz znakova, te taj niz znakova
proslijedite metodi BezPrvogIZadnjeg, a povratnu vrijednost ispiite. Osigurajte pritom da se
metoda pozove samo ako je korisnik unio vie od 2 znaka.

23. Definirajte klasu KlasaC sa sljedeim lanicama:


metoda
int Zbroj(int []) koja e vratiti zbroj svih lanova proslijeenog niza.
double Prosjek(int []) koja e vratiti prosjenu vrijednost svih lanova
proslijeenog niza.

Definirajte objekt tipa KlasaC, zatraite od korisnika da unese 5 cijelih brojeva koje spremite u
niz tipa int veliine 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.

24. Definirajte klasu KlasaD sa sljedeim lanicama:


metode
bool Suprotno(bool)
int Suprotno(int)

Metode definirajte tako da vrate suprotne vrijednosti proslijeenih argumenata


(npr. True -> False i 100 -> -100)

Definirajte objekt tipa KlasaD, te pozovite metode Suprotno za argumente true i 50. Povratne
vrijednosti iz metoda spremite u lokalne varijable, te na kraju ispiite njihove vrijednosti.

25. Definirajte klasu KlasaE sa sljedeim lanicama:


metoda
void Plus100(ref int) koja e uveati vrijednost proslijeene varijable za 100.

Definirajte objekt tipa KlasaE, deklarirajte i definirajte s proizvoljnom vrijednosti lokalnu varijablu
tipa int, proslijedite je metodi Plus100, te na kraju ispiite vrijednost te lokalne varijable.

26. Definirajte klasu KlasaF sa sljedeim lanicama:


metoda
void f200(out double) koja e proslijeenoj varijabli dodijeliti vrijednost 200

Definirajte objekt tipa KlasaF, deklarirajte lokalnu varijablu tipa double, proslijedite je metodi
f200, te na kraju ispiite vrijednost te lokalne varijable.

90
Visoka poslovna kola MINERVA
Studij za informatiki menadment

27. Definirajte klasu KlasaG sa sljedeim lanicama:


metode
void Plus10(ref int) koja e uveati vrijednost proslijeene varijable za 10
void f50(out int) koja e proslijeenoj varijabli dodijeliti vrijednost 50

Definirajte objekt tipa KlasaG, deklarirajte i definirajte s proizvoljnom vrijednosti lokalnu


varijablu tipa int, proslijedite je najprije metodi Plus10, a nakon toga i metodi f50, te na kraju
ispiite vrijednost te lokalne varijable.

28. Definirajte klasu Sort sa sljedeim lanicama:


metoda
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu

Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima
elemenata, te uz pomoe metode QuickSort sortirajte niz tako da prvi i zadnji lan niza bez
obzira na njihovu vrijednost ostanu na svojim mjestima.
Ispiite sve elemente niza.

29. Definirajte klasu Sort sa sljedeim lanicama:


statika metoda
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u silaznom redoslijedu.

Deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima elemenata, te uz pomo
metode QuickSort sortirajte niz.
Ispiite sve elemente niza.

30. Definirajte klasu Sort sa sljedeim lanicama:


metoda
void QuickSort(string[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu

Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa string s proizvoljnim
vrijednostima elemenata, te uz pomoe metode QuickSort sortirajte niz.
Ispiite sve elemente niza.

31. Definirajte klasu Search sa sljedeim lanicama:


metoda
int BinarySearch(int[] arr, int x) koja e koristei algoritam binarnog
pretraivanja vratiti indeks varijable x u nizu arr, a ako je ne pronae vratit e -1.

Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa int u kojem e biti prvih 100
neparnih brojeva, te uz pomoe metode BinarySearch pronaite indeks lana s vrijednosti 75.

32. Definirajte klasu Search sa sljedeim lanicama:

91
Visoka poslovna kola MINERVA
Studij za informatiki menadment

metoda
int BinarySearch(string[] arr, string str) koja e koristei algoritam
binarnog pretraivanja vratiti indeks stringa str u nizu arr, a ako ga ne pronae vratit e -1.

Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa string veliine 5 lanova s
proizvoljnim vrijednostima, te uz pomoe metode BinarySearch pronaite indeks treeg lana
niza.

33. Definirajte klasu SortAndSearch sa sljedeim lanicama:


statike metode
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu
int BinarySearch(int[] arr, int x) koja e koristei algoritam binarnog
pretraivanja vratiti indeks varijable x u nizu arr, a ako je ne pronae vratit e -1.

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 pronaite
indeks lana s vrijednosti 10.

92
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Definirajte klasu Zrakoplov sa sljedeim lanicama:
privatne varijable:
Naziv, SnagaMotora, DosegLeta
konstruktor:
Zrakoplov(string, double, int)

Konstruktor treba definirati pripadajue varijable lanice s vrijednostima proslijeenih


argumenata.

Definirajte objekt x380 tipa Zrakoplov sa sljedeim podacima:


naziv Airbus, snaga motora 2000 kW, te doseg leta 6000 km.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Zrakoplov


{
private string Naziv;
private double SnagaMotora;
private int DosegLeta;

public Zrakoplov(string s, double d, int i)


{
Naziv = s;
SnagaMotora = d;
DosegLeta = i;
}
}

public class Test


{
public static void Main()
{
Zrakoplov x380 = new Zrakoplov("Airbus", 2000, 6000);
}
}

2. Definirajte klasu Fruit sa sljedeim lanicama:


privatne varijable:
Vrsta, Boja, JeLiSlatko
konstruktori:
Fruit(string)
Fruit(string, string, bool)
Konstruktori trebaju definirati pripadajue varijable lanice s vrijednostima proslijeenih
argumenata.

Definirajte sljedea tri objekta tipa Fruit: x, y i z koji e predstavljati sljedee voe:
Jagoda
Limun
Avokado
--------------------------------------------------------------------------------------------------------------------

93
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

public class Fruit


{
private string Vrsta;
private string Boja;
private bool JeLiSlatko;

public Fruit(string s)
{
Vrsta = s;
}

public Fruit(string s1, string s2, bool b)


{
Vrsta = s1;
Boja = s2;
JeLiSlatko = b;
}
}

public class Test


{
public static void Main()
{
Fruit x = new Fruit("Jagoda", "Crvena", true);
Fruit y = new Fruit("Limun", "uta", false);
Fruit z = new Fruit("Avokado");
}
}

3. Definirajte klasu Sport sa sljedeim lanicama:


privatne varijable:
Naziv, IgraLiSeLoptom, BrojIgraca,
konstruktori:
Sport(string)
Sport(string, bool)
Sport(string, bool, byte)
Konstruktor treba definirati pripadajue varijable lanice s vrijednostima proslijeenih
argumenata.

Definirajte sljedea tri objekta tipa Sport:


Nogomet
Vaterpolo
Curling
--------------------------------------------------------------------------------------------------------------------

using System;

public class Sport


{
private string Naziv;
private bool IgraLiSeLoptom;
private byte BrojIgraca;

94
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public Sport(string s)
{
Naziv = s;
}

public Sport(string s, bool b)


{
Naziv = s;
IgraLiSeLoptom = b;
}

public Sport(string s, bool b, byte n)


{
Naziv = s;
IgraLiSeLoptom = b;
BrojIgraca = n;
}
}

public class Test


{
public static void Main()
{
Sport x = new Sport("Nogomet", true, 11);
Sport y = new Sport("Vaterpolo", true);
Sport z = new Sport("Curling");
}
}

4. Definirajte klasu Neboder sa sljedeim lanicama:


privatne varijable:
visina, brojKatova
svojstva
Visina koje e vraati i definirati visinu nebodera.
BrojKatova koje e vraati i definirati broj katova.

Definirajte objekt Tower tipa Neboder s visinom od 200 m, postavite vrijednost broja katova na
100, poveajte visinu za 10 m, poveajte broj katova za 1, te ispiite kolika je prosjena visina
kata.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Neboder


{
private int visina;
private byte brojKatova;

public int Visina


{
get {return visina;}
set { visina = value; }
}

95
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public byte BrojKatova


{
get { return brojKatova; }
set { brojKatova = value; }
}
}

public class Test


{
public static void Main()
{
Neboder Tower = new Neboder();
Tower.Visina = 200;
Tower.BrojKatova = 100;
Tower.Visina += 10;
Tower.BrojKatova++;
Console.WriteLine((double)Tower.Visina / Tower.BrojKatova);
}
}

5. Definirajte klasu Vozilo sa sljedeim lanicama:


privatne varijable:
vrsta, maxBrzina i brojKotaca
svojstva
Vrsta koje e vraati i definirati naziv vrste vozila
MaxBrzina koje e vraati i definirati maksimalnu brzinu vozila
BrojTockova koje e vraati i definirati broj kotaa koje vozilo ima

Definirajte dva objekta tipa Vozilo sa sljedeim podacima:


o vrsta Motocikl, broj kotaa 2, a maksimalnu brzinu zatraite od korisnika.
o vrsta Automobil, broj kotaa 4, maksimalna brzina 30 % vea od one koju ima motocikl.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Vozilo


{
private string vrsta;
private double maxBrzina;
private byte brojKotaca;

public string Vrsta


{
get {return vrsta;}
set { vrsta = value; }
}

public double MaxBrzina


{
get { return maxBrzina; }
set { maxBrzina = value; }
}

public byte BrojKotaca


{

96
Visoka poslovna kola MINERVA
Studij za informatiki menadment

get { return brojKotaca; }


set { brojKotaca = value; }
}
}

public class Test


{
public static void Main()
{
Console.WriteLine("Upiite maksimalnu brzinu motocikla:");
string s = Console.ReadLine();

Vozilo Motocikl = new Vozilo();


Motocikl.BrojKotaca = 2;
Motocikl.MaxBrzina = Convert.ToInt32(s);

Vozilo Automobil = new Vozilo();


Automobil.BrojKotaca = 4;
Automobil.MaxBrzina = Motocikl.MaxBrzina * 1.3;
}
}

6. Definirajte klasu PrvaKlasa sa sljedeim lanicama:


privatna statika varijabla tipa int
counter
konstruktor
PrvaKlasa() koji e poveati vrijednost statike varijable za jedan
svojstvo
Counter koje e vraati vrijednost statike varijable (read only)

Definirajte tri objekta tipa PrvaKlasa: x, y i z, te nakon toga ispiite vrijednost statike varijable
counter.
--------------------------------------------------------------------------------------------------------------------

using System;

public class PrvaKlasa


{
private static int counter;

public PrvaKlasa()
{
counter++;
}

public int Counter


{
get { return counter; }
}
}

public class Test


{
public static void Main()
{

97
Visoka poslovna kola MINERVA
Studij za informatiki menadment

PrvaKlasa x = new PrvaKlasa();


PrvaKlasa y = new PrvaKlasa();
PrvaKlasa z = new PrvaKlasa();

Console.WriteLine(z.Counter);
}
}

7. Definirajte klasu KlasaX sa sljedeim lanicama:


privatna statika varijabla tipa int
broj
statiko svojstvo
Broj koje e vraati i definirati vrijednost statike varijable

Dodijelite vrijednost 10 varijabli broj, te ispiite njenu vrijednost.


--------------------------------------------------------------------------------------------------------------------

using System;

public class KlasaX


{
private static int broj;

public static int Broj


{
get { return broj; }
set { broj = value; }
}
}

public class Test


{
public static void Main()
{
KlasaX.Broj = 10;
Console.WriteLine(KlasaX.Broj);
}
}

8. Definirajte klasu Film sa sljedeim lanicama:


varijable
VrijemeTrajanja
Reziser

Definirajte klase Horor, Drama i Komedija izvedene iz klase Film.


Definirajte tri objekta x, y i z tipa Horor, Drama i Komedija.
--------------------------------------------------------------------------------------------------------------------

using System;

class Film
{
private int VrijemeTrajanja;

98
Visoka poslovna kola MINERVA
Studij za informatiki menadment

private string Reziser;


}

class Horor : Film


{
}

class Drama : Film


{
}

class Komedija : Film


{
}

class Test
{
public static void Main()
{
Horor x = new Horor();
Drama y = new Drama();
Komedija z = new Komedija();
}
}

9. Definirajte klasu Biljka, te definirajte od nje izvedenu klasu Stablo sa sljedeim lanicama:
varijabla tipa bool
opadajuListovi
svojstvo
OpadajuListovi
konstruktor
Stablo(bool) koji e dodijeliti vrijednost proslijeenog argumenta varijabli
opadajuListovi

Definirajte klasu Cvijet izvedenu iz klase Biljka.


Definirajte klase Bijelogoricno i Crnogoricno izvedene iz klase Stablo. Klasama definirajte
odgovarajue konstruktore.

Definirajte dva objekta Hrast i Bor tipova Bijelogoricno i Crnogoricno, te ispiite vrijednosti
njihovih lanica opadajuListovi.
--------------------------------------------------------------------------------------------------------------------

using System;

class Biljka
{
}

class Stablo : Biljka


{
private bool opadajuListovi;

public bool OpadajuListovi


{

99
Visoka poslovna kola MINERVA
Studij za informatiki menadment

get { return opadajuListovi; }


set { opadajuListovi = value; }
}

public Stablo(bool b)
{
OpadajuListovi = b;
}
}

class Cvijet : Biljka


{
}

class Bjelogoricno : Stablo


{
public Bjelogoricno() : base(true)
{
}
}

class Crnogoricno : Stablo


{
public Crnogoricno() : base(false)
{
}
}

class Test
{
public static void Main()
{
Bjelogoricno Hrast = new Bjelogoricno();
Crnogoricno Bor = new Crnogoricno();
Console.WriteLine("{0} {1}",
Hrast.OpadajuListovi, Bor.OpadajuListovi);
}
}

10. Definirajte klasu GeometrijskiLik sa sljedeim lanicama:


varijabla tipa int
BrojStranica
niz tipa double veliine 10
Stranice
metode
UcitajStranice() koja e uitati od korisnika stranice geometrijskog lika
Opseg () koja e vratiti opseg geometrijskog lika

Definirajte klase Trokut i Cetverokut izvedene iz klase GeometrijskiLik, te im definirajte


konstruktore u kojima ete varijabli BrojStranica dodijeliti odgovarajuu vrijednost.

Definirajte dva objekta tipa Trokut i Cetverokut, uitajte duljine stranica, te izraunajte
opsege.
--------------------------------------------------------------------------------------------------------------------

100
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

class GeometrijskiLik
{
protected byte BrojStranica;
protected double [] Stranice = new double [10];

public void UcitajStranice()


{
for(int i = 0; i < BrojStranica; i++)
{
Console.WriteLine("Upiite duljinu {0}. stranice", i + 1);
string s = Console.ReadLine();
Stranice[i] = Convert.ToDouble(s);
}
}

public double Opseg()


{
double opseg = 0;
for(int i = 0; i < BrojStranica; i++)
opseg += Stranice[i];
return opseg;
}
}

class Trokut : GeometrijskiLik


{
public Trokut()
{
BrojStranica = 3;
}
}

class Cetverokut : GeometrijskiLik


{
public Cetverokut()
{
BrojStranica = 4;
}
}

class Test
{
public static void Main()
{
Trokut t = new Trokut();
t.UcitajStranice();
Console.WriteLine("Opseg trokuta je {0}", t.Opseg());

Cetverokut c = new Cetverokut();


c.UcitajStranice();
Console.WriteLine("Opseg etverokuta je {0}", c.Opseg());
}
}

101
Visoka poslovna kola MINERVA
Studij za informatiki menadment

11. Definirajte klasu Vozilo sa sljedeim lanicama:


varijable
JeLiLeti
JeLiPlovi
metoda
KudaVozi() koja e ispisati vrijednost dviju varijabli lanica

Definirajte klase Brod i Zrakoplov izvedene iz klase Vozilo, te im definirajte konstruktore u


kojima ete varijablama JeLiLeti i JeLiPlovi dodijeliti odgovarajuu vrijednost.

Definirajte dva objekta tipa Brod i Zrakoplov, te ispiite vrijednosti varijabli JeLiLeti i
JeLiPlovi.
--------------------------------------------------------------------------------------------------------------------

using System;

class Vozilo
{
protected bool JeLiLeti;
protected bool JeLiPlovi;

public void KudaVozi()


{
Console.WriteLine("{0} {1}", JeLiLeti, JeLiPlovi);
}
}

class Brod : Vozilo


{
public Brod()
{
JeLiLeti = false;
JeLiPlovi = true;
}
}

class Zrakoplov : Vozilo


{
public Zrakoplov()
{
JeLiLeti = true;
JeLiPlovi = false;
}
}

class Test
{
public static void Main()
{
Brod t = new Brod();
t.KudaVozi();

Zrakoplov c = new Zrakoplov();


c.KudaVozi();
}

102
Visoka poslovna kola MINERVA
Studij za informatiki menadment

12. Definirajte klasu Brojevi sa sljedeim lanicama:


varijabla tipa double
broj
svojstvo
Broj
virtualna metoda
double ApsVrijednost() koja e vraati 0

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 vraa apsolutnu vrijednost varijable broj.

Definirajte tri objekta x, y, i z tipa Pozitivni, Negativni i Decimalni, dodijelite im vrijednosti


varijable broj 100, -100 i 100.45, te ispiite njihove apsolutne vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

class Brojevi
{
private double broj;

public double Broj


{
get { return broj; }
set { broj = value; }
}

public virtual double ApsVrijednost()


{
return 0;
}
}

class Cijeli : Brojevi


{
public override double ApsVrijednost()
{
return Broj < 0 ? Broj : Broj;
}
}

class Pozitivni : Cijeli


{
public override double ApsVrijednost()
{
return Broj;
}
}

class Negativni : Cijeli


{

103
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public override double ApsVrijednost()


{
return Broj * -1;
}
}

class Decimalni : Brojevi


{
public override double ApsVrijednost()
{
return Broj < 0 ? Broj : Broj;
}
}

class Test
{
public static void Main()
{
Pozitivni x = new Pozitivni();
x.Broj = 100;
Console.WriteLine(x.ApsVrijednost());

Negativni y = new Negativni();


y.Broj = -100;
Console.WriteLine(y.ApsVrijednost());

Decimalni z = new Decimalni();


z.Broj = 100.45;
Console.WriteLine(z.ApsVrijednost());
}
}

13. Definirajte klasu ProgramskiJezik sa sljedeim lanicama:


varijabla tipa double
postotak
svojstvo
Postotak

Definirajte klase Proceduralni, Objektni i Funkcionalni izvedene od klase ProgramskiJezik.

Definirajte tri objekta x, y i z tipova Proceduralni, Objektni i Funkcionalni, te zatraite od


korisnika da unese vrijednosti postotka za pojedini objekt.
Ako je zbroj postotaka razliit od 100 ispiite poruku o neispravnom unosu podataka, a ako je
zbroj jednak 100 izraunajte i ispiite koja vrsta programskih jezika je najzastupljenija.
--------------------------------------------------------------------------------------------------------------------

using System;

class ProgramskiJezik
{
private double postotak;

public double Postotak


{
get { return postotak; }

104
Visoka poslovna kola MINERVA
Studij za informatiki menadment

set { postotak = value; }


}
}

class Proceduralni : ProgramskiJezik


{
}

class Objektni : ProgramskiJezik


{
}

class Funkcionalni : ProgramskiJezik


{
}

class Test
{
public static void Main()
{
double sum = 0;
Console.WriteLine("Upiite postotak:");
string s = Console.ReadLine();
Proceduralni x = new Proceduralni();
x.Postotak = Convert.ToDouble(s);
sum += x.Postotak;

Console.WriteLine("Upiite postotak:");
s = Console.ReadLine();
Objektni y = new Objektni();
y.Postotak = Convert.ToDouble(s);
sum += y.Postotak;

Console.WriteLine("Upiite postotak:");
s = Console.ReadLine();
Funkcionalni z = new Funkcionalni();
z.Postotak = Convert.ToDouble(s);
sum += z.Postotak;

if(sum != 100)
Console.WriteLine("Podaci nisu dobro uneeni");
else
{
if(x.Postotak > y.Postotak && x.Postotak > z.Postotak)
Console.WriteLine("Najzastupljeni su proceduralni
programski jezici");
else if(y.Postotak > z.Postotak)
Console.WriteLine("Najzastupljeni su objektni
programski jezici");
else
Console.WriteLine("Najzastupljeni su funkcionalni
programski jezici");
}
}
}

105
Visoka poslovna kola MINERVA
Studij za informatiki menadment

14. Definirajte klasu GeometrijskoTijelo sa sljedeim varijablama lanicama:


varijable tipa double
Volumen
Oplosje
statika varijabla tipa int
BrojacTijela

Definirajte klase Kugla i Kvadar izvedene iz klase GeometrijskoTijelo.


Definirajte klasu Kocka izvedenu iz klase Kvadar.

Definirajte objekte x, y i z tipova Kugla, Kvadar i Kocka i poveajte vrijednost varijable


BrojacTijela za 1 sa svakom definicijom objekta.
--------------------------------------------------------------------------------------------------------------------

using System;

class GeometrijskoTijelo
{
public static int BrojacTijela;
private double Volumen;
private double Oplosje;
}

class Kugla : GeometrijskoTijelo


{
}

class Kvadar : GeometrijskoTijelo


{
}

class Kocka : Kvadar


{
}

class Test
{
public static void Main()
{
Kugla x = new Kugla();
Kugla.BrojacTijela++;
Kvadar y = new Kvadar();
Kvadar.BrojacTijela++;
Kocka z = new Kocka();
Kocka.BrojacTijela++;
Console.WriteLine(GeometrijskoTijelo.BrojacTijela);
}
}

15. Definirajte klasu NebeskoTijelo sa sljedeim varijablama lanicama:


varijable tipa double
BrzinaOkoOsi
BrzinaOkoSunca

106
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Definirajte klase Planet i Satelit izvedene iz klase NebeskoTijelo, te im definirajte sljedee


konstruktore:
Planet(double, double)
Satelit(double, double)
koji e dodijeliti vrijednosti proslijeenih argumenata naslijeenim varijablama lanicama

Definirajte dva objekta Zemlja i Mjesec tipova Planet i Satelit.


--------------------------------------------------------------------------------------------------------------------

using System;

class NebeskoTijelo
{
protected double BrzinaOkoOsi;
protected double BrzinaOkoSunca;
}

class Planet : NebeskoTijelo


{
public Planet(double d1, double d2)
{
BrzinaOkoOsi = d1;
BrzinaOkoSunca = d2;
}
}

class Satelit : NebeskoTijelo


{
public Satelit(double d1, double d2)
{
BrzinaOkoOsi = d1;
BrzinaOkoSunca = d2;
}
}

class Test
{
public static void Main()
{
Planet Zemlja = new Planet(1000, 2000);
Satelit Mjesec = new Satelit(100, 200);
}
}

16. Definirajte klasu Cat sa sljedeim lanicama:


varijabla tipa bool
opasna
svojstvo
Opasna
virtualna metoda
void Opasnost() koja e postaviti vrijednost varijable opasna na false

107
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Definirajte klasu Gepard izvedenu iz klase Cat, te predefinirajte metodu Opasnost tako da
postavi vrijednost varijable opasna na true.

Definirajte objekt g tipa Gepard, te pozovite njegovu metodu lanicu Opasnost.


--------------------------------------------------------------------------------------------------------------------

using System;

class Cat
{
private bool opasna;

public bool Opasna


{
get { return opasna; }
set { opasna = value; }
}

public virtual void Opasnost()


{
Opasna = false;
}
}

class Gepard : Cat


{
public override void Opasnost()
{
Opasna = true;
}
}

class Test
{
static void Main()
{
Gepard g = new Gepard();
g.Opasnost();
}
}

17. Definirajte klasu KlasaX sa sljedeim lanicama:


niz tipa int veliine 100 elemenata
arr
indeks koji e vraati i postavljati pojedini lan niza arr.

Definirajte objekt x tipa KlasaX, te koristei indekse dodijelite nizu arr prvih 100 brojeva i
ispiite 50. lan niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaX
{

108
Visoka poslovna kola MINERVA
Studij za informatiki menadment

private int[] arr = new int[100];

public int this[int ind]


{
get
{
return (ind >= 0 || ind <= 100) ? arr[ind] : 0;
}
set
{
if (ind >= 0 || ind <= 100)
arr[ind] = value;
}
}
}

public class Test


{
public static void Main()
{
KlasaX x = new KlasaX();
for(int i = 0; i < 100; i++)
x[i] = i + 1;

Console.WriteLine(x[50]);
}
}

18. Definirajte klasu KlasaY sa sljedeim lanicama:


niz tipa string veliine 5 elemenata
arr
indeks koji e vraati i postavljati pojedini lan niza arr.

Definirajte objekt y tipa KlasaY, te koristei indekse dodijelite nizu arr 5 proizvoljnih stringova te
ispiite etvrti lan niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaY
{
private string[] arr = new string[5];

public string this[int ind]


{
get
{
return (ind >= 0 || ind <= 5) ? arr[ind] : null;
}
set
{
if (ind >= 0 || ind <= 5)
arr[ind] = value;
}
}

109
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public class Test


{
public static void Main()
{
KlasaY y = new KlasaY();
y[0] = "Jedan";
y[1] = "Dva";
y[2] = "Tri";
y[3] = "etiri";
y[4] = "Pet";
Console.WriteLine(y[3]);
}
}

19. Definirajte suelje IControl sa sljedeim lanicama:


metode
void Metoda1()
void Metoda2()
Definirajte klase RadioButton i CheckBox koje nasljeuju suelje IControl. U definiciji
naslijeenih metoda samo ispiite naziv metode.

Definirajte dva objekta x i y tipova RadioButton i CheckBox.


--------------------------------------------------------------------------------------------------------------------

using System;

interface IControl
{
void Metoda1();
void Metoda2();
}

class RadioButton : IControl


{
public void Metoda1()
{
Console.WriteLine("Metoda1");
}

public void Metoda2()


{
Console.WriteLine("Metoda2");
}
}

class CheckBox : IControl


{
public void Metoda1()
{
Console.WriteLine("Metoda1");
}

public void Metoda2()

110
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
Console.WriteLine("Metoda2");
}
}

class Test
{
public static void Main()
{
RadioButton x = new RadioButton();
CheckBox y = new CheckBox();
}
}

20. Definirajte suelje IControl sa sljedeim lanicama:


metoda
void Metoda()
svojstvo tipa int
Brojac
Definirajte klase ListBox i ComboBox koje nasljeuju suelje IControl. U definiciji naslijeene
metode samo ispiite naziv metode.

Definirajte dva objekta x i y tipova ListBox i ComboBox.


--------------------------------------------------------------------------------------------------------------------

using System;

interface IControl
{
void Metoda();
int Brojac { get; set; }
}

class ListBox : IControl


{
private int brojac;

public void Metoda()


{
Console.WriteLine("Metoda");
}

public int Brojac


{
get { return brojac; }
set { brojac = value; }
}
}

class ComboBox : IControl


{
private int brojac;

public void Metoda()


{

111
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Metoda");
}

public int Brojac


{
get { return brojac; }
set { brojac = value; }
}
}

class Test
{
public static void Main()
{
ListBox x = new ListBox();
ComboBox y = new ComboBox();
}
}

21. Definirajte klasu KlasaA sa sljedeim lanicama:


metode
void PrintNumber(int)
void PrintNumber(double)
void PrintNumber(int, double)

Metode definirajte tako da ispiu vrijednosti proslijeenih argumenata.

Definirajte objekt tipa KlasaA, te pozovite svaku od preoptereenih metoda s proizvoljno


odabranim argumentima.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaA
{
public void PrintNumber(int i)
{
Console.WriteLine(i);
}

public void PrintNumber(double d)


{
Console.WriteLine(d);
}

public void PrintNumber(int i, double d)


{
Console.WriteLine("{0}, {1}", i, d);
}
}

class Test
{
public static void Main()
{

112
Visoka poslovna kola MINERVA
Studij za informatiki menadment

KlasaA x = new KlasaA();


x.PrintNumber(100);
x.PrintNumber(100.45);
x.PrintNumber(10, 20.45);
}
}

22. Definirajte klasu KlasaB sa sljedeim lanicama:


metoda
string BezPrvogIZadnjeg(string) koja e vratiti proslijeeni string bez prvog i
zadnjeg znaka.

Definirajte objekt tipa KlasaB, zatraite od korisnika da unese niz znakova, te taj niz znakova
proslijedite metodi BezPrvogIZadnjeg, a povratnu vrijednost ispiite. Osigurajte pritom da se
metoda pozove samo ako je korisnik unio vie od 2 znaka.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaB
{
public string BezPrvogIZadnjeg(string s)
{
return s.Substring(1, s.Length - 2);
}
}

class Test
{
public static void Main()
{
Console.WriteLine("Unesite niz znakova:");
string s = Console.ReadLine();
KlasaB x = new KlasaB();
if(s.Length > 2)
s = x.BezPrvogIZadnjeg(s);
Console.WriteLine(s);
}
}

23. Definirajte klasu KlasaC sa sljedeim lanicama:


metoda
int Zbroj(int []) koja e vratiti zbroj svih lanova proslijeenog niza.
double Prosjek(int []) koja e vratiti prosjenu vrijednost svih lanova
proslijeenog niza.

Definirajte objekt tipa KlasaC, zatraite od korisnika da unese 5 cijelih brojeva koje spremite u
niz tipa int veliine 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.
--------------------------------------------------------------------------------------------------------------------

using System;

113
Visoka poslovna kola MINERVA
Studij za informatiki menadment

class KlasaC
{
public int Zbroj(int [] arr)
{
int sum = 0;
for (int i = 0; i < arr.Length;i++ )
sum += arr[i];
return sum;
}

public double Prosjek(int[] arr)


{
int sum = 0;
for (int i = 0; i < arr.Length; i++)
sum += arr[i];
return (double)sum / arr.Length ;
}
}

class Test
{
public static void Main()
{
int[] arr = new int[5];

Console.WriteLine("Upiite 5 cijelih brojeva:");


for(int i = 0;i<5;i++)
{
string s = Console.ReadLine();
arr[i] = Convert.ToInt32(s);
}

KlasaC x = new KlasaC();


int zbroj = x.Zbroj(arr);
Console.WriteLine(zbroj);
double prosjek = x.Prosjek(arr);
Console.WriteLine(prosjek);
}
}

24. Definirajte klasu KlasaD sa sljedeim lanicama:


metode
bool Suprotno(bool)
int Suprotno(int)

Metode definirajte tako da vrate suprotne vrijednosti proslijeenih argumenata


(npr. True -> False i 100 -> -100)

Definirajte objekt tipa KlasaD, te pozovite metode Suprotno za argumente true i 50. Povratne
vrijednosti iz metoda spremite u lokalne varijable, te na kraju ispiite njihove vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaD

114
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
public bool Suprotno(bool x)
{
return !x;
}

public int Suprotno(int x)


{
return x * -1;
}
}

class Test
{
public static void Main()
{
KlasaD x = new KlasaD();
bool b = x.Suprotno(true);
Console.WriteLine(b);
int i = x.Suprotno(50);
Console.WriteLine(i);
}
}

25. Definirajte klasu KlasaE sa sljedeim lanicama:


metoda
void Plus100(ref int) koja e uveati vrijednost proslijeene varijable za 100.

Definirajte objekt tipa KlasaE, deklarirajte i definirajte s proizvoljnom vrijednosti lokalnu varijablu
tipa int, proslijedite je metodi Plus100, te na kraju ispiite vrijednost te lokalne varijable.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaE
{
public void Plus100(ref int i)
{
i += 100;
return;
}
}

class Test
{
public static void Main()
{
int i = 100;
KlasaE x = new KlasaE();
x.Plus100(ref i);
Console.WriteLine(i);
}
}

115
Visoka poslovna kola MINERVA
Studij za informatiki menadment

26. Definirajte klasu KlasaF sa sljedeim lanicama:


metoda
void f200(out double) koja e proslijeenoj varijabli dodijeliti vrijednost 200

Definirajte objekt tipa KlasaF, deklarirajte lokalnu varijablu tipa double, proslijedite je metodi
f200, te na kraju ispiite vrijednost te lokalne varijable.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaF
{
public void f200(out double d)
{
d = 200;
return;
}
}

class Test
{
public static void Main()
{
double d;
KlasaF x = new KlasaF();
x.f200(out d);
Console.WriteLine(d);
}
}

27. Definirajte klasu KlasaG sa sljedeim lanicama:


metode
void Plus10(ref int) koja e uveati vrijednost proslijeene varijable za 10
void f50(out int) koja e proslijeenoj varijabli dodijeliti vrijednost 50

Definirajte objekt tipa KlasaG, deklarirajte i definirajte s proizvoljnom vrijednosti lokalnu


varijablu tipa int, proslijedite je najprije metodi Plus10, a nakon toga i metodi f50, te na kraju
ispiite vrijednost te lokalne varijable.
--------------------------------------------------------------------------------------------------------------------

using System;

class KlasaG
{
public void Plus10(ref int i)
{
i += 10;
return;
}

public void f50(out int i)


{
i = 50;
return;

116
Visoka poslovna kola MINERVA
Studij za informatiki menadment

}
}

class Test
{
public static void Main()
{
int i = 5;
KlasaG x = new KlasaG();
x.Plus10(ref i);
x.f50(out i);
Console.WriteLine(i);
}
}

28. Definirajte klasu Sort sa sljedeim lanicama:


metoda
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu

Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima
elemenata, te uz pomoe metode QuickSort sortirajte niz tako da prvi i zadnji lan niza bez
obzira na njihovu vrijednost ostanu na svojim mjestima.
Ispiite sve elemente niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Sort
{
public void QuickSort(int[] arr, int left, int right)
{
int i = left, j = right;
int x = arr[(left + right) / 2];

do
{
while(arr[i] < x && i < right)
i++;
while(arr[j] > x && j > left)
j--;

if(i <= j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
} while(i <= j);

if(left < j)
QuickSort(arr, left, j);
if(i < right)

117
Visoka poslovna kola MINERVA
Studij za informatiki menadment

QuickSort(arr, i, right);
}
}

class Test
{
public static void Main()
{
int [] arr = new int [] {3, 2, 4, 0, 5, 1, 6, 7, 9, 8};

Sort x = new Sort();


x.QuickSort(arr, 1, arr.Length - 2);

for(int i = 0; i < arr.Length; i++)


Console.WriteLine(arr[i]);
}
}

29. Definirajte klasu Sort sa sljedeim lanicama:


statika metoda
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u silaznom redoslijedu.

Deklarirajte i definirajte niz arr tipa int s proizvoljnim vrijednostima elemenata, te uz pomo
metode QuickSort sortirajte niz.
Ispiite sve elemente niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Sort
{
public static void QuickSort(int[] arr, int left, int right)
{
int i = left, j = right;
int x = arr[(left + right) / 2];

do
{
while (arr[i] > x && i < right)
i++;
while (arr[j] < x && j > left)
j--;

if (i <= j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
} while (i <= j);

118
Visoka poslovna kola MINERVA
Studij za informatiki menadment

if (left < j)
QuickSort(arr, left, j);
if (i < right)
QuickSort(arr, i, right);
}
}

class Test
{
public static void Main()
{
int[] arr = new int[] { 3, 2, 4, 0, 5, 1, 6, 7, 9, 8 };
Sort.QuickSort(arr, 0, arr.Length - 1);
for (int i = 0; i < arr.Length; i++)
Console.WriteLine(arr[i]);
}
}

30. Definirajte klasu Sort sa sljedeim lanicama:


metoda
void QuickSort(string[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu

Definirajte objekt tipa Sort, deklarirajte i definirajte niz arr tipa string s proizvoljnim
vrijednostima elemenata, te uz pomoe metode QuickSort sortirajte niz.
Ispiite sve elemente niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Sort
{
public void QuickSort(string[] arr, int left, int right)
{
int i = left, j = right;
string x = arr[(left + right) / 2];

do
{
while(arr[i].CompareTo(x) < 0 && i < right)
i++;
while(arr[j].CompareTo(x) > 0 && j > left)
j--;

if(i <= j)
{
string tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
} while(i <= j);

if(left < j)

119
Visoka poslovna kola MINERVA
Studij za informatiki menadment

QuickSort(arr, left, j);


if(i < right)
QuickSort(arr, i, right);
}
}

class Test
{
public static void Main()
{
string[] arr = new string[] {
"jedan", "dva", "tri", "etiri", "pet" };

Sort x = new Sort();


x.QuickSort(arr, 0, arr.Length - 1);

for(int i = 0; i < arr.Length; i++)


Console.WriteLine(arr[i]);
}
}

31. Definirajte klasu Search sa sljedeim lanicama:


metoda
int BinarySearch(int[] arr, int x) koja e koristei algoritam binarnog
pretraivanja vratiti indeks varijable x u nizu arr, a ako je ne pronae vratit e -1.

Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa int u kojem e biti prvih 100
neparnih brojeva, te uz pomoe metode BinarySearch pronaite indeks lana s vrijednosti 75.
--------------------------------------------------------------------------------------------------------------------

using System;

class Search
{
public int BinarySearch(int[] arr, int x)
{
int low = 0, high = arr.Length - 1, middle;

while(low <= high)


{
middle = (low + high) / 2;
if(x > arr[middle])
low = middle + 1;
else if(x < arr[middle])
high = middle - 1;
else
return middle;
}
return -1;

}
}

class Test
{

120
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public static void Main()


{
int[] arr = new int[100];
int y = 1;
for(int i = 0; i < 100; i++)
{
arr[i] = y;
y += 2;
}

Search x = new Search();


Console.WriteLine(x.BinarySearch(arr, 75));
}
}

32. Definirajte klasu Search sa sljedeim lanicama:


metoda
int BinarySearch(string[] arr, string str) koja e koristei algoritam
binarnog pretraivanja vratiti indeks stringa str u nizu arr, a ako ga ne pronae vratit e -1.

Definirajte objekt tipa Search, deklarirajte i definirajte niz arr tipa string veliine 5 lanova s
proizvoljnim vrijednostima, te uz pomoe metode BinarySearch pronaite indeks treeg lana
niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Search
{
public int BinarySearch(string[] arr, string str)
{
int low = 0, high = arr.Length - 1, middle;

while(low <= high)


{
middle = (low + high) / 2;
if(str.CompareTo(arr[middle]) > 0)
low = middle + 1;
else if(str.CompareTo(arr[middle]) < 0)
high = middle - 1;
else
return middle;
}
return -1;

}
}

class Test
{
public static void Main()
{
string[] arr = new string[] {
"etiri", "dva", "jedan", "pet", "tri" };

121
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Search x = new Search();


Console.WriteLine(x.BinarySearch(arr, "jedan"));
}
}

33. Definirajte klasu SortAndSearch sa sljedeim lanicama:


statike metode
void QuickSort(int[] arr, int left, int right) koja e sortirati
proslijeeni niz u uzlaznom redoslijedu
int BinarySearch(int[] arr, int x) koja e koristei algoritam binarnog
pretraivanja vratiti indeks varijable x u nizu arr, a ako je ne pronae vratit e -1.

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 pronaite
indeks lana s vrijednosti 10.
--------------------------------------------------------------------------------------------------------------------

using System;

class SortAndSearch
{
public static void QuickSort(int[] arr, int left, int right)
{
int i = left, j = right;
int x = arr[(left + right) / 2];

do
{
while (arr[i] < x && i < right)
i++;
while (arr[j] > x && j > left)
j--;

if(i <= j)
{
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
} while (i <= j);

if(left < j)
QuickSort(arr, left, j);
if(i < right)
QuickSort(arr, i, right);
}

public static int BinarySearch(int[] arr, int x)


{
int low = 0, high = arr.Length - 1, middle;

122
Visoka poslovna kola MINERVA
Studij za informatiki menadment

while(low <= high)


{
middle = (low + high) / 2;
if(x > arr[middle])
low = middle + 1;
else if (x < arr[middle])
high = middle - 1;
else
return middle;
}
return -1;

}
}

class Test
{
public static void Main()
{
int[] arr = new int[100];
for(int i = 100; i > 0; i--)
arr[100-i] = i;

SortAndSearch.QuickSort(arr, 0, arr.Length - 1);


Console.WriteLine(SortAndSearch.BinarySearch(arr, 10));
}
}

123
Visoka poslovna kola MINERVA
Studij za informatiki menadment

124
Visoka poslovna kola MINERVA
Studij za informatiki menadment

6. Zadaci iz primjene u ekonomiji

125
Visoka poslovna kola MINERVA
Studij za informatiki menadment

126
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Zadaci

1. Napiite program koji e zatraiti od korisnika da unese postotak PDV-a, te e izraunati


preraunatu stopu PDV-a.

2. Napiite program koji e zatraiti od korisnika da unese postotak za koji e se poveati cijena,
te e izraunati postotak za koji tu istu cijenu treba smanjiti tako da se vrati na staru vrijednost.

3. Napiite program koji e od korisnika uzeti jueranju i dananju vrijednost CROBEX-a te e


izraunati i ispisati porast ili pad izraen u postocima.
Osigurajte da korisnik mora unijeti pozitivne vrijednosti.

4. Napiite program koji e od korisnika uzeti prolotjednu i ovotjednu cijenu barela nafte te e
izraunati i ispisati porast ili pad izraen u postocima. Ispis treba biti jedan od sljedeih:
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. Napiite program koji e zatraiti od korisnika da unese iznos glavnice kredita, broj otplatnih
rata i godinju kamatnu stopu, te e na osnovu uneenih podataka izraunati i ispisati otplatni
plan.

6. Napiite program koji e zatraiti od korisnika da unese iznos mjesenog anuiteta, broj
otplatnih rata i godinju kamatnu stopu, te e na osnovu uneenih podataka izraunati iznos
glavnice kredita. Takoer, izraunajte ukupnu kamatu koja e biti otplaena.

7. Napiite program koji e za 20 godinji kredit iznosa glavnice 1.000.000 kn s kamatnom


stopom 8.5 % godinje izraunati nakon koliko e mjeseci ukupno otplaena kamata premaiti
iznos glavnice.

8. Napiite program koji e izraditi tablicu anuiteta za sve kredite u sljedeim 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. Napiite program koji e zatraiti od korisnika da unese iznos glavnice, broj otplatnih rata i
mjeseni anuitet, te e na osnovu uneenih podataka izraunati minimalni iznos potrebne kamate
za takav kredit. Kamatu izraunajte s tonou 0.01.

10. Napiite program koji e zatraiti od korisnika da unese iznos glavnice kredita u kunama,
broj otplatnih mjesenih rata, te staru i novi godinju kamatnu stopu, te e na osnovu uneenih
podataka izraunati i ispisati poveanje anuiteta u kunama i u postocima.

11. Napiite program u kojem ete definirati dva niza veliine 5 koji e predstavljati teajnu
listu:
prvi niz u kojem e biti ifre valuta AUD, JPY, GBP, USD i EUR
drugi niz u kojem e biti srednji teajevi tih valuta: 4.47, 4.43, 9.23, 4.68 i 7.25

Pod pretpostavkom da se kupovni i prodajni teaj razlikuju za 1 % od srednjeg, definirajte dva


niza u kojima e biti vrijednosti kupovnih i prodajnih teajeva za pojedinu valutu. Ispiite teajnu
listu u tablinom obliku.

127
Visoka poslovna kola MINERVA
Studij za informatiki menadment

12. Napiite program koji e definirati 3 niza tipa double veliine 5, te ih definirajte na sljedei
nain:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima mari za tih 5 artikala
Trei niz definirajte s iznosima poreza za tih 5 artikala

Definirajte etvrti niz tipa double veliine 5 u kojem e biti vrijednosti maloprodajnih cijeni tih 5
artikala, te ispiite njegove vrijednosti.

13. Napiite program koji e definirati 3 niza tipa double veliine 5, te ih definirajte na sljedei
nain:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima poreza za tih 5 artikala
Trei niz definirajte s maloprodajnim cijenama tih 5 artikala

Definirajte etvrti niz tipa double veliine 5 u kojem e biti vrijednosti mari za tih 5 artikala, te
ispiite njegove vrijednosti.

14. Cijena unce zlata prije 30 dana bila je 800 $. U iduih 20 dana cijena je rasla po 2 %, a u
sljedeih 10 dana cijena je padala po 3.5 %.
Napiite program koji e izraunati dananju cijenu unce zlata.

15. Cijena m3 prirodnog plina iznosi 0.45 $ i u iduim danima e rasti svaki dan po 8 %.
Napiite program koji e izraunati za koliko e dana cijena plina premaiti 1 $, te koliko bi je
nakon toga trebalo smanjiti da bude tono 1 $.

16. Napiite program u kojem ete definirati niz tipa int veliine 10, te ete ga definirati s
vrijednostima prvih 10 brojeva. Izraunajte standardnu devijaciju niza.

17. Napiite program u kojem ete definirati niz tipa double veliine 10, te ete ga definirati s
10 proizvoljnih brojeva. Izraunajte medijanu niza.

18. Napiite program u kojem ete zatraiti od korisnika da unese:


sadanju koliinu plave ribe u Jadranskom moru
postotak godinjeg prirasta
broj godina
te e izraunati koliinu plave ribe nakon uneenog broja godina.

19. Napiite program u koje ete zatraiti od korisnika da unese:


sadanji broj stanovnika
budui broj stanovnika
broj godina
te e izraunati potreban godinji prirast da bi se dostigao uneeni broj stanovnika.

20. Napiite program koji e izraunati postotak poveanja industrijske proizvodnje u dravi X
ako se godinji prirast u razdoblju od 10 godina svake godine poveava za 0.15 % (npr. ako je u
nekoj godini prirast 4.3 % u iduoj je 4.45 %).
Za vrijednost godinjeg prirasta u prvoj godini uzmite vrijednost 2.4 %.

128
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Rjeenja
1. Napiite program koji e zatraiti od korisnika da unese postotak PDV-a, te e izraunati
preraunatu stopu PDV-a.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite postotak PDV-a:");
string s = Console.ReadLine();
double PDV = Convert.ToDouble(s);

double d = PDV / (PDV + 100) * 100;


Console.WriteLine("Preraunata stopa iznosi {0} %", d);
}
}

2. Napiite program koji e zatraiti od korisnika da unese postotak za koji e se poveati cijena,
te e izraunati postotak za koji tu istu cijenu treba smanjiti tako da se vrati na staru vrijednost.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Upiite postotak poveanja cijene:");
string s = Console.ReadLine();
double d1 = Convert.ToDouble(s);

double d2 = d1 / (d1 + 100) * 100;


Console.WriteLine("Cijenu treba smanjiti za {0,0:f} %", d2);
}
}

3. Napiite program koji e od korisnika uzeti jueranju i dananju vrijednost CROBEX-a te e


izraunati i ispisati porast ili pad izraen u postocima.
Osigurajte da korisnik mora unijeti pozitivne vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string s;
double d1, d2;

129
Visoka poslovna kola MINERVA
Studij za informatiki menadment

do
{
Console.WriteLine("Upiite jueranji CROBEX:");
s = Console.ReadLine();
d1 = Convert.ToDouble(s);
} while(d1 < 0);

do
{
Console.WriteLine("Upiite dananji CROBEX:");
s = Console.ReadLine();
d2 = Convert.ToDouble(s);
} while(d2 < 0);

double d = (d2 - d1) / d1 * 100;


Console.WriteLine(d);
}
}

4. Napiite program koji e od korisnika uzeti prolotjednu i ovotjednu cijenu barela nafte te e
izraunati i ispisati porast ili pad izraen u postocima. Ispis treba biti jedan od sljedeih:
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.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string s;
double d1, d2;

do
{
Console.WriteLine("Prolotjedna cijena nafte:");
s = Console.ReadLine();
d1 = Convert.ToDouble(s);
} while(d1 >= 100);

do
{
Console.WriteLine("Ovotjedna cijena nafte:");
s = Console.ReadLine();
d2 = Convert.ToDouble(s);
} while (d2 >= 100);

double d = (d2 - d1) / d1 * 100;


if(d < 0)
d *= -1;

if(d2 > d1)

130
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine(
"Cijena nafte porasla je za {0} %", d);
else if(d2 < d1)
Console.WriteLine(
"Cijena nafte pala je za {0} %", d);
else
Console.WriteLine("Cijena nafte ostala je ista");
}
}

5. Napiite program koji e zatraiti od korisnika da unese iznos glavnice kredita, broj otplatnih
mjesenih rata i godinju kamatnu stopu, te e na osnovu uneenih podataka izraunati i ispisati
otplatni mjeseni plan.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite iznos glavnice:");
string s = Console.ReadLine();
double C = Convert.ToDouble(s);

Console.WriteLine("Unesite broj otplatnih rata:");


s = Console.ReadLine();
int n = Convert.ToInt32(s);

Console.WriteLine("Unesite iznos godinje kamatne stope:");


s = Console.ReadLine();
double p = Convert.ToDouble(s);
p /= 12;

double r = 1 + p / 100; // Proporcionalna metoda


//double r = Math.Pow((1 + p/100), 1.0/12); Komforna metoda
double a = C * Math.Pow(r, n) * (r - 1) / (Math.Pow(r, n) - 1);
Console.WriteLine("{0,10:d} {1,10:f} {2,10:f} {3,10:f}
{4,10:f}", 0, 0, 0, 0, C);

double I = 0, R = 0;
for (int i = 0; i < n; i++)
{
I = C * p / 100; // Kamate
R = a - I; // Rate
C -= R; // Glavnica
Console.WriteLine("{0,10:d} {1,10:f} {2,10:f} {3,10:f}
{4,10:f}", i + 1, a, I, R, C);
}
}
}

6. Napiite program koji e zatraiti od korisnika da unese iznos mjesenog anuiteta, broj
otplatnih rata i godinju kamatnu stopu, te e na osnovu uneenih podataka izraunati iznos
glavnice kredita. Takoer, izraunajte ukupnu kamatu koja e biti otplaena.
--------------------------------------------------------------------------------------------------------------------

131
Visoka poslovna kola MINERVA
Studij za informatiki menadment

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite iznos anuiteta:");
string s = Console.ReadLine();
double a = Convert.ToDouble(s);

Console.WriteLine("Unesite broj otplatnih rata:");


s = Console.ReadLine();
int n = Convert.ToInt32(s);

Console.WriteLine("Unesite iznos godinje kamatne stope:");


s = Console.ReadLine();
double p = Convert.ToDouble(s);
p /= 12;

double r = 1 + p / 100;
double C = a * (Math.Pow(r, n) - 1) /
(Math.Pow(r, n) * (r - 1));

Console.WriteLine("Glavnica iznosi {0,0:f}", C);


double I = 0, R = 0;
double TotalKamata = 0;
for (int i = 0; i < n; i++)
{
I = C * p / 100;
TotalKamata += I;
R = a - I;
C -= R;
}
Console.WriteLine("Ukupna kamata iznosi: {0,0:f}",
TotalKamata);
}
}

7. Napiite program koji e za 20 godinji kredit iznosa 1000000 kn s kamatnom stopom 8.5 %
godinje izraunati nakon koliko e mjeseci ukupno otplaena kamata premaiti iznos glavnice.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int n = 240;
double C = 1000000, p = 8.5;
p /= 12;
double r = 1 + p / 100;
double a = C * Math.Pow(r, n) * (r - 1) / (Math.Pow(r, n) - 1);

double I = 0, R = 0, C0 = C;

132
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double TotalKamata = 0;
bool flag = false;
for (int i = 0; i < n; i++)
{
I = C * p / 100;
TotalKamata += I;
R = a - I;
C -= R;
if(TotalKamata > C0)
{
Console.WriteLine("Nakon {0} mjeseci", i + 1);
flag = true;
break;
}
}
if (flag == false)
Console.WriteLine("Ukupno otplaena kamata nee premaiti
iznos glavnice");
}
}

8. Napiite program koji e izraditi tablicu anuiteta za sve kredite u sljedeim 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 %

using System;

class Test
{
public static void Main()
{
for (int C = 100000; C <= 1000000; C += 100000)
{
for (int n = 60; n <= 240; n += 12)
{
for (double p = 5; p <= 10; p += 0.1)
{
double r = 1 + p / 100 / 12;
double a = C * Math.Pow(r, n) * (r - 1) /
(Math.Pow(r, n) - 1);
Console.WriteLine("{0,10:d} {1,4:d} {2,5:f}
{3,10:f}", C, n / 12, p, a);
}
}
}
}
}

9. Napiite program koji e zatraiti od korisnika da unese iznos glavnice, broj otplatnih rata i
mjeseni anuitet, te e na osnovu uneenih podataka izraunati minimalni iznos potrebne kamate
za takav kredit. Kamatu izraunajte s tonou 0.01.
--------------------------------------------------------------------------------------------------------------------

using System;

133
Visoka poslovna kola MINERVA
Studij za informatiki menadment

class Test
{
public static void Main()
{
Console.WriteLine("Unesite iznos glavnice:");
string s = Console.ReadLine();
double C = Convert.ToDouble(s);

Console.WriteLine("Unesite broj otplatnih rata:");


s = Console.ReadLine();
int n = Convert.ToInt32(s);

Console.WriteLine("Unesite iznos anuiteta:");


s = Console.ReadLine();
double a = Convert.ToDouble(s);

double d;
for(d = 0.1; d < 10; d += 0.01) // Bez formule, iteracijom
{ // se dolazi do rjeenja
double r = 1 + d / 100 / 12;
if(C * Math.Pow(r, n) * (r - 1) / (Math.Pow(r, n) - 1) >= a)
break; // Premaen iznos uneenog anuiteta
}
Console.WriteLine("{0,0:f}", d);
}
}

10. Napiite program koji e zatraiti od korisnika da unese iznos glavnice kredita u kunama,
broj otplatnih mjesenih rata, te staru i novi godinju kamatnu stopu, te e na osnovu uneenih
podataka izraunati i ispisati poveanje anuiteta u kunama i u postocima.

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite iznos glavnice u kunama:");
string s = Console.ReadLine();
double C = Convert.ToDouble(s);

Console.WriteLine("Unesite broj otplatnih rata:");


s = Console.ReadLine();
int n = Convert.ToInt32(s);

Console.WriteLine("Unesite staru godinju kamatnu stopu:");


s = Console.ReadLine();
double p = Convert.ToDouble(s);
p /= 12;
double r = 1 + p / 100;
double a1 = C * Math.Pow(r, n)*(r - 1) / (Math.Pow(r, n)-1);

Console.WriteLine("Unesite novu godinju kamatnu stopu:");


s = Console.ReadLine();
p = Convert.ToDouble(s);

134
Visoka poslovna kola MINERVA
Studij za informatiki menadment

p /= 12;
r = 1 + p / 100;
double a2 = C * Math.Pow(r, n)*(r - 1) / (Math.Pow(r, n)-1);

Console.WriteLine("Poveanje je {0,0:f} kn, odnosno {1,0:f} %",


a2 - a1, (a2 - a1) * 100 / a1);
}
}

11. Napiite program u kojem ete definirati dva niza veliine 5 koji e predstavljati teajnu
listu:
prvi niz u kojem e biti ifre valuta AUD, JPY, GBP, USD i EUR
drugi niz u kojem e biti srednji teajevi tih valuta: 4.47, 4.43, 9.23, 4.68 i 7.25

Pod pretpostavkom da se kupovni i prodajni teaj razlikuju za 1 % od srednjeg, definirajte dva


niza u kojima e biti vrijednosti kupovnih i prodajnih teajeva za pojedinu valutu. Ispiite teajnu
listu u tablinom obliku.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
string[] oznake = { "AUD", "JPY", "GBP", "USD", "EUR" };
double[] srednji = { 4.47, 4.43, 9.23, 4.68, 7.25 };
double[] kupovni = new double[5];
double[] prodajni = new double[5];

for(int i = 0; i < sfr.Length; i++)


{
kupovni[i] = srednji[i] * 0.99;
prodajni[i] = srednji[i] * 1.01;
}

for(int i = 0; i < oznake.Length; i++)


Console.WriteLine("{0} {1,10:f} {2,10:f} {3,10:f}",
oznake[i], kupovni[i], srednji[i], prodajni[i]);
}
}

12. Napiite program koji e definirati 3 niza tipa double veliine 5, te ih definirajte na sljedei
nain:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima mari za tih 5 artikala
Trei niz definirajte s iznosima poreza za tih 5 artikala

Definirajte etvrti niz tipa double veliine 5 u kojem e biti vrijednosti maloprodajnih cijeni tih 5
artikala, te ispiite njegove vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test

135
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
public static void Main()
{
double[] nc = { 10.25, 20.03, 30.37, 40.28, 59.99 };
double[] marza = { 10, 20, 15, 20, 5 };
double[] porez = { 22, 22, 11, 0, 22 };
double[] mp = new double[5];

for(int i = 0; i < 5; i++)


mp[i] = nc[i] * (1 + marza[i]/100) * (1 + porez[i]/100);

for(int i = 0; i < 5; i++)


Console.WriteLine("{0,10:f}", mp[i]);
}
}

13. Napiite program koji e definirati 3 niza tipa double veliine 5, te ih definirajte na sljedei
nain:
Prvi niz definirajte s nabavnim cijenama za 5 artikala
Drugi niz definirajte s iznosima poreza za tih 5 artikala
Trei niz definirajte s maloprodajnim cijenama tih 5 artikala

Definirajte etvrti niz tipa double veliine 5 u kojem e biti vrijednosti mari za tih 5 artikala, te
ispiite njegove vrijednosti.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
double[] nc = { 10.25, 20.03, 30.37, 40.28, 59.34 };
double[] porez = { 10, 20, 15, 20, 5 };
double[] mc = { 13.99, 25.99, 36.99, 50.99, 73.99 };
double[] marza = new double[5];

for (int i = 0; i < 5; i++)


marza[i] = (mc[i] /
(nc[i] * (1 + porez[i] / 100)) - 1) * 100;

for (int i = 0; i < 5; i++)


Console.WriteLine("{0,10:f}", marza[i]);
}
}

14. Cijena unce zlata prije 30 dana bila je 800 $. U iduih 20 dana cijena je rasla po 2 %, a u
sljedeih 10 dana cijena je padala po 3.5 %.
Napiite program koji e izraunati dananju cijenu unce zlata.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{

136
Visoka poslovna kola MINERVA
Studij za informatiki menadment

public static void Main()


{
double d = 800;
for (int i = 0; i < 20; i++)
d *= 1.02;
for (int i = 0; i < 10; i++)
d *= 0.965;

Console.WriteLine("{0,0:f}", d);
}
}

15. Cijena m3 prirodnog plina iznosi 0.45 $ i u iduim danima e rasti svaki dan po 8 %.
Napiite program koji e izraunati za koliko e dana cijena plina premaiti 1 $, te koliko bi je
nakon toga trebalo smanjiti da bude tono 1 $.
--------------------------------------------------------------------------------------------------------------------

using System;

public class Test


{
public static void Main()
{
double d = 0.45;

for(int i = 0; ;i++)
{
d *= 1.08;
if (d > 1)
{
Console.WriteLine("Nakon {0} dana", i+1);
break;
}
}

double p = (d - 1) / d * 100;
Console.WriteLine("Treba smanjiti cijenu za {0,0:f} %", p);
}
}

16. Napiite program u kojem ete definirati niz tipa int veliine 10, te ete ga definirati s
vrijednostima prvih 10 brojeva. Izraunajte standardnu devijaciju niza.
--------------------------------------------------------------------------------------------------------------------

using System;

class Test
{
public static void Main()
{
int[] niz = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int sum = 0;

for (int i = 0; i < niz.Length; i++)


sum += niz[i];

137
Visoka poslovna kola MINERVA
Studij za informatiki menadment

double p = (double)sum / niz.Length;


double x = 0;
for (int i = 0; i < niz.Length; i++)
x += (niz[i] - p) * (niz[i] - p);

double stdev = Math.Sqrt(x / (niz.Length - 1));


Console.WriteLine(stdev);
}
}

17. Napiite program u kojem ete definirati niz tipa double proizvoljne veliine, te ete ga
definirati s proizvoljnim brojevima. Izraunajte medijanu niza.

using System;

public class Test


{
public static void Main()
{
double[] arr = {2.5, 1.1, 8.3, 2.9, 2.6, 1.7, 6.3, 7.4};

int len = arr.Length;


for (int i = 0; i < len - 1; i++)
for (int j = i + 1; j < len; j++)
if (arr[i] > arr[j])
{
double x = arr[i];
arr[i] = arr[j];
arr[j] = x;
}

double med;
if (len % 2 != 0)
med = (arr[len / 2]);
else
med = ((arr[len / 2 - 1] + arr[len / 2]) / 2);
Console.WriteLine(med);
}
}

18. Napiite program u kojem ete zatraiti od korisnika da unese:


sadanju koliinu plave ribe u Jadranskom moru
postotak godinjeg prirasta
broj godina
te e izraunati koliinu plave ribe nakon uneenog broja godina.

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite sadanju koliinu plave ribe");
string s = Console.ReadLine();
double a = Convert.ToDouble(s);

138
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Console.WriteLine("Unesite postotak godinjeg prirasta");


s = Console.ReadLine();
double b = Convert.ToDouble(s);

Console.WriteLine("Unesite broj godina");


s = Console.ReadLine();
double c = Convert.ToDouble(s);

double x = a * Math.Pow(Math.E, c * b / 100);


Console.WriteLine("{0,0:f}", x);
}
}

19. Napiite program u koje ete zatraiti od korisnika da unese:


sadanji broj stanovnika
budui broj stanovnika
broj godina
te e izraunati potreban godinji prirast da bi se dostigao uneeni broj stanovnika.

using System;

class Test
{
public static void Main()
{
Console.WriteLine("Unesite sadanji broj stanovnika");
string s = Console.ReadLine();
double a1 = Convert.ToDouble(s);

Console.WriteLine("Unesite projicirani broj stanovnika");


s = Console.ReadLine();
double a2 = Convert.ToDouble(s);

Console.WriteLine("Unesite broj godina");


s = Console.ReadLine();
double c = Convert.ToDouble(s);

double x = Math.Log(a2 / a1, Math.E) * 100 / c;


Console.WriteLine("{0,0:f}", x);
}
}

20. Napiite program koji e izraunati postotak poveanja industrijske proizvodnje u dravi X
ako se godinji prirast u razdoblju od 10 godina svake godine poveava za 0.15 % (npr. ako je u
nekoj godini prirast 4.3 % u iduoj je 4.45 %).
Za vrijednost godinjeg prirasta u prvoj godini uzmite vrijednost 2.4 %.

using System;

class Test
{
public static void Main()
{
double p = 2.4;
double C = 1;
for (int i = 0; i < 10; i++)

139
Visoka poslovna kola MINERVA
Studij za informatiki menadment

{
C *= Math.Pow(Math.E, p / 100);
p += 0.15;
}
Console.WriteLine("{0,0:f} %", (C - 1) * 100);
}
}

140
Visoka poslovna kola MINERVA
Studij za informatiki menadment

Tipovi varijabli:

Tip bytes Raspon


sbyte 1 -127 do 128
byte 1 0 do 255
short 2 -215 do 215-1
ushort 2 0 do 216-1
int 4 -231 do 231-1
uint 4 0 do 231-1
long 8 -263 do 263-1
ulong 8 0 do 263-1
char 2 0 do 216-1
float 4 1.5 10-45 do 3.4 1038
double 8 5 10-324 do 1.7 10308
bool 1 true ili false
decimal 16 10-28 do 7.9 1028

Prioritet operatora:

Operator
(x) x.y a[x] x++ x--
++x --x
* / %
+
<< >>
< > <= >=
== !=
&
^
|
&&
||
?:
= *= /= %= += -= <<= >>= &= ^= |=

141

You might also like