Zadaci C#

You might also like

Download as pdf or txt
Download as pdf or txt
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

2
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

Visoka poslovna kola MINERVA Studij za informatiki menadment

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

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).

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

Visoka poslovna kola MINERVA Studij za informatiki menadment

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"

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 string string string string sVelika = s.ToUpper(); sMala = s.ToLower(); sPrvaTri = s.Substring(0, 3); sZadnjihPet = s.Substring(s.Length - 5, 5); 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 > max else if max else if max else 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) b && a > c && a > d) = a; (b > c && b > d) = b; (c > d) = c; = d;

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

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 ? } } 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); x : y);

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 Console.WriteLine("{0} {1}", y, else if (y <= x && y >= z || y >= x Console.WriteLine("{0} {1}", x, else Console.WriteLine("{0} {1}", x, } } <= z) z); && y <= z) z); 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; if(!(s[i] == 'A' || s[i] s[i] == 'E' || s[i] s[i] == 'I' || s[i] s[i] == 'O' || s[i] s[i] == 'U' || s[i] 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). -------------------------------------------------------------------------------------------------------------------i++) == 'a' || == 'e' || == 'i' || == 'o' || == 'u'))

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 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:"); == 141592)

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 < for(int j = 0; if(arr1[i] { flag = break; } arr1.Length; i++) j < arr2.Length; j++) == arr2[j]) true;

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) 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 // Broj nije dodijeljen

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) arr[n++] = y; } while (n != Broj); // Broj nije dodijeljen

// 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 { Fruit x = Fruit y = Fruit z = } }

void Main() new Fruit("Jagoda", "Crvena", true); new Fruit("Limun", "uta", false); 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 { Sport x = Sport y = Sport z = } }

void Main() new Sport("Nogomet", true, 11); new Sport("Vaterpolo", true); 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 { KlasaX x = new for(int i = 0; x[i] = i + } }

Main() KlasaX(); i < 100; 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 // Rate R = a - I; // Glavnica C -= R; 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 x for (int x += = (double)sum / niz.Length; = 0; i = 0; i < niz.Length; i++) (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 sbyte byte short ushort int uint long ulong char float double bool decimal

bytes 1 1 2 2 4 4 8 8 2 4 8 1 16

Raspon -127 do 128 0 do 255 -215 do 215-1 0 do 216-1 -231 do 231-1 0 do 231-1 -263 do 263-1 0 do 263-1 0 do 216-1 1.5 10-45 do 3.4 1038 5 10-324 do 1.7 10308 true ili false 10-28 do 7.9 1028

Prioritet operatora:

Operator (x) x.y a[x] x++ x-++x --x * / % + << >> < > <= >= == != & ^ | && || ?: = *= /= %= += -= <<= >>= &= ^= |=

141

You might also like