Sunteți pe pagina 1din 4

Bilet nr.

20

1. Fie algoritmul: întreg n, x, max


citeşte n, x
max <- x
Care este complexitatea lui? pentru i <- 2, n execută
citeşte x
dacă (max < x) atunci
max <- x
sfârşit dacă
sfârşit pentru
scrie max

2. Funcţia f are definiţia alăturată. Ce valoare are f(100)? int f(int x){


  if ( x%6 == 0)
    return x;
  else 
    return f(x ­ 1);
}

3. Funcția alăturată int caut_interpolare(int v[], int inf, int sup, int x) {
int m;
implementează algoritmul
if ((x <= v[sup]) && (x >= v[inf]))
căutării prin interpolare do{
primind două limite (inf, . . . . . . . . . . .
sup) ale unui interval de if(x > v[m])
valori într-un vector v[] inf = m + 1;
else
sortat crescător și o sup = m - 1;
valoare x care se caută și }
returnează 1 dacă valoarea while((v[m] != x) && (inf < sup) && (v[inf] != v[sup]) && (x >=
a fost găsită și 0 în caz v[inf]) && (x <= v[sup]));
contrar. Completați if (v[m] == x)
punctele de suspensie return 1;
(. . . . . . .) cu instrucțiunile else
corespunzătoare. return 0;
}

4. Identificați funcția alăturată și spuneți int f(int v[], int a, int b, int s){
int i, p;
rolul ei. if (a >= b)
return v[a];
Observație: Funcția swap interschimbă swap(v, a, (a + b)/2);
între ele două elemente ale unui vector, p = a;
date prin indicii lor în vector. for (i = a + 1; i <= b; i++)
if (v[i] < v[a])
swap(v, ++p, i);
swap(v, a, p);
if(s - 1 == p)
return v[p];
else if (s - 1 < p)
return f(v, a, p - 1, s);
else
return f(v, p + 1, b, s);
}

5. Folosind cifrele {1,2,3} se generează cu metoda backtracking, în ordinea crescătoare a valorii, toate numerele
impare formate din trei cifre distincte. Astfel se obţin, în ordine, numerele: 123, 213, 231, 321. Folosind aceeaşi
metodă, se generează numerele impare formate din patru cifre distincte din mulţimea {1,2,3,4}. Care va fi al
5-lea număr generat ?

6. Un heap cu n noduri şi înălţime h are toate nodurile frunză pe ultimul nivel. Câte noduri frunză conţine?
FOAIA DE EXAMEN CARE VA FI PREDATĂ PROFESORULUI VA ARĂTA ASTFEL:

Bilet nr. 20
NUME PRENUME, an: XX, grupa: XXXXXXX Data: 23.06.2018

EXAMEN LA INGINERIA SISTEMELOR DE PROGRAME

Număr
Răspuns
test
1 O(n)
2 96
3 m = inf + (x - v[inf]) * (sup - inf) / (v[sup] - v[inf]);
Este funcția quickselect care determină cel de-al s-lea cel mai mic element al unei
4
mulţimi date în vectorul v[]
5 2413
6 2h
OBSERVAŢII:

1. Sunt 6 teste. Ele constau dintr-o întrebare. Răspunsul corect la întrebare aduce 1 punct la nota finală.

2. În nota finală 30% reprezintă nota de la laborator (i.e. maxim 3 puncte), 1 punct este din oficiu şi 6 puncte pot
aduce răspunsurile corecte la cele 6 teste.

4. LA EXAMEN NU SE SCRIE NIMIC PE FOAIA PRIMITĂ DE LA PROFESOR CU SUBIECTELE


Studentul va aduce o foaie proprie de examen pe care îşi va scrie:
 Numărul biletului (se va transcrie numărul biletului aflat pe testul primit la examen) într-un dreptunghi în
colţul din stânga sus
 numele şi prenumele complet şi cu majuscule,
 anul de studiu,
 grupa,
 data şi
 EXAMEN LA INGINERIA SISTEMELOR DE PROGRAME.
Apoi va desena un tabel (sau îl va aduce listat pe cel de pe pagina 4 a acestui document), în care va scrie pe scurt
răspunsurile corecte. Coloana 3 se lasă liberă, se va completa de profesor la evaluare.

5. Studenţii se vor prezenta cu minim 10 minute mai devreme la examen cu carnetul de student vizat la zi.
Nu se admit întârzieri.

6. În bancă, atunci când rezolvă subiectele de examen, studentul nu va avea asupra sa decât foaia de
examen, ciorna şi instrumente de scris. Telefoanele mobile, tabletele, genţile şi orice alte materiale se vor
depune într-un colţ al sălii de examen. Telefoanele mobile vor fi complet dezactivate. Orice încercare de
fraudă presupune eliminarea din examen.
Bilet nr. _ _ _

Student _ _ _ _ _ _ _ _ _ _ _ _ _ , an: _ _, grupa: _ _ _ _ _ _ _ _ Data: . . . . . . . . .

EXAMEN LA INGINERIA SISTEMELOR DE PROGRAME

Număr
Răspuns
test

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