Sunteți pe pagina 1din 4

UNIVERSITATEA BABE-BOLYAI

FACULTATEA DE MATEMATIC I INFORMATIC

Examen de licen septembrie 2015


Specializarea Informatic Romn
Subiectul 1
Scriei un program ntr-unul din limbajele de programare Python, C++, Java, C# care:
(a) Definete o clas Medicament avnd un atribut privat pre de tip real, un constructor public pentru
iniializarea preului i o metod public preVnzare() care returneaz preul medicamentului.
(b) Definete o clas MedicamentCompensat derivat din Medicament avnd un atribut privat
procentCompensare de tip real (reprezentnd procentul din preul medicamentului cu care acesta se
compenseaz), un constructor public pentru iniializarea preului medicamentului i a procentului de
compensare i de asemenea o metod public preVnzare() suprascris, returnnd preul de vnzare
al medicamentului compensat.
(c) Definete o funcie care returneaz o list de medicamente coninnd: un obiect de tip Medicament
avnd pre egal cu 100; un obiect de tip MedicamentCompensat avnd pre egal cu 70 i
procentCompensare egal cu 0.05; i un obiect de tip MedicamentCompensat avnd pre egal cu 90 i
procentCompensare egal cu 0.8.
(d) Definete o funcie care primete ca parametri o list de medicamente de tipul celei de la punctul (c)
i o valoare v se tip real i sorteaz descresctor dup preul de vnzare medicamentele din list al
cror pre de vnzare este mai mare dect v. Medicamentele cu pre de vnzare mai mic sau egal cu v
rmn n list pe poziiile iniiale.
(e) Definete o funcie care primete ca parametru o list de medicamente de tipul celei descrise la (c) i
terge din list medicamentele al cror pre de vnzare este mai mic dect 40.
(f) Construiete n funcia principal a programului lista indicat la punctul (c), apeleaz funcia de la
(d), apoi cea de la (e) i apoi afieaz pe ieirea standard preurile de vnzare ale medicamentelor
rmase n list.
(g) Pentru tipul de dat list utilizat n program, scriei specificaiile operaiilor folosite.
Not
Nu se vor folosi containere sortate.
Nu se vor defini alte metode dect cele specificate n enun.
Nu se vor folosi metode de sortare predefinite.
Pentru tipul de dat List putei folosi biblioteci existente (Python, C++, Java, C#). n cazul n care nu
folosii biblioteci existente, specificai toate operaiile din interfaa listei.
Subiectul 2
a. Creati o baza de date relationala, cu toate tabelele n a treia forma normala. Baza de date trebuie sa retina
urmatoarele informatii despre festivalul Untold:
scene: id scen, denumire, adresa
artisti: id artist, nume, tara de origine, gen muzical (id gen muzical, denumire, descriere), an de
debut, scena pe care cnt artistul, ziua i ora de ncepere a concertului; un artist are o singur
reprezentaie n timpul festivalului;
bilete: cod bilet, tip bilet (id tip bilet, pret, denumire: early bird, full price sau pay with blood), vrsta
cumparator, lista artistilor la concertele carora s-a intrat cu biletul respectiv.
Justificati ca tabelele identificate sunt n a treia forma normal utiliznd dependenele funcionale.
b. Pentru baza de date de la punctul a, scrieti urmatoarele interogari folosind SQL SAU algebra relationala:

b1. Programul festivalului (nume artist, ora ncepere concert) din 1 august 2015 pe scena Cluj Arena.
b2. Scenele (numele) pe care s-a cntat muzica electro hip hop I care au gzduit concerte la care a venit cel
putin 1 participant trecut de 70 de ani.
b3. Artistul (numele) care a avut cei mai multe participani cu vrsta ntre 18 i 24 de ani cu bilete de tip pay
with blood.
Subiectul 3
3.1 n programul de mai jos considerm c toate instruciunile se execut fr eroare iar pipe-urile sunt
nchise corect. Rspundei la urmtoarele ntrebri:
1 int main() {
a) Ce reprezint valorile variabilelor
2
int f, r, x, p[2];
x i f?
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

x = getpid();
pipe(p);
f = fork();
if (x == getpid())
close(p[1]);
if (f == 0 && x == getpid()) {
close(p[0]);
write(p[1], &x, sizeof(x));
}
if (f > 0)
read(p[0], &r, sizeof(r));
if (getppid() == x && f > 0) {
close(p[1]);
read(p[0], &r, sizeof(r));
printf("%d\n", r);
exit(0);
}
if (x == getppid()) {
close(p[0]);
f++;
write(p[1], &f, sizeof(f));
exit(0);
}
if (getppid() == 0)
printf("%d\n", f);

// 1st if
// 2nd if

b) Explicai detaliat fiecare


