You are on page 1of 9

Problema 19

# include <iostream.h>
float v[100];
unsigned int n, i;

void citire()
{
cout<<"n="; cin>>n;
for (i=0; i<n; i++)
{cout<<"v["<<i<<"]=";
cin>>v[i];
}
}
void afisare()
{
cout<<"Multimea: {";
for (i=0; i<n; i++)
cout<<v[i]<<" ";
cout<<"}"<<endl;
}
void suma_max()
{
cout<<"Submultimea: {";
float S=0;
for (i=0; i<n; i++)
if (v[i]>0)
{
cout<<v[i]<<" ";
S=S+v[i];
}
cout<<"}"<<endl;
cout<<"Smax="<<S<<endl;
}

int main()
{
citire();
afisare();
suma_max();
return 0;
}

Problema 20

#include<iostream.h>
#include<math.h>

int n,x[100], k;

void init()
{
x[k]=0;
}
int succesor()
{
if(x[k]<sqrt(n))
{
x[k]=x[k]+1;
return 1;
}
else return 0;
}

int valid()
{
int i, ok=1, S=0;
for(i=1;i<k;i++)
if(x[k]==x[i]) ok=0;
if (k>1)
if (x[k]<x[k-1])
ok=0;
for (i=1; i<=k; i++)
S=S+x[i]*x[i];
// cout<<k<<S<<endl;
// getch();
if (S>n)
ok=0;
return ok;
}

int solutie()
{
int i, S=0;
for (i=1; i<=k; i++)
S=S+x[i]*x[i];
return (S==n);
}

void tipar()
{
int i;
cout<<n<<"=";
for(i=1;i<=k-1;i++)
cout<<x[i]<<"^2+";
cout<<x[k]<<"^2"<<endl;
}
void back()
{
int as, ev;
int k=1;
init();
while(k>0)
{

do{
as=succesor();
if (as)
ev= valid();
} while (as &&!ev);
if (as)
if (solutie())
tipar();
else
{
k++;
init();
}
else k--;
}
}
void BKT ()
{
int as,ev;
k=1;
init ();
while(k>0)
{ do
{ as=succesor ();
if(as)
ev=valid ();
}while(as&&!ev);
if(as)
if(solutie ())
tipar ();
else {
k++;
init ();
}
else k--;
}
}
int main()
{
cout<<"n=";
cin>>n;
BKT();
return 0;
}

Problema 21
# include <iostream.h>
float v[100];
unsigned int n, i;

void citire()
{
cout<<"n="; cin>>n;
for (i=0; i<n; i++)
{cout<<"v["<<i<<"]=";
cin>>v[i];
}
}
void afisare()
{
cout<<"Multimea: {";
for (i=0; i<n; i++)
cout<<v[i]<<" ";
cout<<"}"<<endl;
}
void sortare()
{
int ok; float aux;
do{
ok=0;
for (i=0; i<n-1; i++)
if (v[i]>v[i+1])
{ aux=v[i];
v[i]=v[i+1];
v[i+1]=aux;
ok=1;
}
} while(ok);
}

void produs_max()
{
int nn=0;
for (i=0; i<n; i++)
if (v[i]<0)
nn++;
if (nn%2!=0)
nn--;
cout<<"Submultimea: {";
float P=1;
for (i=0; i<nn; i++)
{ cout<<v[i]<<" ";
P=P*v[i];
}
for (i=0; i<n; i++)
if (v[i]>0)
{ cout<<v[i]<<" ";
P=P*v[i];
}
cout<<"}"<<endl;
cout<<"Pmax="<<P<<endl;
}
int main()
{
citire();
afisare();
sortare();
produs_max();
return 0;
}
Problema 23

# include <iostream.h>

unsigned int n, m;

int main()
{
cout<<"n="; cin>>n;
cout<<"m="; cin>>m;
if (m==n*(n-1)/2)
cout<<"graful este complet!"<<endl;
else cout<<"graful nu este complet!"<<endl;
return 0;
}
Problema 25

# include <fstream.h>
ifstream f ("g1.txt");
unsigned int n, m, a[50][50], i, j, d[50];

void citire()
{ f>>n;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
f>>a[i][j];
}

