Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 43

Aleksandar Stojaković Viši programski jezici i RAD alati

1
Aleksandar Stojaković Viši programski jezici i RAD alati

2
Aleksandar Stojaković Viši programski jezici i RAD alati

SEMINARSKI RAD

20 ZADATAKA

Za kompajliranje je koristen online VB compiler


https://www.onlinegdb.com/online_vb_compiler

3
Aleksandar Stojaković Viši programski jezici i RAD alati

Sadrzaj

Sadrzaj..........................................................................................................................................................2
Prvi zadatak..................................................................................................................................................3
Drugi zadatak...............................................................................................................................................4
Treci zadatak................................................................................................................................................5
Cetvrti zadatak.............................................................................................................................................6
Peti zadatak..................................................................................................................................................7
Sesti zadatak.................................................................................................................................................8
Sedmi zadatak..............................................................................................................................................9
Osmi zadatak..............................................................................................................................................10
Deveti zadatak............................................................................................................................................11
Deseti zadatak............................................................................................................................................12
Jedanaesti zadatak.....................................................................................................................................13
Dvanaesti zadatak......................................................................................................................................14
Trinaesti prepravka....................................................................................................................................16
Cetrnaesti zadatak......................................................................................................................................20
Petnaesti zadatak.......................................................................................................................................27
Sesnaesti zadatak.......................................................................................................................................29
Sedamnaesti zadatak..................................................................................................................................32
Osamnaesti zadatak...................................................................................................................................35
Devetnaesti zadatak...................................................................................................................................37
Dvadeseti zadatak......................................................................................................................................39

4
Aleksandar Stojaković Viši programski jezici i RAD alati

Prvi zadatak

Kvadratna jednačina.

Module VBModule

Sub Main()

dim a,b,rez as double

a=0

b=0

a = console.readline()

b = console.readline()

rez=0

rez = a*a + 2*a*b + b*b

console.writeline(rez)

End Sub

End Module

5
Aleksandar Stojaković Viši programski jezici i RAD alati

Drugi zadatak
Napisati program koji će usporediti platu, ko ima veću, vi ili X ostalih zaposlenika.

Module VBModule

Sub Main()

dim x,i,k as integer

dim p,m as double

p = console.readline()

x = console.readline()

dim niz(x) as double

m=p

k = -1

for i=0 to x

niz(i) = console.readline()

next

for i=0 to x

if (niz(i) > m) then

m=niz(i)

k=i

end if

next

if k=-1

console.writeline("Vi imate najvecu platu. Vasa plata iznosi: ")

console.writeline(m)

else

console.writeline("Najvecu platu ima radnik sa sledecom platom i indeksom: ")

console.writeline(m)

console.writeline(k)

end if

End Sub

6
Aleksandar Stojaković Viši programski jezici i RAD alati

End Module

Treci zadatak
Napisati program koji će naći najveću i najmanju platu.

Module VBModule

Sub Main()

dim x,i as integer

x = console.readline()

dim niz(x), min, max as double

for i=0 to x-1

niz(i) = console.readline()

next

min = niz(0)

max = niz(0)

for i=1 to x-1

if(niz(i) > max) then

max = niz(i)

end if

if(niz(i) < min) then

min = niz(i)

end if

next

console.writeline("Najveca plata iznosi: ")

console.writeline(max)

console.writeline("Najmanja plata iznosi: ")

console.writeline(min)

End Sub

End Module

7
Aleksandar Stojaković Viši programski jezici i RAD alati

Cetvrti zadatak
Napisati program koji će odrediti prosjek plata.

Module VBModule

Sub Main()

dim x,i as integer

x = console.readline()

dim niz(x), s as double

s=0

for i=0 to x-1

niz(i) = console.readline()

next

for i=0 to x-1

s = s+niz(i)

next

console.writeline("Prosjek plata iznosi: ")

console.writeline(s/x)

End Sub

End Module

8
Aleksandar Stojaković Viši programski jezici i RAD alati

Peti zadatak
Napisati program koji prebrojava prirodne brojeve u intervalu od 1 do n koji su djeljivi sa l.

Module VBModule

Sub Main()

dim n,i,l,brojac as integer