instruciune if i blocul aferent
acesteia.
c) Ce se afieaz la ieirea standard
la execuia acestui program i de ce?

// 3rd if
// 4th if

// 5th if

// 6th if

printf("%d\n", r);
}

3.2 Se d scriptul shell UNIX de mai jos:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

rm tmp
echo -n > tmp
for f in $*
do
if test ! -f $f
then
echo $f nu exista ca fisier
continue
fi
rm $f
if [ ! -f $f ]
then
echo $f a fost sters cu succes
fi
ls $f >> tmp
done
x=`cat tmp | grep -c ^.*$`
echo rezultat: $x

a) Explicai care este diferena dintre


instruciunea if de pe linia 5 i
instruciunea if de pe linia 11.
b) Explicai n detaliu linia 17.
c) Ce reprezint (i explicai i de ce)
valoarea variabilei x afiat la final?
d) Rescriei liniile de cod de la 10 la
14 astfel nct efectul execuiei sa
rmn acelai, dar folosind o
comand UNIX mai puin.

Not: Toate subiectele sunt obligatorii. Fiecare subiect se noteaz ntre 1 i 10 de ctre ambii
corectori.
Timp de lucru: 3 ore.

BAREM
INFORMATIC
Subiect 1 (Algoritmic i Programare):
Oficiu 1p
Definirea clasei Medicament 0.75p din care
atribut 0.25
constructor 0.25
metoda preVnzare() - 0.25
Definirea clasei MedicamentCompensat 1.75p din care
relaia de motenire 0.25
constructor 0.5
atribut 0.25
metoda preVnzare() 0.75
Funcia de la punctul c) 1p din care
signatura corect i declarare list- 0.25p
creare obiecte 0.25p
adugare obiecte n list - 0.25p
returnare rezultat - 0.25p
Funcia de la punctul d) 1.5p din care
signatura corect - 0.25p
sortare list conform cerinelor 1p
returnare rezultat - 0.25p
Funcia de la punctul e) 1.5p din care
signatura corect - 0.25p
parcurgere list i tergere elemente cerute 1p
returnare rezultat - 0.25p
Program 1p din care
apel funcii 0.25p
afiarea preuri din list 0.75p
Specificaiile operaiilor folosite din tipul de dat List 1.5p

Subiect 2 (Baze de date):


1 punct oficiu
a) 2p justificare
2p tabele corecte in 3NF
b) b1 - 1p
b2 - 2p
0.5p pentru scenele cu muzica electro hip hop
0.5p pentru scenele care au gazduit concerte cu cel putin un participant peste 70 ani
1p instructiunea finala
b3- 2p
1p grupare dupa artisti, calculare numar participanti cu conditie
1p instructiunea finala

Subiect 3 (Sisteme de operare):


Oficiu: 1p
3.1
a) 0.5p valoarea variabilei x, 0.5p valoarea variabilei f

b) 0.5p x 6 if-uri
c) Se afieaz valoarea 1 + explicaie de ce: 1p
3.2
a) nu sunt diferite 1p
b) explicaii detaliate 1p
c) numrul de fiiere care nu au putut fi terse 1p
d) if rm $f, se elimin astfel folosirea comenzii test sau [ 1p

S-ar putea să vă placă și