Sunteți pe pagina 1din 3

Nume : Gheorghe Elena-Cornelia

Specializare : IE, Anul II , Grupa 225 .

Examen structuri de date

Subiectul I : Tipurile abstracte de date

Un tip abstract de date este definit numai prin operatiile asociate (prin modul de
utilizare), fãrã referire la modul concret de implementare. Pentru programele
nebanale este utilã o abordare în (cel putin) douã etape:
- o etapã de conceptie (de proiectare), care include alegerea tipurilor abstracte de
date si algoritmilor necesari;
- o etapã de implementare (de codificare), care include alegerea structurilor
concrete de date, scrierea de cod si folosirea unor functii de bibliotecã.
Conceptul de tip abstract de date are un corespondent direct în limbajele
orientate pe obiecte, si anume o clasã abstractã sau o interfatã. In limbajul C
putem folosi acelasi nume pentru tipul abstract si aceleasi nume de functii;
înlocuirea unei implementãri cu alta poate însemna un alt fisier antet (cu
definirea tipului) si o altã bibliotecã de functii, dar fãrã modificarea aplicatiei
care foloseste tipul abstract.
Un tip de date abstract poate fi implementat prin mai multe structuri fizice de
date.
Trebuie spus cã nu existã un set de operatii unanim acceptate pentru fiecare tip
abstract de date, iar aceste diferente sunt uneori mari, ca în cazul tipului abstract
"listã" (asa cum se pot vedea comparând bibliotecile de clase din C++ si din
Java ).
Aceste tipuri abstracte pot fi implementate prin câteva structuri fizice de date
sau combinatii ale lor: vectori extensibili dinamic, liste înlãntuite, matrice,
arbori binari, arbori oarecare, vectori "heap", fiecare cu variante.
Conceperea unui program cu tipuri abstracte de date permite modificarea
implementãrii colectiei abstracte (din motive de performantã, de obicei), fãrã
modificarea restului aplicatiei.
Nume : Gheorghe Elena-Cornelia
Specializare : IE, Anul II , Grupa 225 .

Subiectul II: 2. Fiind dat un vector v de n elemente, atât n, cât și vectorul v,


fiind citite de la tastatură, se cere să se gaseasca minimul dintre elementele
vectorului.

#include <iostream>
sing namespace std;
int n, v[101],i,minim;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
cin>>v[i];
minim=v[1];
for(i=2;i<=n;i++)
if(v[i]<minim) minim=v[i];
cout<<minim;
return 0;
}

Subiectul III : 3. Scrieți un program care să calculeze produsul elementelor de


pe diagonala prinicipală a unei matrice pătratice.
#include <iostream>
using namespace std;
int a[101][101],i,j,p=1,n;
int main()
{
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++) cin>>a[i][j];
for(i=1;i<=n;i++)
p=p*a[i][i];
cout<<p;
return 0;
}
Nume : Gheorghe Elena-Cornelia
Specializare : IE, Anul II , Grupa 225 .

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