Sei sulla pagina 1di 28

Universitatea “Constantin Brâncuşi” Târgu-Jiu 14

Facultatea de Inginerie
Departamentul de Automatică, Energie şi Mediu

PROIECTAREA
ALGORITMILOR

Lect. univ. dr. Adrian Runceanu


1
14

Curs recapitulativ

Structura biletelor de
examen

Proiectarea Algoritmilor - curs 2


14

Structura biletelor de examen


Subiect I - Grile cu alegere multiplă. Identificați
litera care corespunde răspunsului corect.

Subiect II – Enunțul unei probleme având un


exemplu specificat.

Proiectarea Algoritmilor - curs 3


14

Probleme recapitulative

Subiect I - Grile cu alegere multiplă.


Identificați litera care corespunde
răspunsului corect.

Proiectarea Algoritmilor - curs 4


14

Grila 1
Un arbore cu 9 noduri numerotate de la 1 la 9
este memorat cu ajutorul vectorului de ”tati”
TATA = (9,3,4,7,3,9,0,7,2).
Multimea tuturor nodurilor de tip frunza este:

a. { 8, 6, 1, 5 }
b. { 1, 6 }
c. { 8 }
d. { 1, 6, 8 }
Solutie: a)
Proiectarea Algoritmilor - curs 5
14

Grila 2
Care este numarul minim de muchii ce trebuie
eliminate astfel incat graful neorientat cu 6 noduri si
urmatoarea matrice de adiacenta sa fie eulerian?
0 1 1 1 1 0
1 0 0 1 1 1 a. 4
1 0 0 1 0 0
b. 1
1 1 1 0 1 0
c. 0
1 1 0 1 0 1
d. 2
0 1 0 0 1 0

Solutie: c)
Proiectarea Algoritmilor - curs 6
14

Grila 3
Se considera definitia: a. 1
long f(int n) b. -3
{ c. -4
d. 4
if (n == 0) return 1;
else
Solutie: d)
if (n == 1) return 4;
else return f(n-1) - f(n-2);
}
Stabiliti ce valoare returneaza apelul f(7).
Proiectarea Algoritmilor - curs 7
14

Grila 4
Intr-o lista simplu inlantuita circulara, fiecare
element retine in campul adr adresa elementului urmator
din lista. Daca p si q sunt adresele a doua elemente
distincte din lista astfel incat sunt satisfacute
conditiile p == q -> adr si q == p -> adr. Atunci lista are:

a. un numar impar de elemente


b. exact 2 elemente
c. cel putin 3 elemente
d. exact 1 element
Solutie: b)
Proiectarea Algoritmilor - curs 8
14

Probleme recapitulative

Subiectul II – Enunțul unei probleme având


un exemplu specificat.

Proiectarea Algoritmilor - curs 9


14

Problema 1:

Enunţ:
Sa se scrie o functie recursiva care
primeste un parametru n numar natural si
afiseaza cifrele sale in ordinea din el si
separate prin cate un spatiu.

Proiectarea Algoritmilor - curs 10


14
#include<iostream>

void afis(int n)
{
if(n>0)
{
afis(n/10);
cout<<n%10<<" ";
}
}
Proiectarea Algoritmilor - curs 11
14
int main()
{
cout<<“Dati n = ”;
cin>>n;
afis(n);
return 0;
}

Proiectarea Algoritmilor - curs 12


14

Problema 2:

Enunţ:
Scrieti o functie care primeste ca
parametru primul nod al unei liste liniare
simplu inlantuite si inverseaza primul nod
al listei cu ultimul. Primul nod al listei
rezultate va fi returnat ca rezultat al
functiei.

Proiectarea Algoritmilor - curs 13


14
nod *invers(nod *prim)
{
nod *p, *u;
p=prim;
while(p->leg->leg) p=p->leg;
u=p->leg;
u->leg=prim->leg;
p->leg=prim;
prim->leg=0;
prim=u;
return prim;
}
Proiectarea Algoritmilor - curs 14
14