n = console.readline()

l = console.readline()

brojac = 0

for i=1 to n

if i mod l = 0 then

brojac = brojac + 1

end if

next

console.writeline("Broj djeljivih brojeva iznosi: ")

console.writeline(brojac)

End Sub

End Module

9
Aleksandar Stojaković Viši programski jezici i RAD alati

Sesti zadatak
Napisati program za učitavanje 10 brojeva i ispis koliko je učitano negativnih, nula i pozitivnih
brojeva.

Module VBModule

Sub Main()

dim niz(10),poz,neg,nula,i as integer

neg = 0

poz = 0

nula = 0

for i=0 to 9

niz(i) = console.readline()

if(niz(i) > 0) then

poz = poz + 1

end if

if(niz(i) < 0) then

neg = neg + 1

end if

if(niz(i) = 0) then

nula = nula + 1

end if

next

console.writeline("Pozitivnih, negativnih i nula ima redom: ")

console.writeline(poz)

console.writeline(neg)

console.writeline(nula)

End Sub

End Module

10
Aleksandar Stojaković Viši programski jezici i RAD alati

Sedmi zadatak
Napisati program koji će za učitanu vrijednost N izračunati vrijednost izraza i ispisati: S = 1! +
2! ... + N!

Module VBModule

Sub Main()

dim n,i,j,s,k as integer

n = console.readline()

s=0

for i=1 to n

k=1

for j=1 to i

k=k*j

next

s = s+k

next

console.writeline("Rezultat: ")

console.writeline(s)

End Sub

End Module

11
Aleksandar Stojaković Viši programski jezici i RAD alati

Osmi zadatak
Napisati program koji će za učitanu vrijednost N i M izračunati vrijednost izraza i ispisati: p = n
(n+m)(n+2m) ... (n+m*m)

Module VBModule

Sub Main()

dim n,m,i,s as integer

n = console.readline()

m = console.readline()

s=1

for i=0 to m

s = s * (n + m*i)

next

console.writeline("Rezultat: ")

console.writeline(s)

End Sub

End Module

12
Aleksandar Stojaković Viši programski jezici i RAD alati

Deveti zadatak
Ispis parnih i neparnih brojeva

Module VBModule

Sub Main()

dim n,i as integer

n = console.readline()

dim niz(n) as integer

for i=0 to n-1

niz(i) = console.readline()

next

console.writeline("Parni brojevi: ")

for i=0 to n-1

if (niz(i) mod 2 = 0) then

console.writeline(niz(i))

end if

next

console.writeline("Neparni brojevi: ")

for i=0 to n-1

if (niz(i) mod 2 = 1) then

console.writeline(niz(i))

end if

next

End Sub

End Module

13
Aleksandar Stojaković Viši programski jezici i RAD alati

Deseti zadatak
Napisati program o evidenciji ocjene o studentu

Module VBModule

Sub Main()

dim n,i as integer

n = console.readline()

dim student(n) as string

dim ocjena(n) as integer

for i=0 to n-1

student(i) = console.readline()

ocjena(i) = console.readline()

next

console.writeline("Studenti i njihove ocjene: ")

for i=0 to n-1

console.writeline(student(i))

console.writeline(ocjena(i))

next

End Sub

End Module

14
Aleksandar Stojaković Viši programski jezici i RAD alati

Jedanaesti zadatak
Sortiranje stringova alfabetski i mogucnost unosenja novih

Module VBModule

Sub Main()

dim n,i,j as integer

n = console.readline()

dim s(n) as string

dim pom as string

for i=0 to n-1

s(i) = console.readline()

next

for i=0 to n+n

for j=0 to n-2

if Asc(s(j)(0)) > Asc(s(j+1)(0)) then

pom = String.Copy(s(j))

s(j) = String.Copy(s(j+1))

s(j+1) = String.Copy(pom)

end if

next

next

for i=0 to n-1

console.writeline(s(i))

next

End Sub

End Module

15
Aleksandar Stojaković Viši programski jezici i RAD alati

Dvanaesti zadatak
CheckBox program, koji odredjuje koja stavka je pod kojim rednim brojem

Module VBModule

