Sunteți pe pagina 1din 10

/*Curs 2

1.
Fiind furnizate trei numere ntregi, sa se stabileasca daca acestea pot fi
masurile unui triunghi si, n caz afirmativ, sa se calculeze fie perimetrul, fie
aria, fie sa se detrmine natura triunghiului dupa laturi (isoscel, echilateral,
oarecare) n functie de dorinta celui care utilizeaza programul. n cazul unei erori
, adica, laturile nu pot forma un triunghi, se cere afisarea unui mesaj.
*/
#include <iostream>
#include <cmath>
using namespace std;
int a,b,c,p;
float sp, ar;
int main()
{
int ok=1;
cout<<"Dati cele 3 laturi: \na= ";
cin>>a;
cout<<"\nb= ";
cin>>b;
cout<<"\nc= ";
cin>>c;
if(a+b<=c || b+c<=a || c+a<=b)
ok=0;
if(ok==1)
p=a+b+c;
if(ok==1)
{
sp=(float)p/2;
ar=(float)sqrt(sp*(sp-a)*(sp-b)*(sp-c));
}
if(ok==1)
{ cout<<"\nPerimetrul triunghiului este "<<p<<" si aria sa este egala cu "
<<ar;
if(a==b || b==c || c==a)
{
if(a==b && b==c)
cout<<"\nTriunghiul este echilateral";
else
cout<<"\nTriunghiul este isoscel";
}
else
cout<<"\nTriunghiul este oarecare";
}
else
cout<<"\nNumerele date nu pot fi laturile unui triunghi";
return 0;
}
/*Curs 2
2.
Sa se calculeze valoarea functiei f definita pe multimea numerelor reale
pentru un x citit:
| x-3, ptr. x<5
F=| x+1, ptr. 5<=x<=25
| x-5x+6,ptr. x>25
*/

#include <iostream>
#include <cmath>
using namespace std;
float x,f;
int main()
{
cout<<"Dati valoarea lui x: "; cin>>x;
if(x<5)
f=x-3;
else
{
if(x<=25)
f=x+1;
else
f=x-5*x+6;
}
cout<<"\nValoarea functiei pentru x= "<<x<<" este "<<f;
return 0;
}
/*Curs 2
3.
Sa se afiseze suma cifrelor unui numar natural dat.
Indicatie: Se detaseaza fiecare cifra de la sfrsitul numarului calculnd restul mpa
rtirii numarului la 10; numarul ramas dupa desprinderea cifrei este ctul mpartirii
la 10.
*/
#include <iostream>
#include <cmath>
using namespace std;
int x,c,sc,cx;
int main()
{
cout<<"Dati numarul x: ";cin>>x;
sc=0;
cx=x;
while(x>0)
{
c=x%10;
x=x/10;
sc=sc+c;
}
cout<<"\nSuma cifrelor lui "<<cx<<" este "<<sc;
return 0;
}
/*Curs 2
4.
Fiind data valoarea unui numar natural, se cere sa se tiparesca aceasta
valoare n scriere romana.
Indicatie: n algoritm se urmareste scrierea si detasarea ordinelor romane de la c
ifrele cele mai mari pna la cele mai mici (M=1000, C=100, X=10, I=1), evidentiind
separat cifrele D=500, L=50, V=5 si grupurile CM=900, XC=90, IX=9 care pot sa a
para o singura data n reprezentarea romana a numarului

*/
#include <iostream>
#include <cmath>
using namespace std;
int x,cx,c;
char* u,*z,*s,*m;
int main()
{
cout<<"Dati numarul x: ";cin>>x;
cx=x;int i=1;
while(x>0)
{
c=x%10;
x=x/10;
if(i==1)
{
if(c==1)
u="I ";
if(c==2)
u="II ";
if(c==3)
u="III ";
if(c==4)
u="IV ";
if(c==5)
u="V ";
if(c==6)
u="VI ";
if(c==7)
u="VII ";
if(c==8)
u="VIII ";
if(c==9)
u="IX ";
if(c==0)
u=" ";
}
if(i==2)
{
if(c==1)
z="X ";
if(c==2)
z="XX ";
if(c==3)
z="XXX ";
if(c==4)
z="LX ";
if(c==5)
z="L ";
if(c==6)
z="LX ";
if(c==7)
z="LXX ";
if(c==8)
z="LXXX ";
if(c==9)
z="XC ";

if(c==0)
z=" ";
}
if(i==3)
{
if(c==1)
s="C ";
if(c==2)
s="CC ";
if(c==3)
s="CCC ";
if(c==4)
s="CD ";
if(c==5)
s="D ";
if(c==6)
s="DC ";
if(c==7)
s="DCC ";
if(c==8)
s="DCCC ";
if(c==9)
s="CM ";
if(c==0)
s=" ";
}
if(i==4)
m="M";
i++;
}
if(cx<10)
cout<<"Scrierea romana a numarului "<<cx<<" este "<<u;
else
{
if(cx<100)
cout<<"Scrierea romana a numarului "<<cx<<" este "<<z<<u;
else
{
if(cx<1000)
cout<<"Scrierea romana a numarului "<<cx<<" este "<<s<<z<<u;
else
cout<<"Scrierea romana a numarului "<<cx<<" este "<<m<<s<<z<<u;
}
}
return 0;
}
/*Curs 2
5.
Sa se calculeze suma S=1!+2!+3!+ +n!.
*/
#include <iostream>
using namespace std;
int n,s=0;
int main()
{

cout<<"Dati numarul n: "; cin>>n;


int nr=1;
for(int i=1; i<=n; i++)
{
nr=nr*i;
s=s+nr;
}
cout<<"1!+2!+...+"<<n<<"!="<<s;
return 0;
}
/*Curs 2
6.
Sa se calculeze produsul P=2*4*6*8*10* *n, unde n=2k.
*/
#include <iostream>
using namespace std;
int n,p=1;
int main()
{
cout<<"Dati numarul n: "; cin>>n;
for(int i=2;i<=n;i+=2)
p=p*i;
cout<<"Produsul 2*4*...*"<<n<<"="<<p;
return 0;
}
/*Curs 2
7.
Sa se calculeze suma S=12+22+32+42+ +n2.
*/
#include <iostream>
using namespace std;
int n,s=0;
int main()
{
cout<<"Dati numarul n: "; cin>>n;
for(int i=1;i<=n;i++)
s=s+i*i;
cout<<"Suma patratelor numerelor mai mici decat "<<n<<" este "<<s;
return 0;
}
/*Curs 2
8.
Sa se calculeze suma S=1-1*2+1*2*3- ..1*2*3* *n.
*/
#include <iostream>
using namespace std;
int n,s,nr;
int main()