void afisare()
{
cout<<"Matricea de adiacenta:"<<endl;
for (i=1; i<=n; i++)
{ for (j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}

void grade()
{
for (i=1; i<=n; i++)
{
d[i]=0;
for (j=1; j<=n; j++)
d[i]=d[i]+a[i][j];
}
max=d[1];
for (i=2; i<=n; i++)
if (d[i]>max)
max=d[i];
cout<<"Gradul maxim="<<max<<endl;
cout<<"Nodul / nodurile de grad maxim: ";
for (i=1; i<=n; i++)
if (d[i]==max)
cout<<i<<" ";
}
int main()
{
cout<<"Nr. de noduri n="; cin>>n;
cout<<"Nr. de muchii m="; cin>>m;
grade();
return 0;
}
Problema 26

# include <fstream.h>
ifstream f ("g1.txt");
ifstream g ("g2.txt");
unsigned int n, m, a[50][50], b[50][50], i, j;

void citire()
{ /* G1 */
f>>n;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
f>>a[i][j];
f.close();
/* G2 */
g>>m;
for (i=1; i<=m; i++)
for (j=1; j<=m; j++)
g>>b[i][j];
g.close();

void afisare()
{
cout<<"Matricea de adiacenta pentru G1:"<<endl;
for (i=1; i<=n; i++)
{ for (j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"Matricea de adiacenta pentru G2:"<<endl;
for (i=1; i<=m; i++)
{ for (j=1; j<=m; j++)
cout<<b[i][j]<<" ";
cout<<endl;
}
}

int graf_partial ()
{ int ok=1;
if (n==m)
{
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if ((a[i][j]==0) &&(b[i][j]==1))
ok=0;
}
else ok=0;
return ok;
}
int main()
{
citire();
afisare();
if (graf_partial())
cout<<"G2 este graf partial al lui G1"<<endl;
else
cout<<"G2 nu este graf partial al lui G1"<<endl;
return 0;

Problema 27

# include <fstream.h>
ifstream f ("graf.txt");
unsigned int n, m, a[50][50], i, j;

void citire()
{ /* G */
f>>n;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
f>>a[i][j];
f.close();
}

void afisare()
{
cout<<"Matricea de adiacenta pentru G:"<<endl;
for (i=1; i<=n; i++)
{ for (j=1; j<=n; j++)
cout<<a[i][j]<<" ";
cout<<endl;
}
}

void calcul_gr ()
{ int di[50], de[50];
for (i=1; i<=n; i++)
{ de[i]=0;
for (j=1; j<=n; j++)
de[i]=de[i]+a[i][j];
}
cout<<"Grade exterioare:";
for (i=1; i<=n; i++)
cout<<de[i]<<" ";
cout<<endl;
cout<<"Grade interioare:";
for (j=1; j<=n; j++)
{ di[j]=0;
for (i=1; i<=n; i++)
di[j]=di[j]+a[i][j];
}
for (i=1; i<=n; i++)
cout<<di[i]<<" ";
cout<<endl;
cout<<"Nodurile cu gradul ext = gradul int: ";
int nr=0;
for (i=1; i<=n; i++)
if (di[i]==de[i])
{ cout<<i<<" ";
nr++;
}
if (nr==0)
cout<<" ------ Nu exista------"<<endl;
}

int main()
{
citire();
afisare();
calcul_gr();
return 0 ;
}

/*Într-un fi?ier text sunt p?strate informa?ii despre elevii unei clase.
Pe primul rând este înregistrat num?rul n de elevi din clas?.
De pe urm?toarele n linii se vor citi pentru fiecare elev: numele ?i CNP-ul.
S? se afi?eze numele ?i sexul celui mai mic elev din clas?.
Dac? sunt mai mul?i elevi cu aceea?i vârst? minim?, se vor afi?a
to?i elevii respectivi.

Codul numeric personal este format din 13 caractere, astfel:


saallzzxxxxxx, unde s precizeaz? sexul persoanei respective
?i poate lua valoarea 1 pentru masculin ?i 2 pentru feminin,
iar aa reprezint? anul , ll reprezinta luna, zz reprezint? ziua din data de na?tere.*/
#include<iostream.h>
#include<fstream.h>
#include<string.h>
struct elev
{
char nume[30],cnp[14];
};
int main()
{
int n,i;
elev a[30];
ifstream f("elev.txt");
char s1[2]="",s2[3]="",s3[3]="",s4[3]="";
f>>n;
f.get();
for(i=1;i<=n;i++)
{

f.get(a[i].nume,30);
f.get();
f.get(a[i].cnp,14);
f.get();
}

for(i=1;i<=n;i++)cout<<a[i].nume<<" "<<a[i].cnp<<endl;
f.close();
for(i=1;i<=n;i++)
{
strncat(s2,a[i].cnp+ 1,2);
strncat(s3,a[i].cnp+3,2);
strncat(s4,a[i].cnp+5,2);
cout<<s4<<" "<<s3<<" "<<s2<<endl;
strcpy(s2,"");
strcpy(s3,"");
strcpy(s4,"");
}
//for(i=1;i<=n;i++) cout<<s4<<" "<<s3<<" "<<s2<<endl;
cout<<endl;

return 0;
}

You might also like