dim cb1 As CheckBox, cb2 As CheckBox, cb3 as CheckBox

Sub Main()

dim n(3) as integer

dim i,j,pom as integer

for i = 0 to 2

niz(i) = console.readline()

next

for i = 0 to 2

for j = 0 to 1

if niz(j) > niz(j+1) then

pom = niz(j)

niz(j) = niz(j+1)

niz(j+1) = pom

end if

next

next

cb1.text = n(0)

cb2.text = n(1)

cb3.text = n(2)

console.writeline("Kraj programa.")

End Sub

End Module

16
Aleksandar Stojaković Viši programski jezici i RAD alati

Trinaesti zadatak
 Dat je string S koji sadrži samo mala slova. Prikazati najduži segment stringa S (niz uzastopnih
elemenata stringa) koji je palindrom u stringu S. Ako ima više najdužih segmenata prikazati
segment čiji početak ima najmanji indeks.

Module VBModule

Sub Main()

dim i,j,maxlokacija,duzina,maxduzina,uslov,duzinas,pl,pd,parnepar as integer

dim s,lijevo,desno,rez,rezparni as string

s = console.readline()

duzinas = len(s)

duzina = 1

maxduzina = 1

maxlokacija = 1

parnepar = 1

rez = ""

rezparni = ""

for i=1 to duzinas - 2

uslov = 1

pl = i - 1

pd = i + 1

while (uslov)

lijevo = String.Copy(s(pl))

desno = String.Copy(s(pd))

if(Asc(lijevo) = Asc(desno)) then

duzina = duzina + 1

pl = pl - 1

17
Aleksandar Stojaković Viši programski jezici i RAD alati

pd = pd + 1

end if

if (pl<0 OR pd>duzinas - 1 OR Asc(lijevo) <> Asc(desno)) then

uslov = 0

end if

end while

if(duzina > maxduzina) then

maxlokacija = i

maxduzina = duzina

end if

duzina = 1

if (i=duzinas-2) then

for j = maxlokacija - maxduzina + 1 to maxlokacija + maxduzina - 1

rez = rez + s(j)

next

console.writeline("Najduzi neparni palindrom u datom stringu je: " + Cstr(rez))

end if

next

duzina = 1

for i=0 to duzinas-2

uslov = 1

pl = i

pd = i + 1

while (uslov)

lijevo = String.Copy(s(pl))

18
Aleksandar Stojaković Viši programski jezici i RAD alati

desno = String.Copy(s(pd))

if(Asc(lijevo) = Asc(desno)) then

duzina = duzina + 1

pl = pl - 1

pd = pd + 1

end if

if (pl<0 OR pd>duzinas - 1 OR Asc(lijevo) <> Asc(desno)) then

uslov = 0

end if

end while

if(duzina > maxduzina) then

maxlokacija = i

maxduzina = duzina

parnepar = 0

end if

duzina = 1

if (i=duzinas-2) then

for j = maxlokacija - maxduzina + 2 to maxlokacija + maxduzina - 1

rezparni = rezparni + s(j)

next

console.writeline("Najduzi parni palindrom u datom stringu je: " + Cstr(rezparni))

end if

next

if parnepar = 1 then

console.writeline("Najduzi palindrom u datom stringu je: " + Cstr(rez))

else

console.writeline("Najduzi palindrom u datom stringu je: " + Cstr(rezparni))

19
Aleksandar Stojaković Viši programski jezici i RAD alati

end if

End Sub

End Module

20
Aleksandar Stojaković Viši programski jezici i RAD alati

Cetrnaesti zadatak
Domine se slažu jedna uz drugu, tako što se polja na dominama postavljenim jednu uz drugu
moraju poklapati. Domine obično imaju samo dva polja, međutim, naše su domine specijalne i
imaju više različitih polja (označenih slovima). Ako sve domine koje slažemo imaju istu šaru, 
napiši program koji određuje kako je domine moguće složiti tako da zauzmu što manje prostora
po dužini (svaka naredna domina mora biti smaknuta bar za jedno polje). 

Module VBModule

Sub Main()

dim i,j,d,rotlijevo,rotdesno,lijevo,desno,brojac,pom,uslov,konrez,goredolje,razmak,prvikorak as integer