nr=1;s=0;
cout<<"Dati numarul n: "; cin>>n;
for(int i=1;i<=n;i++)
{
nr=nr*i;
s=s+nr;
nr=0-nr;
}
cout<<"suma este: "<<s;
return 0;

}
/*Curs 2
9.
Sa se transforme un numar din baza 10 n baza p<10.
*/
#include <iostream>
using namespace std;
int n,p,r[20],nr;
int main()
{ int i=1;
cout<<"Dati numarul n: "; cin>>n; int cn=n;
cout<<"\n Dati baza p: "; cin>>p;
while(n>0)
{
r[i]=n%p;
n=n/p;
i=i+1;
}
for(int j=i;j>=1;j--)
nr=nr*10+r[j];
cout<<"Numarul in baza 10-> "<<cn<<" este egal cu "<<nr<<" in baza "<<p;
return 0;
}
/*Curs 2
10.
Sa se transforme un numar din baza p<10 n baza 10.
*/
#include <iostream>
using namespace std;
int n,p,c[20],put,nr;
int main()
{ int i=0;
cout<<"Dati numarul n: "; cin>>n; int cn=n;
cout<<"\n Dati baza p: "; cin>>p;
while(cn>0)
{
c[i]=cn%10;
cn=cn/10;
i++;
}
for(int j=i;j>=0;j--)

{
for(int z=2;z<=j;z++)
put=p*p;
if(j>1)
nr=nr+c[j]*put;
if(j==1)
nr=nr+c[j]*p;
if(j==0)
nr=nr+c[j];
}
cout<<nr;
return 0;
}
/*Curs 4
2.
Folosind o functie sa se realizeze un program care calculeaza urmatoarea
expresie:
(1+ 1/2 + 1/3+ 1/4 +...+1/n)n , unde n este un ntreg dat de la tastatura.
*/
#include <iostream>
using namespace std;
int n,p,c[20],put,nr;
float f(int n)
{ float s=0;
for(float i=1;i<=n;i++)
s=(float)s+1/i;
for(int i=2;i<=n;i++)
s=s*s;
return s;
}
int main()
{
cout<<"Dati nr n: ";cin>>n;
cout<<"Valoarea functiei f(n) este: "<<f(n);
return 0;
}
/*Curs 4
3.
Sa se realizeze un program care calculeaya prin intermediul a doua funct
ii cmmdc-ul si cmmmc-ul a dua numere date de la tastatura.
*/
#include <iostream>
using namespace std;
int n,p,c[20],put,nr;
int cmmdc(int a, int b)
{ while (a!=b)
{
if(a>b)
a=a-b;
else
b=b-a;

}
return a;
}
int cmmmc(int a, int b)
{
int cmmmc;
cmmmc=(a*b)/cmmdc(a,b);
return cmmmc;
}
int main()
{
int a,b;
cout<<"\nDati nr
cout<<"\nDati nr
cout<<"\nCel mai
cout<<"\nCel mai
return 0;
}

