Documente Academic
Documente Profesional
Documente Cultură
Limbajul C++
Adrian Runceanu
Probleme rezolvate:
Solutii:
Problema 1:
#include <iostream.h>
int cmmdc(int a, int b)
{
int r;
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return b;
1
Laborator – programarea calculatoarelor
Limbajul C++
Adrian Runceanu
}
int cmmmc(int a, int b)
{
return(a*b/cmmdc(a,b));
}
void main(void)
{
int x,y,divizor,multiplu;
cout<<"Dati primul numar ";cin>>x;
cout<<"Dati al doilea numar ";cin>>y;
divizor=cmmdc(x,y);
cout<<"C.m.m.d.c este "<<divizor<<endl;
multiplu=cmmmc(x,y);
cout<<"C.m.m.m.c este "<<multiplu<<endl;
}
Problema 2:
Sa se scrie o functie care sa rezolve o ecuatie de gradul II, unde coeficientii
ecuatiei sunt dati ca parametri.
Functia principala va citi coeficientii a doua ecuatii si va afisa solutiile pentru fiecare
ecuatie in parte.
#include <iostream.h>
#include <math.h>
void ecuatie(float a, float b, float c)
{
float delta,x1,x2;
delta=b*b-4*c;
if(delta<0) cout<<"ecuatia are solutii complexe";
else
if(delta==0)
{
cout<<"ecuatia are doua radacini egale"<<endl;
x1=x2=-b/(2*a);
cout<<"x1= "<<x1<<endl;
cout<<"x2= "<<x2<<endl;
}
else
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
cout<<"ecuatia are urmatoarele radacini: "<<endl;
cout<<"x1= "<<x1<<endl;
cout<<"x2= "<<x2<<endl;
}
return;
}
void main(void)
{
int a1,b1,c1,a2,b2,c2;
cout<<"Dati coeficientii primei ecuatii "<<endl;
cout<<"Dati coeficientul a1 ";cin>>a1;
cout<<"Dati coeficientul b1 ";cin>>b1;
cout<<"Dati coeficientul c1 ";cin>>c1;
ecuatie(a1,b1,c1);
2
Laborator – programarea calculatoarelor
Limbajul C++
Adrian Runceanu
cout<<endl;
cout<<"Dati coeficientii celei de-a doua ecuatie "<<endl;
cout<<"Dati coeficientul a2 ";cin>>a2;
cout<<"Dati coeficientul b2 ";cin>>b2;
cout<<"Dati coeficientul c2 ";cin>>c2;
ecuatie(a2,b2,c2);
}
Problema 3:
Sa se scrie o functie care sa calculeze si sa afiseze urma unei matrice
patratice date ca parametru.
Urma unei matrice patratice este suma elementelor aflate pe diagonala
principala.
#include <iostream.h>
#include <math.h>
int urma(int a[10][10],int n)
{
int suma=0,i,j;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j) suma+=a[i][j];
return suma;
}
void main(void)
{
int a[10][10],i,j,n,u;
cout<<"Dati numarul de linii si coloane n = ";cin>>n;
cout<<"Dati elementele matricei "<<endl;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
cin>>a[i][j];
cout<<"Matricea data este: "<<endl;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++) cout<<a[i][j]<<" ";
cout<<endl;
}
u=urma(a,n);
cout<<"Urma matricei este "<<u;
}
Problema 4:
Sa se scrie o functie care sa verifice daca un numar intreg este sau nu
palindrom (este egal cu rasturnatul sau).
#include <iostream.h>
int palindrom(long int x)
{
long int z=0,y;
y=x;
while(x!=0){ z=z*10+x%10; x=x/10; }
if(z==y) return 1;
3
Laborator – programarea calculatoarelor
Limbajul C++
Adrian Runceanu
else return 0;
}
void main(void)
{
long int a,b;
cout<<"Dati numarul a= ";cin>>a;
if(palindrom(a)==1) cout<<"numarul "<<a<<" este palindrom"<<endl;
else cout<<"numarul "<<a<<" NU este palindrom"<<endl;
}
Problema 5:
Sa se scrie o functie care sa verifice daca un doua numere intregi sunt prime
gemene (sunt prime si diferenta in modul este egala cu 2).
#include <iostream.h>
#include <math.h>
void main(void)
{
long int a,b;
cout<<"Dati primul numar a= ";cin>>a;
cout<<"Dati al doilea numar b= ";cin>>b;
if( (prim(a)==1) && (prim(b)==1) && (abs(a-b)==2) )
cout<<"numerele "<<a<<" si "<<b<<" sunt prime gemene"<<endl;
else cout<<"numerele "<<a<<" si "<<b<<" NU sunt prime gemene"<<endl;
}
Problema 6:
Sa se scrie o functie care sa afiseze suma cifrelor unui numar intreg dat ca
paramentru.
#include <iostream.h>
long int n;
void cifre(long int n)
{
int s=0;
while(n!=0) { s+=n%10; n=n/10; }
cout<<"Suma cifrelor este "<<s<<endl;;
return;
}
void main(void)
{
4
Laborator – programarea calculatoarelor
Limbajul C++
Adrian Runceanu
cout<<"Dati numarul n= ";cin>>n;
cifre(n);
}
5. S se afi eze toate numerele superpalindroame mai mici sau egale cu o valoare
dat n. Numim num r palindorm un num r care este egal cu r sturnatul s u (num rul
cu cifrele de la dreapta la stânga din num rul ini ial). Numim superpalindrom un num r
care este palindrom atât el cât i p tratul s u.