dim s as string = console.readline()

dim rs as string = StrReverse(s)

dim gore as string = ""

dim dolje as string = ""

dim n as integer = console.readline()

d = len(s)

rotlijevo = 0

rotdesno = 0

lijevo = 0

desno = 0

brojac = 0

pom = 0

'rotacija lijevo

for i = 0 to d-2

if (Asc(s(0)) = Asc(s(d-2-i))) then

uslov = 1

brojac = 0

pom = d-2-i

while(uslov)

21
Aleksandar Stojaković Viši programski jezici i RAD alati

if(pom-brojac < 0) then

uslov = 0

elseif (Asc(s(0+brojac)) <> Asc(s(pom-brojac))) then

uslov = 0

else

brojac = brojac + 1

end if

end while

if(pom-brojac = -1) then

i=d

end if

end if

if(i>d-1) then

rotlijevo = pom

console.writeline("Rotlijevo: " + Cstr(Rotlijevo))

end if

next

'rotacija desno

for i = 0 to d-2

if (Asc(s(d-1)) = Asc(s(1+i))) then

uslov = 1

brojac = 0

pom = d-2-i

while(uslov)

if(pom-brojac < 0) then

uslov = 0

elseif (Asc(s(d-1-brojac)) <> Asc(s(1+i+brojac))) then

uslov = 0

else

brojac = brojac + 1

22
Aleksandar Stojaković Viši programski jezici i RAD alati

end if

end while

if(pom-brojac = -1) then

i=d

end if

end if

if(i>d-1) then

rotdesno = d-2-pom+1

console.writeline("Rotdesno: " + Cstr(rotdesno))

end if

next

'bez rotacije lijevo

for i = 0 to d-2

if (Asc(s(d-1)) = Asc(s(d-2-i))) then

uslov = 1

brojac = 0

pom = d-2-i

while(uslov)

if(pom-brojac < 0) then

uslov = 0

elseif (Asc(s(d-1-brojac)) <> Asc(s(pom-brojac))) then

uslov = 0

else

brojac = brojac + 1

end if

end while

if(pom-brojac = -1) then

i=d

end if

end if

23
Aleksandar Stojaković Viši programski jezici i RAD alati

if(i>d-1) then

lijevo = pom

console.writeline("Lijevo: " + Cstr(lijevo))

end if

next

'bez rotacije desno

for i = 0 to d-2

if (Asc(s(0)) = Asc(s(1+i))) then

uslov = 1

brojac = 0

pom = d-2-i

while(uslov)

if(pom-brojac < 0) then

uslov = 0

elseif (Asc(s(0+brojac)) <> Asc(s(1+i+brojac))) then

uslov = 0

else

brojac = brojac + 1

end if

end while

if(pom-brojac = -1) then

i=d

end if

end if

if(i>d-1) then

desno = d-2-pom+1

console.writeline("Desno: " + Cstr(desno))

end if

next

console.writeline("Desno-lijevo: " + CStr(desno-lijevo-1))

24
Aleksandar Stojaković Viši programski jezici i RAD alati

console.writeline("Desno-lijevo (rotacija): " + CStr(rotdesno-rotlijevo-1))

prvikorak = 1

for i = 0 to n-1

if(desno-lijevo-1 > 0 AND rotdesno-rotlijevo-1 > 0 AND desno-lijevo-1 < rotdesno-rotlijevo-1) then

konrez = desno-lijevo-1

goredolje = 0

if(prvikorak = 1) then

for i=0 to desno - 1 - konrez

gore = gore + " "

next

prvikorak = 0

end if

for i=0 to n-1

razmak = 0

if goredolje = 0 then

dolje = dolje + s

goredolje = 1

while(razmak < konrez)

gore = gore + " "

razmak = razmak + 1

end while

else

gore = gore + s

goredolje = 0

while(razmak < konrez)

dolje = dolje + " "

razmak = razmak + 1

end while

25
Aleksandar Stojaković Viši programski jezici i RAD alati

end if

next

elseif (desno-lijevo-1 > 0 AND rotdesno-rotlijevo-1 > 0 AND desno-lijevo-1 >= rotdesno-rotlijevo-1) then