Problema 3:

Enunţ:
Se citesc 2 grafuri neorientate, unul
cu n noduri si m muchii, iar celalalt cu k
varfuri si l muchii, ambele date prin vectorul
muchiilor.
Sa se determine daca al doilea graf este
subgraf al primului.

Proiectarea Algoritmilor - curs 15


14

#include<fstream.h>
#include<iostream.h>

ifstream f("date.in");
ifstream g("date2.in");
int a[100][100],b[100][100],n,m,k,l;

Proiectarea Algoritmilor - curs 16


14
void citire()
{
int x,y,i;
f>>n>>m;
for(i=1;i<=m;i++)
{
f>>x>>y;
a[x][y]=1;
a[y][x]=1;
}
Proiectarea Algoritmilor - curs 17
14

g>>k>>l;
for(i=1;i<=l;i++)
{
g>>x>>y;
b[x][y]=1;
b[y][x]=1;
}
}

Proiectarea Algoritmilor - curs 18


14

int subgraf()
{
for(int i=1;i<=k;i++)
for(int j=1;j<=k;j++)
if(a[i][j]!=b[i][j]) return 0;
return 1;
}

Proiectarea Algoritmilor - curs 19


14

int main()
{
citire();
if(subgraf()) cout<<"da";
else cout<<"nu";
}

Proiectarea Algoritmilor - curs 20


14

Sa se scrie o functie recursiva si o functie


iterativa de calcul a valorii unui polinom de grad
n si coeficienti întregi într-un punct x dat.

Exemplu:

P(x)=3x2-5x+7 x=2 P(2)=9

Proiectarea Algoritmilor - curs 21


14

Sa se verifice, folosind o functie recursiva, daca


un vector cu n elemente întregi contine cel putin
o valoare pozitiva.

Exemplu:
n=4 v=(-3, 8, 2, -5) DA
v=(-4, -7, -2, -8) NU

Proiectarea Algoritmilor - curs 22


14

Avem la dispozitie 6 culori: galben, rosu, verde,


albastru, orange si mov. Sa se precizeze toate
drapelele tricolore care se pot proiecta stiind ca:

 cele trei culori sunt distincte


 orice drapel are culoarea din mijloc galben
sau verde

Solutii posibile:
rosu galben verde
rosu galben albastru
...

Proiectarea Algoritmilor - curs 23


14

Se considera un numar natural n. Sa se creeze


o lista simplu înlantuita cu cifrele existente în
transformarea sa în baza 2.

Exemplu:

n=1310=11012

Proiectarea Algoritmilor - curs 24


14

Sa se creeze un arbore binar alocat dinamic.


Sa se scrie parcurgerile sale în preordine,
inordine si postordine.

Exemplu: pentru arborele generat de secventa


120034000
parcurgerile sunt: preordine 1 2 3 4
inordine 2 1 4 3
postordine 2 4 3 1
Proiectarea Algoritmilor - curs 25
14
Se citeste o secventa de p numere întregi, ce
sunt noduri ale uni graf neorientat cu n noduri,
reprezentat prin matrice de adiacenta. Sa se
determine daca secventa reprezinta un lant
elementar.

Exemplu: n=3 011


100
100
p=3 132 nu este lant elementar
p=3 213 este lant elementar
Proiectarea Algoritmilor - curs 26
14
Se citeste un graf orientat dintr-un fisier text ce
contine arcele, perechi de forma (x,y) unde x
este nodul initial si j nodul final. Sa se afiseze
toate nodurile care au gradul interior egal cu
gradul exterior.
Exemplu:
12 1, 2, 5
14
25
32
31
51
24
Proiectarea Algoritmilor - curs 27
14

Baftă!

Proiectarea Algoritmilor - curs 28

Potrebbero piacerti anche