Professional Documents
Culture Documents
# 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.
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;
}