konrez = rotdesno-rotlijevo-1

goredolje = 0

if(prvikorak = 1) then

for i=0 to desno - 1 - konrez

gore = gore + " "

next

prvikorak = 0

end if

for i=0 to n-1

razmak = 0

if goredolje = 0 then

dolje = dolje + rs

goredolje = 1

while(razmak < konrez)

gore = gore + " "

razmak = razmak + 1

end while

else

gore = gore + rs

goredolje = 0

while(razmak < konrez)

dolje = dolje + " "

razmak = razmak + 1

end while

end if

next

else

konrez = 0

26
Aleksandar Stojaković Viši programski jezici i RAD alati

goredolje = 0

if(prvikorak = 1) then

for i=0 to desno - 1 - konrez

gore = gore + " "

next

prvikorak = 0

end if

for i=0 to n-1

razmak = 0

if goredolje = 0 then

dolje = dolje + s

goredolje = 1

while(razmak < konrez)

gore = gore + " "

razmak = razmak + 1

end while

else

gore = gore + s

goredolje = 0

while(razmak < konrez)

dolje = dolje + " "

razmak = razmak + 1

end while

end if

next

end if

next

console.writeline("Konacan odabir: " + Cstr(konrez))

console.writeline(gore)

console.writeline(dolje)

End Sub

27
Aleksandar Stojaković Viši programski jezici i RAD alati

End Module

28
Aleksandar Stojaković Viši programski jezici i RAD alati

Petnaesti zadatak
2n-to cifreni digitalni brojač koji odbrojava od 000…000 do 999…999 emituje zvučni signal svaki
put kada je suma prvih n cifara jednaka sumi poslednjih n cifara. Na primer, za šestocifreni
digitalni brojač zvučni signal se pušta za 000000,001001,001010,…,999999.Napisati program koji
će odrediti koliko puta će biti emitovan zvučni signal.

Module VBModule

Sub Main()

dim i, n, max, gore, dolje, g10,sumagore, sumadolje, ukupno as integer

max = 1

gore = 0

dolje = 0

g10 = 1

ukupno = 0

n = console.readline()

for i = 1 to 2*n

max = max * 10

next

for i = 1 to n

g10 = g10 * 10

next

for i = 0 to max-1

sumagore = 0

sumadolje = 0

dolje = i mod g10

gore = i \ g10

while(dolje>0)

sumadolje = sumadolje + dolje mod 10

dolje = dolje \ 10

end while

while(gore>0)

29
Aleksandar Stojaković Viši programski jezici i RAD alati

sumagore = sumagore + gore mod 10

gore = gore \ 10

end while

if sumagore = sumadolje then

ukupno = ukupno + 1

end if

next

console.writeline("Ukupno: " + CStr(ukupno))

End Sub

End Module

30
Aleksandar Stojaković Viši programski jezici i RAD alati

Sesnaesti zadatak
Šahovska ekipa Beograda je pozvala na pripreme šahovsku ekipu ostatka Srbije. Svaka ekipa ima
isti broj takmičara i za svakog takmičara je poznat rejting. Ekipa domaćina ima mogućnost da
odabere parove koji će igrati u prvom kolu. Ako svaki igrač domaćina pobeđuje gosta koji ima
manji ili jednak rejting, a gubi od gosta koji ima strogo veći rejting, napiši program koji određuje
koji je najveći broj pobeda koje ekipa Beograda može da ostvari u prvom kolu.

Module VBModule

Sub Main()

dim i,j,k,min,pom,ukupno as integer

dim n,n2 as integer

n = console.readline()

n2 = n*n

dim niz(n2) as integer

ukupno = 0

for i = 0 to n-1

for j = 0 to n-1

niz(i*n + j) = console.readline()

next

next

for i = 0 to n-1

for k = 0 to n-1

for j = 0 to n-2

if niz(i*n + j) > niz(i*n + j+1) then

pom = niz(i*n + j)

niz(i*n + j) = niz(i*n + j+1)

niz(i*n + j+1) = pom

end if

next

31
Aleksandar Stojaković Viši programski jezici i RAD alati

next

