Vous êtes sur la page 1sur 2

ELEKTROTEHNIČKI FAKULTET UNIVERZITETA U BEOGRADU BEOGRAD, 20.01.2022.

Prvi deo ispita iz Programiranja 1


Trajenje 60 minuta
Napomene:
a) Pažljivo proučite Uputstvo pre popunjavanja Obrasca za odgovore.
b) Vrednost odgovora: tačan = 5; netačan = -1.25; nevažeći (nula ili više zacrnjenih kružića) = 0.
c) Na pitanjima se može osvojiti najviše 20 poena.
I. PITANJA
1)Koji od ponuđenih odgovora zadovoljava dato sintaksno pravilo za <contact> neterminalni simbol
dato u BNF notaciji? Ignorisati razmake i ostale neštampajuće znake.
<contact> ::= + <country> <city> / <number>
<country> ::= <ttt>
<city> ::= <dd>
<number> ::= <number> - <ttt> | <dd>
<ttt> ::= <digit> <dd>
<dd> ::= <digit> <digit>
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
(A) + 384 63 / 71 - 623 B) + 385 66 / 21 44 66 C) + 386 65 / 421 - 553 - 72
2)Koja od ponuđenih sekvenci u ENBF notaciji odgovara sintaksnoj definiciji izraz? Pretpostaviti da
je slovo sintaksna definicija za velika i mala slova abecede, cifra za cifre 0-9, a blanko za razmak.
izraz = operacija blanko operand dodatno.
dodatno = {"," blanko operand}.
operand = ("(" simbol ")" | ["#"] slovo | broj).
operacija = ("BGT" | "BEQ" | "JSR" | "MOV").
simbol = slovo [(cifra | slovo)].
broj = cifra {cifra}.
A) BGT (jmp), a, LAB
(B) JSR L, 54
C) MOV a, 1, (b), 2, (3)
3)Šta ispisuje sledeći program na programskom jeziku Python ukoliko se unese: acb ab ca?
d = {}
for str in input().split():
try:
str = str[::-1]
for s in str:
d[s] = d[s] + 1
except:
d[s] = 1
finally:
print(d)
(A) B) C)
{'b': 1} {'a': 1} {'a': 1}
{'b': 2, 'a': 1} {'a': 2, 'b': 1} {'a': 2, 'b': 1}
{'b': 2, 'a': 2, 'c': 1} {'a': 2, 'b': 1, 'c': 1} {'a': 2, 'b': 1}
4)Šta ispisuje sledeći program na programskom jeziku Python ukoliko se unese: a b c a?
def foo(d, s, num):
if num % 2 == 0:
d.add(s)
elif s in d:
d.remove(s)
return d
d = {'a', 'b', 'c'}
for num, str in enumerate(input().split()):
d = foo(d, str, num)
print(sorted(d))
(A) ['c'] B) ['a', 'c', 'c'] C) ['b', 'b', 'c', 'c']
5)Šta ispisuje sledeći program na programskom jeziku Python ukoliko se unese: 1 -30 2?
def process(elems):
left = [i for i in elems if i % 2]
right = [i if i > 0 else -i for i in elems ]
for val in elems:
if val not in left:
left.extend([val])
else:
right.append(left)
left = []
if len(left) > 0:
right.extend(left)
return right
data = [int(i) for i in input().split()]
print(process(data))
A) [[1, -30, 2], [1], [-30, 2]] (B) [1, 30, 2, [1], -30, 2] C) [1, 30, 2, [1], [-30, 2]]

Vous aimerez peut-être aussi