a: ";cin>>a;
b: ";cin>>b;
mare divizor comun: "<<cmmdc(a,b);
mic multiplu comun: "<<cmmmc(a,b);

/*Curs 4
5.
Scrieti o functie care primeste ca parametru lungimea laturii unui patra
t si returneaza aria sa si o functie care returneaza diagonala
*/
#include <iostream>
#include <cmath>
using namespace std;
int l;
int aria(int l)
{
return l*l;
}
float diag(int l)
{
float diag;
diag=(float)l*sqrt(2);
return diag;
}
int main()
{
cout<<"Dati latura: ";cin>>l;
cout<<"\nAria este: "<<aria(l);
cout<<"\nLungimea diagonalei este: "<<diag(l);
return 0;
}
/*Curs 4
6.
Scrieti o functie care primeste 3 parametri de tip real, cu semnificatia
de lungimi pentru 3 segmente. Functia va returna 1, daca cele trei segmente pot
forma un triunghi si 0, n caz contrar.
Scrieti o functie care returneaza ultima cifra a unui numar natural. De exemplu,
daca numarul este 234, functia va returna 4.
*/
#include <iostream>
#include <cmath>
using namespace std;
int a,b,c,n;

int triunghi(int a,int b,int c)


{
if(a+b<=c || b+c<=a || c+a<=b)
return 0;
return 1;
}
int ultima_cif(int x)
{
return x%10;
}
int main()
{
cout<<"Dati cele 3 laturi: \na= ";
cin>>a;
cout<<"\nb= ";
cin>>b;
cout<<"\nc= ";
cin>>c;
if(triunghi(a,b,c)==1)
cout<<"\nLaturile pot forma un triunghi";
else
cout<<"\nLaturile nu pot forma un triunghi";
cout<<"\nDati numarul al carui ultima cifra doriti sa il aflati: ";cin>>n;
cout<<"\nUltima cifra a lui "<<n<<" este "<<ultima_cif(n);
return 0;
}
/*Curs 5
1.
Fie declaratiile:
int a[20]; int n; float e;
Sa se determine valoarea expresiei e n fiecare din cazurile:
a)
e = x1+x2+x3+ +xn;
b)
e = x1*x2*x3* *xn;
c)
e = media aritmetica a componentelor din vector;
d)
e = suma patratelor componentelor din vector;
e)
e = suma cuburilor componentelor negative din vector;
f)
e = x1-x2+x3-x4+ xn .
*/
#include <iostream>
using namespace std;
int a[20], n;
float ea,eb,ec,ed,ef,ee;
int main()
{ ea=0;eb=1;ec=0;ed=0;ef=0;ee=0;
cout<<"\nDati numarul de elemente din vector: "; cin>>n;
for(int i=0;i<n;i++)
{
cout<<"\na["<<i<<"]="; cin>>a[i];
ea=ea+a[i];
eb=eb*a[i];
ed=ed+a[i]*a[i];
ee=ee+a[i]*a[i]*a[i];
if(i%2==0)
ef=ef+a[i];
else
ef=ef-a[i];

}
ec=ea/n;
cout<<"/n a)"<<ea<<endl<<eb<<endl<<ec<<endl<<ed<<endl<<ee<<endl<<ef<<endl;
return 0;
}

S-ar putea să vă placă și