Documente Academic
Documente Profesional
Documente Cultură
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()
{
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;
}
ec=ea/n;
cout<<"/n a)"<<ea<<endl<<eb<<endl<<ec<<endl<<ed<<endl<<ee<<endl<<ef<<endl;
return 0;
}