Documente Academic
Documente Profesional
Documente Cultură
Cerinte:
a) Sa se afiseze numerele citite
b) Sa se afiseze numerele care au exact k divizori si suma acestora(
k dat)
void main()
{ int...
cout<<"k="; cin>>k;
n=0;
do
{ cout<<"x="; cin>>x;
if(x!=0)
{
n++;
V[n]=x;
}
}while(x!=0);
for(i=1;i<=n;i++;
cout<<V[i]<<" "; cout<<endl;
s=0;
for(i=1;i<=n;i++)
{
nr.div=0;
for(d=1;d<=V[i];d++)
if(V[i]%d==0)
nr.div++;
if(nr.div==k)
{
cout<<V[i]<<" ";
s=s+V[i];
}
}
cout<<endl<<s;
getch();
}
2. Se citesc de la tastatura n numere naturale mai mici decat 1000. Cerinte:
a) sa se afiseze numerele citite
b) sa se afiseze produsul cifrelor diferite de zero pentru fiecare
numar citit.
void main()
{
int ...
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
{
cout<<"V["<<i<<"]="; cin>>V[i];
}
for(i=1;i<=n;i++)
cout<<V[i]<<" ";
cout<<endl;
for(i=1;i<=n;i++)
{
p=1;
while(V[i]!=0)
{
uc=V[i]%10;
if(uc!=0)
p=p*uc;
V[i]=V[i]/10;
}
cout<<p<<" ";
}
getch();
}
3. Se citesc de la tastatura numerele naturale n si b. Cerinte:
a) Afisati conversia numarului din baza 10 in baza b
b) Explicati algoritmul utilizat
void main()
{
int b; long n;
cout<<"n="; cin>>n; cout<<"b="; cin>>b;
while(n!=0)
{
n=n%b;
nr=p*n+nr;
p=p*10;
n=n/10;
}
cout<<nr;
getch();
}
Se imparte numarul la baza pana cand se obtine catul 0. La primul pas ima
prtitul e numarul care se imparte la baza samd.
Rezultatul e dat de resturile luate in ordinea inversa obtinerii lor.
4. Scrieti un program care determina toate numerele naturale perfecte mai mici d
ecat un numar natural n, citit de la tastatura.
Un numar este perfect daca este egal cu suma divizorilor stricti mai mici deca
t el.
void main()
{
int n,i,d,s;
cout<<"n="; cin>>n;
for(i=1;i<=n;i++)
{
s=0;
for(d=1;d<=i/2;d++)
if(i%d==0)
s=s+d;
if(s==i)
cout<<i<<" ";
getch();
}
5. Dintr-un fisier text se citesc n numere naturale pozitive. Cerinte:
a) afisati numerele citite
b) afisati toate numerele care indeplinesc conditia ca oglinditul l
or sa fie numar par
void main()
{
int n, v[101], i, uc, inv;
ifstream f("nr.txt");
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
cout<<endl;
for(i=1;i<=n;i++)
{
copie=v[i];
inv=0;
while(copie!=0)
{
uc=copie%10; inv=inv*10+uc; copie=copie/10;
}
if(inv%2==0)
cout<<v[i]<<" ";
}
f.close();
}
6. Se citeste din fisierul date.in un sir format din numere naturale de cel mult
3 cifre. Cerinte:
a) eliminati din sir numerele care se repeta
b) afisati elementele sirului dat, in ordine crescatoare
void main()
{
int v[101],n,i,j,t;
ifstream f("date.in");
n=0;
while(f>>x)
{
n++;
v[n]=x;
}
for(i=1;i<=n-1;i++)
for(j=2;j<=n;j++)
if(v[i]>v[j])
{
t=v[i];
v[i]=v[j];
v[j]=t;
}
for(i=1;i<n;i++)
if(v[i]==v[j])
{
for(j=i+1;j<=n;j++)
v[j]=v[j+1];
n--;
}
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
getch();
f.close();
}
20. Nodurile pt care gr int=gr ext:
Void main() {
Int a[10][10],i,j,n,k[10],l[10];
Cout<< n= ; Cin >>n;
For(i=1,i<=n;i++) For(j=1;j<=n;j++)
{Cout<< a[ <<i<< ][ <<j<< ]= ; cin>>a[i][j]; }
For(i=1,i<=n;i++) { k=0; for(j=1;j<=n;j++) if(a[i][j]==1; k[i]++; }
for(j=1;j<=n;j++) { l[j]=0; For(i=1,i<=n;i++)
if(a[i][j]==1) l[j]++; }
for(i=1;i<=n;j++) if(k[i]==l[i])
cout<<i<< ;
getch(); }
10. din fisierul mat.in se citeste n, liniile, a) afis elem matricei b) suma elem
de pe diag princip si prod termenilor de pe diag sec
Void main(){
Int a[11][11],i,j,n,s=0,p=1;
Ifstream f( mat.in ); f>>n;
For(i=1,i<=n;i++) For(j=1;j<=n;j++)
f>>a[i][j];
For(i=1,i<=n;i++) For(j=1;j<=n;j++)
Cout<<a[i][j]<<
; cout<< endl;
For(i=1,i<=n;i++) {
S=s+a[i]i]; p=p+a[i][n-i+1];}
Cout<< suma= <<s<<endl;
Cout<< produsul= <<p;
Getch(); }
11. mat.in se citeste n si liniile. A) afisati matricea; b) cel mai mare div com de
pe fiecare linii
Void main(){
Int a[11][11],i,j,n,s=0,p=1;
Ifstream f( mat.in ); f>>n;
For(i=1,i<=n;i++) For(j=1;j<=n;j++)
f>>a[i][j];
For(i=1,i<=n;i++) For(j=1;j<=n;j++)
Cout<<a[i][j]<<
; cout<< endl;
For(i=1,i<=n;i++)
{ x=a[i][1]; For(j=1;j<=n;j++) {
Y=a[i][j]; while(x!=y) if(x>y) x=x-y;
Else if(y>x) y=y-x;}
Cout<<x<< ; } f.close; getch(); }
12. date.in cu n nr. a) sa se formeze si afis prima cf a fiecarui elem, b) afis da
aca nr e palindrom, nu in caz contrar.
Int x,uc,long,nr,inv,copie;
Ifstream f ( date.in ); nr=0;
While(f>>x)
{ while(x!=0)
{Uc=x%10; x=x/1-;}
Nr=nr*10+uc; inv=0; copie=nr;
While(copie!=0)
{uc=copie%10; inv=inv*10+uc; copie=copie/10;}
Cout<<nr<< ;
If(inv==nr) cout<< da ; else cout<< nu ;}
f.close();
13. s1 si s2. A) proprietatea de multime b) daca da, intersectia, diferenta, si
reuniunea
#include<string.h> #include<conio.h> void main() {
Int char s1[51],s2[51];
Cout<< s1= ; cin>>s1; Cout<< s2= ; cin>>s2;
N1=strlen(S1); N2=strlen(s2); ok=1;
For(i=0,i<=n1-1;i++) For(j=i+1;j<=n1;j++) if(s1[i]==s1[j]) ok=0;
For(i=1,i<=n2-1;i++) For(j=1;j<=n2;j++) if(s2[i]==s2[j]) ok=0;
If(ok==1)
{ cout<< intersectia este: ; For(i=0,i<=n1;i++) For(j=0;j<=n2;j++)
If(s1[i]==s2[j]) cout<<s1[i]<<
; cout<<endl;
Cout<< diferenta este: ; : ; For(i=0,i<=n1;i++) ok=1; For(j=0;j<=n2;j++)
If(s1[i]==s2[j]) ok=0; if(ok==1) cout<<s1[i]<<
;
Cout<< reuniunea este: ; For(i=0,i<=n1;i++) cout<<s1[i];
For(i=0;i<=n2;i++) { ok=1; For(j=0;j<=n1;j++) if(s2[i]==s1[j]) ok=0; }
If(ok==1); cout<< s2[i]<<
;}
V[i]=V[j];
V[j]=t;
}
for(i=1;i<=n;i++)
cout<<V[i]<<" ";
f.close();
getch();
}
{
cout<<"v["<<i<<"]=";
cin>>v[i];
}
smax=0;
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=n;j++);
{
s=s+v[j];
if(s>max)
{
smax=s;
x=i;
y=j;
}
}
cout<<smax<<x<<" "<<y<<" ";
}
18.graf. matricea se citeste din fisierul text g1.txt. afisati nod cu grad max
void main()
{
int n,i,j,a[10][10],g[10], max, s;
ifstream f("g1.txt");
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
f>>a[i][j];
}
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=n;j++)
s=s+a[i][j];
g[i]=s;
}
max=g[1];
for(i=1;i<=n;i++)
if(g[i]>max)
max=g[i];
cout<<"Nod de grad max:"<<endl;
for(i=1;i<=n;i++)
if(g[i]==max)
cout<<i<<" ";
f.close();
}
19.2 grafuri g1 si g2. matricile se citesc din g1.txt si g2.txt. afisati daca g2
e partial al grafului g1
Void main( )
{ int n1, n2, i, j, a1[10][10], a2[10][10];
ifstream f1( g1.txt );
ifstream f2( g2.txt ); f1>>n1;
for(i=1;i<=n1;i++) for(j=1;j<=n1;j++) f1>>a1[i][j]; f2>>n2; for(i=1;i<=n2;i++)