next

for j = 0 to n-1

min = niz(1*n + j)

for i = 1 to n-1

if niz(i*n+j) < min then

min = niz(i*n + j)

end if

next

console.writeline("Min = " + CStr(min) + " Niz(j) = " + CStr(niz(j)))

for k=j to n-1

if niz(k) >= min then

pom = niz(j)

niz(j) = niz(k)

niz(k) = pom

k=n

end if

next

if niz(j) >= min then

ukupno = ukupno + 1

end if

next

for i=0 to n-1

dim pomstr as string = ""

for j=0 to n-1

pomstr = pomstr + CStr(niz(i*n + j)) + " "

next

console.writeline(CStr(pomstr))

32
Aleksandar Stojaković Viši programski jezici i RAD alati

next

console.writeline("Ukupno: " + CStr(ukupno))

End Sub

End Module

33
Aleksandar Stojaković Viši programski jezici i RAD alati

Sedamnaesti zadatak
Urediti niz brojeva tako da najmanji od svih elemenata ide na prvo mesto, najmanji od
preostalih na poslednje, sledeći najmanji po veličini na drugo mesto, sledeći na pretposlednje
itd.

Module VBModule

Sub Main()

dim i,j,pom,srednji,ld,brojac as integer

dim n as integer = console.readline()

dim niz(n),lijevo(n\2),desno(n\2) as integer

dim rez as string = ""

for i = 0 to n-1

niz(i) = console.readline()

next

for i = 0 to n-1

rez = rez + CStr(niz(i)) + " "

next

console.writeline(rez)

for i= 0 to n-1

for j= 0 to n-2

if niz(j) > niz(j+1) then

pom = niz(j)

niz(j) = niz(j+1)

niz(j+1) = pom

end if

next

next

34
Aleksandar Stojaković Viši programski jezici i RAD alati

rez = ""

for i = 0 to n-1

rez = rez + CStr(niz(i)) + " "

next

console.writeline(rez)

ld = 0

brojac = 0

for i = 0 to n-1

if ((i = n-1) AND (n mod 2 = 1)) then

srednji = niz(i)

elseif ld = 0 then

ld = 1

lijevo(brojac) = niz(i)

else

ld = 0

desno(brojac) = niz(i)

brojac = brojac + 1

end if

next

rez = ""

for i = 0 to n\2-1

rez = rez + CStr(lijevo(i)) + " "

next

rez = rez + " "

if (n mod 2 = 1) then

rez = rez + Cstr(srednji) + " "

end if

for i = 0 to n\2-1

35
Aleksandar Stojaković Viši programski jezici i RAD alati

rez = rez + CStr(desno(n\2-1-i)) + " "

next

console.writeline(rez)

brojac = 0

while(brojac<(n\2))

niz(brojac) = lijevo(brojac)

brojac = brojac + 1

end while

if(n mod 2 = 1) then

niz(brojac) = srednji

brojac = brojac + 1

end if

i=0

while(brojac<=(n-1))

niz(brojac) = desno(n\2-1-i)

brojac = brojac + 1

i=i+1

end while

rez = ""

for i = 0 to n-1

rez = rez + CStr(niz(i)) + " "

next

console.writeline("Konacan rezultat: ")

console.writeline(rez)

End Sub

End Module

36
Aleksandar Stojaković Viši programski jezici i RAD alati

37
Aleksandar Stojaković Viši programski jezici i RAD alati

Osamnaesti zadatak
Rangiranje naučnika vrši se pomoću statistike koja se naziva h-indeks. h-indeks naučnika je
najveći broj H takav da naučnik ima bar H radova od kojih svaki ima bar H citata.

Module VBModule

Sub Main()

dim i,j,k,n2,maxbr,brojacradova as integer

dim n as integer = console.readline()

n2 = n*n

dim hindeks(n) as integer

dim niz(n2) as integer

dim rez as string = ""

for i = 0 to n-1

for j = 0 to n-1

niz(i*n + j) = console.readline()

next

next

for i = 0 to n-1

for j = 0 to n-1

rez = rez + CStr(niz(i*n + j)) + " "

next

console.writeline(rez)

rez = ""

next

