21. Drapel
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.
Date de iesire:
rosu galben verde
rosu galben albastru
#include <iostream.h>
void tipar(int culoare)
}
void main()
}
22. Se consideră un numar natural n. Să se creeze o listă simplu înlăntuită cu cifrele existente în transformarea sa în baza 2.
Exemplu: n=13 in baza 10 =1101 in baza 2
#include<fstream.h>
struct nod;
void main()
while(p)
}
23. Să se creeze un arbore binar alocat dinamic. Să se scrie parcurgerile sale în preordine, inordine si postordine.
Exemplu: pentru arborele generat de secventa 1 2 0 0 3 4 0 0 0
parcurgerile sunt:
preordine 1 2 3 4
inordine 2 1 4 3
postordine 2 4 3
#include<fstream.h>
fstream f("23.in",ios::in);
struct arb;
arb *r;
int x;
arb * cre()
else return 0;
}
void parcurgpre(arb *p)
}
void parcurgin(arb *p)
}
void parcurgpost(arb *p)
void main()
24. Se dă un graf neorientat cu n noduri, reprezentat prin matrice de adiacentă. Să se calculeze gradele nodurilor grafului si să se determine dacă există noduri izolate.
Exemplu: n=3
0 1 1 nodul 1 are gradul 2
1 0 0 nodul 2 are gradul 1
1 0 0 nodul 3 are gradul 1
nu există noduri izolate
#include<fstream.h>
fstream f("24.in",ios::in);
int grade[10],i,j,a[10][10],n,vb=1;
void citeste()
void main()
if(vb)cout<<"nu exista noduri izolate\n";
else cout<<"exista noduri izolate\n";
}
25. Se citeste o secventă de p numere întregi, ce sunt noduri ale uni graf neorientat cu n noduri, reprezentat prin matrice de adiacentă. Să se determine dacă secventa reprezintă un lant elementar.
Exemplu: n=3
s=(1 3 2) nu este lant elementar
s=(2 1 3) este lant elementar
#include<fstream.h>
fstream f("25.in",ios::in);
int s[10],p,i,j,vb=1,a[10][10],n,marca[10];
void citeste()
void main()
else vb=0;
if(vb)cout<<"este lant\n";
else cout<<"nu este lant\n";
26. Adiacenta
Se citeste un graf orientat dintr-un fisier text ce contine k arce, perechi de forma (x,y) unde x este nodul initial si y nodul final si un nod xo. Sa se afiseze toate nodurile adiacente cu nodul xo.
Date de intrare:
7
Date de iesire:
#include<fstream.h>
int n,a[20][20];
void main()
f>>xo;
for(i=1;i<=n;i++) if(a[i][xo])cout<<i<<','; cout<<"\b ";}
27. Aeroportul
Un grup de teroristi ce pregatesc o lovitura de stat, îsi propun sa ocupe un aeroport strategic. Ei detin harta zborurilor între cele n aeroporturi, adica m perechi (i,j) ce indica faptul ca exista zbor din aeroportul i în aeroportul j. Ei vor ocupa acel aeroport din care se poate ajunge în fiecare din celelalte aeroporturi, dar în care nu se poate ajunge. Scrieti un program care gaseste aeroportul care trebuie ocupat.
Date de intrare:
n=3
m=3
Date de iesire:
Aeroportul ocupat este 2
#include<iostream.h>
int i,j,n,m,plec[10],sosesc[10];
void main()
int vb=0;
i=1;
while (i<=n && !vb)
if ((plec[i]==n-1) && (sosesc[i]==0))
else i++;
if (!vb) cout<<"nu exista un aeroport cu conditiile cerute "<<endl;
28. Strazi si piete
Într-un oras exista n intersectii. Se citesc de la intrare perechi de forma (i j) cu semnificatia ca din intersectia i se poate ajunge direct în intersectia j fara a trece prin alte intersectii.
Numim piata o intersectie în care numarul strazilor care intra, plus numarul strazilor care ies din ea este cel putin 4. Piata centrala este intersectia cu cel mai mare numar de strazi care intra si care ies (este unica). Sa se afle toate pietele si sa se stabileasca piata centrala.
Observatie:
Sfârsitul perechilor este dat de perechea (0 0).
Date de intrare:
n=6
Date de iesire:
3 piete: 1, 2, 4
piata centrala: 4
#include<fstream.h>
#include<iostream.h>
int i,j,k,n,nr_piete,p[10],piata[10],piatac,max;
void main()
for(i=1;i<=n;i++)
}
cout<<nr_piete<<" piete: ";
for(i=1;i<=nr_piete;i++) cout<<p[i]<<" ";
cout<<endl;
cout<<"piata centrala:"<<piatac<<endl;
29. Orase
Mai multe orase sunt legate prin autostrazi(cu ambele sensuri). Nu toate orasele sunt legate intre ele prin legatura directa. Fiind dat orasul in care se afla un turist cu masina sa, se cere sa se afiseze orasele in care turistul poate ajunge. In fisier pe prima linie se afla numarul autostrazilor si orasul in care se afla turistul.Pe celelalte linii se afla orasele legate prin autostrazi.
Date de intrare:
3 5
2 5
3 2
1 4
Date de iesire:
2, 3
#include<fstream.h>
int n,a[20][20],s[20],o;
void df(int nod)
void main()
df(o);
}
30. Grad
Se citeste un graf orientat dintr-un fisier text ce contine arcele, perechi de forma (x,y) unde x este nodul initial si y nodul final. Sa se afiseze toate nodurile care au gradul interior egal cu gradul exterior.
Date de intrare:
1 2
1 4
2 5
3 2
3 1
5 1
2 4
Date de iesire:
1, 2, 5
#include<fstream.h>
int n,a[20][20],gri[20],gre[20];
void main()
for(i=1;i<=n;i++) if(gre[i]==gri[i]) cout<<i<<',';
cout<<"\b ";
}
|