Professional Documents
Culture Documents
Seminarski VisiProgramskiJeziciIRADAlati
Seminarski VisiProgramskiJeziciIRADAlati
1
Aleksandar Stojaković Viši programski jezici i RAD alati
2
Aleksandar Stojaković Viši programski jezici i RAD alati
SEMINARSKI RAD
20 ZADATAKA
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()
a=0
b=0
a = console.readline()
b = console.readline()
rez=0
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()
p = console.readline()
x = console.readline()
m=p
k = -1
for i=0 to x
niz(i) = console.readline()
next
for i=0 to x
m=niz(i)
k=i
end if
next
if k=-1
console.writeline(m)
else
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()
x = console.readline()
niz(i) = console.readline()
next
min = niz(0)
max = niz(0)
max = niz(i)
end if
min = niz(i)
end if
next
console.writeline(max)
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()
x = console.readline()
s=0
niz(i) = console.readline()
next
s = s+niz(i)
next
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()
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(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()
neg = 0
poz = 0
nula = 0
for i=0 to 9
niz(i) = console.readline()
poz = poz + 1
end if
neg = neg + 1
end if
if(niz(i) = 0) then
nula = nula + 1
end if
next
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()
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()
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()
n = console.readline()
niz(i) = console.readline()
next
console.writeline(niz(i))
end if
next
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()
n = console.readline()
student(i) = console.readline()
ocjena(i) = console.readline()
next
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()
n = console.readline()
s(i) = console.readline()
next
pom = String.Copy(s(j))
s(j) = String.Copy(s(j+1))
s(j+1) = String.Copy(pom)
end if
next
next
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
Sub Main()
for i = 0 to 2
niz(i) = console.readline()
next
for i = 0 to 2
for j = 0 to 1
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()
s = console.readline()
duzinas = len(s)
duzina = 1
maxduzina = 1
maxlokacija = 1
parnepar = 1
rez = ""
rezparni = ""
uslov = 1
pl = i - 1
pd = i + 1
while (uslov)
lijevo = String.Copy(s(pl))
desno = String.Copy(s(pd))
duzina = duzina + 1
pl = pl - 1
17
Aleksandar Stojaković Viši programski jezici i RAD alati
pd = pd + 1
end if
uslov = 0
end if
end while
maxlokacija = i
maxduzina = duzina
end if
duzina = 1
if (i=duzinas-2) then
next
end if
next
duzina = 1
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))
duzina = duzina + 1
pl = pl - 1
pd = pd + 1
end if
uslov = 0
end if
end while
maxlokacija = i
maxduzina = duzina
parnepar = 0
end if
duzina = 1
if (i=duzinas-2) then
next
end if
next
if parnepar = 1 then
else
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()
d = len(s)
rotlijevo = 0
rotdesno = 0
lijevo = 0
desno = 0
brojac = 0
pom = 0
'rotacija lijevo
for i = 0 to d-2
uslov = 1
brojac = 0
pom = d-2-i
while(uslov)
21
Aleksandar Stojaković Viši programski jezici i RAD alati
uslov = 0
uslov = 0
else
brojac = brojac + 1
end if
end while
i=d
end if
end if
if(i>d-1) then
rotlijevo = pom
end if
next
'rotacija desno
for i = 0 to d-2
uslov = 1
brojac = 0
pom = d-2-i
while(uslov)
uslov = 0
uslov = 0
else
brojac = brojac + 1
22
Aleksandar Stojaković Viši programski jezici i RAD alati
end if
end while
i=d
end if
end if
if(i>d-1) then
rotdesno = d-2-pom+1
end if
next
for i = 0 to d-2
uslov = 1
brojac = 0
pom = d-2-i
while(uslov)
uslov = 0
uslov = 0
else
brojac = brojac + 1
end if
end while
i=d
end if
end if
23
Aleksandar Stojaković Viši programski jezici i RAD alati
if(i>d-1) then
lijevo = pom
end if
next
for i = 0 to d-2
uslov = 1
brojac = 0
pom = d-2-i
while(uslov)
uslov = 0
uslov = 0
else
brojac = brojac + 1
end if
end while
i=d
end if
end if
if(i>d-1) then
desno = d-2-pom+1
end if
next
24
Aleksandar Stojaković Viši programski jezici i RAD alati
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
next
prvikorak = 0
end if
razmak = 0
if goredolje = 0 then
dolje = dolje + s
goredolje = 1
razmak = razmak + 1
end while
else
gore = gore + s
goredolje = 0
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
next
prvikorak = 0
end if
razmak = 0
if goredolje = 0 then
dolje = dolje + rs
goredolje = 1
razmak = razmak + 1
end while
else
gore = gore + rs
goredolje = 0
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
next
prvikorak = 0
end if
razmak = 0
if goredolje = 0 then
dolje = dolje + s
goredolje = 1
razmak = razmak + 1
end while
else
gore = gore + s
goredolje = 0
razmak = razmak + 1
end while
end if
next
end if
next
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()
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
gore = i \ g10
while(dolje>0)
dolje = dolje \ 10
end while
while(gore>0)
29
Aleksandar Stojaković Viši programski jezici i RAD alati
gore = gore \ 10
end while
ukupno = ukupno + 1
end if
next
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()
n = console.readline()
n2 = n*n
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
pom = niz(i*n + j)
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
min = niz(i*n + j)
end if
next
pom = niz(j)
niz(j) = niz(k)
niz(k) = pom
k=n
end if
next
ukupno = ukupno + 1
end if
next
next
console.writeline(CStr(pomstr))
32
Aleksandar Stojaković Viši programski jezici i RAD alati
next
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()
for i = 0 to n-1
niz(i) = console.readline()
next
for i = 0 to n-1
next
console.writeline(rez)
for i= 0 to n-1
for j= 0 to n-2
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
next
console.writeline(rez)
ld = 0
brojac = 0
for i = 0 to n-1
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
next
if (n mod 2 = 1) then
end if
for i = 0 to n\2-1
35
Aleksandar Stojaković Viši programski jezici i RAD alati
next
console.writeline(rez)
brojac = 0
while(brojac<(n\2))
niz(brojac) = lijevo(brojac)
brojac = brojac + 1
end while
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
next
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()
n2 = n*n
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
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
brojacradova = brojacradova + 1
end if
next
maxbr = brojacradova
hindeks(i) = maxbr
end if
next
next
rez = ""
for i = 0 to n-1
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()
for i = 0 to n-1
niz(i) = console.readline()
next
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
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: ")
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
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
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
42
Aleksandar Stojaković Viši programski jezici i RAD alati
end if
m = ukupno(i)
lok = i
end if
next
console.writeline("Kandidat " + CStr(lok) + " je osvojio apsolutnu vecinu glasova: " + CStr(CDbl(m/n)) + " % ")
end if
End Sub
End Module
43