maxbr = 0

brojacradova = 0

38
Aleksandar Stojaković Viši programski jezici i RAD alati

for i = 0 to n-1

maxbr = 0

for j = 0 to n-1

brojacradova = 0

for k = 0 to n-1

if (niz(i*n+j) <= niz(i*n+k)) then

brojacradova = brojacradova + 1

end if

next

if(brojacradova > maxbr AND niz(i*n+j) >= brojacradova) then

maxbr = brojacradova

hindeks(i) = maxbr

end if

next

next

rez = ""

for i = 0 to n-1

rez = rez + CStr(hindeks(i)) + " "

next

console.writeline("Rezultat: ")

console.writeline(rez)

End Sub

End Module

39
Aleksandar Stojaković Viši programski jezici i RAD alati

Devetnaesti zadatak
Dva gosta su došla u hotel i žele da odsednu u sobama koje su što bliže jedna drugoj, da bi
tokom večeri mogli da zajedno rade u jednoj od tih soba. Ako postoji više takvih soba, oni biraju
da budu što dalje od recepcije, tj. u sobama sa što većim rednim brojevima, kako im buka ne bi
smetala. Ako je poznat spisak slobodnih soba u tom trenutku, napiši program koji određuje
brojeve soba koje gosti treba da dobiju.

Module VBModule

Sub Main()

dim i,j,prva,druga,maxvecibr,vecibr,blizinasoba,maxb,udaljenost,pom as integer

dim n as integer = console.readline()

dim niz(n) as integer

for i = 0 to n-1

niz(i) = console.readline()

next

blizinasoba = math.abs(niz(0) - niz(1))

maxb = blizinasoba

prva = 0

druga = 1

vecibr = math.max(niz(0),niz(1))

maxvecibr = vecibr

for i = 0 to n-1

for j = 0 to n-1

if(j <> i) then

blizinasoba = math.abs(niz(i) - niz(j))

vecibr = math.max(niz(i),niz(j))

if((blizinasoba < maxb) OR (blizinasoba = maxb AND vecibr > maxvecibr)) then

maxb = blizinasoba

prva = i

40
Aleksandar Stojaković Viši programski jezici i RAD alati

druga = j

maxvecibr = vecibr

end if

end if

next

next

console.writeline("Dvije sobe koje su najblize jedna drugoj i koje su najudaljenije od recepcije su: ")

console.writeline(CStr(niz(prva)) + " " + CStr(niz(druga)))

console.writeline("Udaljenost: " + CStr(maxb))

console.writeline("Veci broj od dva broja soba: " + CStr(maxvecibr))

End Sub

End Module

41
Aleksandar Stojaković Viši programski jezici i RAD alati

Dvadeseti zadatak
Apsolutni pobednik izbora je onaj ko osvoji bar jedan glas više od polovine izašlih birača. Ako su
poznati svi glasački listići, odredi da li postoji apsolutni pobednik izbora.

Module VBModule

Sub Main()

dim i,m,lok

dim n as integer = console.readline()

dim ukupno(n) as integer

dim glasovi(n) as integer

for i = 0 to n-1

ukupno(i) = 0

next

for i = 0 to n-1

glasovi(i) = console.readline()

next

for i = 0 to n-1

if (glasovi(i) <= n-1 AND glasovi(i) >= 0) then

ukupno(glasovi(i)) = ukupno(glasovi(i)) + 1

end if

next

m=0

lok = 0

for i = 0 to n-1

if (ukupno(i)>0) then

console.writeline("Kandidat " + CStr(i) + " : " + CStr(ukupno(i)))

42
Aleksandar Stojaković Viši programski jezici i RAD alati

end if

if (ukupno(i) > m) then

m = ukupno(i)

lok = i

end if

next

console.writeline("Ukupno glasova: " + CStr(n))

console.writeline("Kandidat " + CStr(lok) + " je osvojio najvise glasova: " + CStr(m))

if CDbl(m) > CDbl(n/2) then

console.writeline("Kandidat " + CStr(lok) + " je osvojio apsolutnu vecinu glasova: " + CStr(CDbl(m/n)) + " % ")

end if

End Sub

End Module

43

You might also like