0% found this document useful (0 votes)
28 views124 pages

Portofoliu Programare

The document discusses working with files in C++. It includes examples of reading from and writing to files, performing calculations with the data, and outputting results. The examples demonstrate basic file input/output operations and how to structure C++ programs that work with files.

Uploaded by

Sergiu Lungu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views124 pages

Portofoliu Programare

The document discusses working with files in C++. It includes examples of reading from and writing to files, performing calculations with the data, and outputting results. The examples demonstrate basic file input/output operations and how to structure C++ programs that work with files.

Uploaded by

Sergiu Lungu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 124

IP Centrul de Excelență în Economie și Finanțe

Catedra Informatica

PORTOFOLIU
la unitatea de curs
Programare Procedurală

Elaborat: Verificat:
Elevuul grupei PAP 2113 G Burca Eugenia,
Nume Prenume master în informatică,
Lungu Sergiu profesor de informatică.

Chișinău, 2021
Cuprins

1. Tipul de date fișier 3


1.1 Tema pentru acasă 3
2. Metode de sortare 26
2.1. Probleme rezolvate în cadrul orelor de laborator și tema pentru acasă 26
26
3. Tipul de date structură 49
3.1 Probleme rezolvate în cadrul orelor de laborator și tema pentru acasă 49
49
51
52
4. Pointeri 66
4.1 (Partea I) Variabilele pointer 66
4.2 (Partea II) Alocarea dinamică de memorie 73
Tema 5 Subprograme cu tip și fără tip. 76
Tema 6 Subporograme. Domenii de vizibilitate. Efecte colaterale. 101
Tema 7 Subprograme cu parametri de tip tablou. 109
Tema 8 Subprograme recursive. 118

-2-
1. Tipul de date fișier

1.1 Tema pentru acasă

#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int varsta, inaltime;
char genul;
float ideal;

fstream file;
file.open("date.in", ios::in);
file >> varsta >> inaltime >> genul;

ideal = 50 + 0.75 * (inaltime - 150) + (varsta - 20) / 4;

if (genul == 'f') {
ideal -= 10;
}

cout << "Greutatea ideala: " << ideal;

file.close();

file.open("date.out", ios::out);

file << "Varsta: " << varsta << "\nInaltime: " << inaltime <<
"\nGenul: " << genul << "\nGreutatea ideala: " << ideal;

file.close();

-3-
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int a, b, c;

fstream file;
file.open("date.in", ios::in);

file >> a >> b >> c;


-4-
file.close();
file.open("date.out", ios::out);

if (a % 2 == 0) {
cout << a << " PAR\n";
file << a << " PAR\n";
} else {
cout << a << " IMPAR\n";
file << a << " IMPAR\n";
}

if (b % 2 == 0) {
cout << b << " PAR\n";
file << b << " PAR\n";
} else {
cout << b << " IMPAR\n";
file << b << " IMPAR\n";
}

if (a % 2 == 0) {
cout << c << " PAR\n";
file << c << " PAR\n";
} else {
cout << c << " IMPAR\n";
file << c << " IMPAR\n";
}

file.close();
}

-5-
-6-
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
int a, b, c;
int max, min, second;

fstream file;
file.open("date.in", ios::in);
file >> a >> b >> c;
file.close();

if (a > b && a > c) {


max = a;
if (b > c) {
second = b;
min = c;
}
else {
second = c;
min = b;
}
}

if (b > a && b > c) {


max = b;
if (a > c) {
second = a;
min = c;
}
else {
second = c;
min = a;
}
}

if (c > b && c > a) {


max = c;
if (b > a) {
second = b;
min = a;
}
else {
second = a;
min = b;
}
}

-7-
file.open("date.out", ios::out);

cout << "max: " << max;


cout << "\nsecond: " << second;
cout << "\nmin: " << min;

file << "max: " << max;


file << "\nsecond: " << second;
file << "\nmin: " << min;
file.close();

-8-
-9-
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int main()
{
int temp, pozCounter = 0, negCounter = 0;
float pozSum = 0, negSum = 0;
fstream file;
file.open("date.in", ios::in);

while (!file.eof()) {
file >> temp;
if (temp > 0) {
pozSum += temp;
pozCounter++;
}
else {
negSum += temp;
negCounter++;
}
}

file.close();
file.open("date.out", ios::out);

if (pozCounter != 0) {
cout << "Media temperaturilor pozitive: " << setprecision(3) << pozSum / pozCounter << "\n";
file << "Media temperaturilor pozitive: " << setprecision(3) << pozSum / pozCounter << "\n";
}
else {
cout << "Nu exista temperaturi pozitive\n";
file << "Nu exista temperaturi pozitive\n";
}

if (negCounter != 0) {
cout << "Media temperaturilor negative: " << setprecision(3) << negSum / negCounter;
file << "Media temperaturilor negative: " << setprecision(3) << negSum / negCounter;
}
else {
cout << "Nu exista temperaturi negative";
file << "Nu exista temperaturi negative";
}

file.close();
}

-10-
-11-
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
fstream file;
file.open("date.in", ios::in);

double n, medie, nrCorigenti = 0, max=1, min=10;


file >> n;

for (int i = 0; i < n; i++) {


file >> medie;
if (medie < 5) {
nrCorigenti++;
}
if (medie > max) {
max = medie;
}
if (medie < min) {
min = medie;
}
}

-12-
file.close();
file.open("date.out", ios::out);

cout << "max=" << max << "\nmin=" << min <<
"\n" << nrCorigenti << " corigent";

if (nrCorigenti != 1) {
cout << 'i';
}

file << "max=" << max << "\nmin=" << min <<
"\n" << nrCorigenti << " corigent";

if (nrCorigenti != 1) {
file << 'i';
}

file.close();
}

-13-
-14-
#include <iostream>
#include <fstream>
#include <iomanip>
#include <conio.h>
using namespace std;

int main()
{
int n,i, t[100], pare=0, impare=0, suma=0, max=0, min=9999;
float media;
fstream g, h;
g.open("date.in", ios::in);
g >> n;
h.open("date.out", ios::out);
for( i=0; i<n; i++){
g >> t[i];
suma+=t[i];
if(t[i]%2==0) pare++;
else impare++;
if(t[i]>max) max=t[i];
if(t[i]<min) min=t[i];
}
media=(float)suma/i;
g.close();
cout << "Max=" << max << endl;
cout << "Min=" << min << endl;
cout << "Numere pare=" << pare << endl;
cout << "Numere impare=" << impare << endl;
cout << "Media=" << fixed << setprecision(2)<< media << endl;
h << "Max=" << max << endl;
h << "Min=" << min << endl;
h << "Numere pare=" << pare << endl;
h << "Numere impare=" << impare << endl;
h << "Media=" << fixed << setprecision(2) << media << endl;
h.close();
getch();
}

-15-
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

-16-
int main()
{
fstream file;
file.open("date.in", ios::in);

int linii, coloane, element, matrice[100][100], max = matrice[0][0], maxLinie, maxColoana;

file >> linii;


file >> coloane;

for (int i = 0; i < linii; i++) {


for (int j = 0; j < coloane; j++) {
file >> element;
matrice[i][j] = element;
if (element > max) {
max = element;
maxLinie = i;
maxColoana = j;
}
}
}

file.close();
file.open("date.out", ios::out);

cout << "Elementele matricei: ";


file << "Elementele matricei: ";

for (int i = 0; i < linii; i++) {


cout << endl;
file << endl;
for (int j = 0; j < coloane; j++) {
cout << setw(5) << matrice[i][j];
file << setw(5) << matrice[i][j];
}
}

cout << "\nPozitiile valorii maxime: linia "


<< maxLinie+1 << ", coloana " << maxColoana+1;
file << "\nPozitiile valorii maxime: linia "
<< maxLinie+1 << ", coloana " << maxColoana+1;

file.close();

-17-
-18-
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int main()
{
fstream file;
file.open("date.in", ios::in);

int linii, coloane, element, matrice[100][100], sume[100], suma = 0;

file >> linii;


file >> coloane;

for (int i = 0; i < linii; i++) {


for (int j = 0; j < coloane; j++) {
file >> element;
matrice[i][j] = element;
suma += element;
}
sume[i] = suma;
suma = 0;
}

file.close();
file.open("date.out", ios::out);

cout << "Elementele matricei: ";


file << "Elementele matricei: ";

for (int i = 0; i < linii; i++) {


cout << endl;
file << endl;
for (int j = 0; j < coloane; j++) {

-19-
cout << setw(5) << matrice[i][j];
file << setw(5) << matrice[i][j];
}
}

for (int i = 0; i < linii; i++) {


cout << "\nSuma liniei " << i + 1 << ": " << sume[i];
file << "\nSuma liniei " << i + 1 << ": " << sume[i];
}

file.close();

-20-
-21-
#include <iostream>
#include <fstream>
#include <iomanip>

using namespace std;

int main()
{
fstream file;
file.open("date.in", ios::in);

int linii, coloane, element, matrice[100][100], minime[100], min = 32767;

file >> linii;


file >> coloane;

for (int i = 0; i < linii; i++) {


for (int j = 0; j < coloane; j++) {
file >> element;
matrice[i][j] = element;

}
}

file.close();
file.open("date.out", ios::out);

cout << "Elementele matricei: ";


file << "Elementele matricei: ";

for (int i = 0; i < linii; i++) {


cout << endl;
file << endl;
for (int j = 0; j < coloane; j++) {
cout << setw(5) << matrice[i][j];
file << setw(5) << matrice[i][j];
}
}

for (int i = 0; i < coloane; i++) {


for (int j = 0; j < linii; j++) {
if (matrice[j][i] < min) {
min = matrice[j][i];
minime[i] = min;
}
}
minime[i] = min;
min = 32767;
}

for (int i = 0; i < coloane; i++) {


cout << "\nMinimul coloanei " << i + 1 << ": " << minime[i];
file << "\nMinimul coloanei " << i + 1 << ": " << minime[i];
}

file.close();

-22-
-23-
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
fstream file;
file.open("date.in", ios::in);

int majuscule = 0;
char c;

while (!file.eof()) {
file >> c;
if (c == toupper(c)) {
majuscule++;
}
}

file.close();
file.open("date.out", ios::out);

cout << "Nr de majuscule: " << majuscule;


file << "Nr de majuscule: " << majuscule;

file.close();
}

-24-
-25-
2. Metode de sortare

2.1. Probleme rezolvate în cadrul orelor de laborator și tema pentru acasă

//Lungu Sergiu
#include <iostream>
#include <fstream>
using namespace std;
int n, a[100],f,aux, b[100], c[100],j;
int main()
{
ifstream fin("vector.in");
ifstream g("vector.in");
ifstream d("vector.in");

///a-metoda bulelor
cout<<"Numarul de elemente: ";
fin>>n;
cout<<n<<endl;

for(int i=0; i<n; i++)


fin>>a[i];

///sortare crescatoare
do
{
f=0;
for(int i=0; i<n-1; i++)
if(a[i]>a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
f=1;
}
}
while(f);
cout<<"Sirul sortat crescator este: " <<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

///sortare descrescatoare
cout<<endl;
do
-26-
{
f=0;
for(int i=0; i<n-1; i++)
if(a[i]<a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
f=1;
}
}
while(f);
cout<<"Sirul sortat descerescator este: " <<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

fin.close();

cout<<endl;
///b-metoda selectiei directe

cout<<"Numarul de elemente: ";


g>>n;
cout<<n<<endl;

for(int i=0; i<n; i++)


g>>b[i];

///sortare crescatoare

for(int i=0; i<n-1; i++)


for(int j=i+1; j<n; j++)
if(b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
}

cout<<"Sirul sortat crescator este: " <<endl;


for(int i=0; i<n; i++)
cout<<b[i]<<" ";
cout<<endl;

///sortarea descrescatoare
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if(b[i]<b[j])
{
aux=b[i];
-27-
b[i]=b[j];
b[j]=aux;
}

cout<<"Sirul sortat descrescator este: " <<endl;


for(int i=0; i<n; i++)
cout<<b[i]<<" ";

g.close();

///metoda insertiei
cout<<endl;
cout<<"Numarul de elemente: ";
d>>n;
cout<<n<<endl;

for(int i=0; i<n; i++)


d>>c[i];

///sortatre crescatoare
for(int i=1; i<n; i++)
{
j=i-1;
aux=c[i];
while(aux<c[j] && j>=0)
{
c[j+1]=c[j];
j--;
}
c[j+1]=aux;
}

cout<<"Tabloul sortat crescator: "<<endl;


for(int i=0; i<n; i++)
cout<<c[i]<<" ";

///sortatre descrescatoare
cout<<endl;
for(int i=1; i<n; i++)
{
j=i-1;
aux=c[i];
while(aux>c[j] && j>=0)
{
c[j+1]=c[j];
j--;
}
c[j+1]=aux;
}

-28-
cout<<"Tabloul sortat descrescator: "<<endl;
for(int i=0; i<n; i++)
cout<<c[i]<<" ";

d.close();

return 0;
}

-29-
-30-
-31-
//Lungu Sergiu
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int n,f,aux,j;
char a[100], b[100], c[100];
int main()
{
ifstream fin("caractere.in");
ifstream g("caractere.in");
ifstream d("caractere.in");

///a-metoda bulelor

fin.getline(a,100);
n=strlen(a);

cout<<"sirul initial: ";


for(int i=0; i<n; i++)
cout<<a[i];

cout<<endl;
///sortare crescatoare
do
{
f=0;
for(int i=0; i<n-1; i++)
if(a[i]>a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
f=1;
}
}
while(f);
cout<<"Sirul sortat crescator este: " <<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

///sortare descrescatoare
cout<<endl;
do
{
f=0;
for(int i=0; i<n-1; i++)
-32-
if(a[i]<a[i+1])
{
aux=a[i];
a[i]=a[i+1];
a[i+1]=aux;
f=1;
}
}
while(f);
cout<<"Sirul sortat descerescator este: " <<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

fin.close();

cout<<endl;
///b-metoda selectiei directe
g.getline(b,100);
n=strlen(b);

cout<<"Numarul de elemente: ";


g>>n;
cout<<n<<endl;

for(int i=0; i<n; i++)


g>>b[i];

///sortare crescatoare

for(int i=0; i<n-1; i++)


for(int j=i+1; j<n; j++)
if(b[i]>b[j])
{
aux=b[i];
b[i]=b[j];
b[j]=aux;
}

cout<<"Sirul sortat crescator este: " <<endl;


for(int i=0; i<n; i++)
cout<<b[i]<<" ";
cout<<endl;

///sortarea descrescatoare
for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if(b[i]<b[j])
{
aux=b[i];
b[i]=b[j];
-33-
b[j]=aux;
}

cout<<"Sirul sortat descrescator este: " <<endl;


for(int i=0; i<n; i++)
cout<<b[i]<<" ";

g.close();

///metoda insertiei
d.getline(c,100);
n=strlen(c);
cout<<endl;
cout<<"Numarul de elemente: ";
d>>n;
cout<<n<<endl;

for(int i=0; i<n; i++)


d>>c[i];

///sortatre crescatoare
for(int i=1; i<n; i++)
{
j=i-1;
aux=c[i];
while(aux<c[j] && j>=0)
{
c[j+1]=c[j];
j--;
}
c[j+1]=aux;
}

cout<<"Tabloul sortat crescator: "<<endl;


for(int i=0; i<n; i++)
cout<<c[i]<<" ";

///sortatre descrescatoare
cout<<endl;
for(int i=1; i<n; i++)
{
j=i-1;
aux=c[i];
while(aux>c[j] && j>=0)
{
c[j+1]=c[j];
j--;
}
c[j+1]=aux;
}
-34-
cout<<"Tabloul sortat descrescator: "<<endl;
for(int i=0; i<n; i++)
cout<<c[i]<<" ";

d.close();

return 0;
}

-35-
-36-
-37-
//Lungu Sergiu
#include <iostream>
#include <fstream>
using namespace std;
int a[100],n,k,aux;
int main()
{
ifstream fin("vector.in");

cout<<"Numarul de elemente: ";


fin>>n;
cout<<n;
cout<<endl;

for(int i=0; i<n; i++)


fin>>a[i];

cout<<"Initial:"<<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
fin.close();

cout<<endl;
cout<<"Valaorea lui k: ";
cin>>k;

//metoda selectiei directe


for(int i=0; i<k-1; i++)
for(int j=i+1; j<k; j++)
if(a[i]>a[j]) {aux=a[i]; a[i]=a[j]; a[j]=aux;}

for(int i=k; i<n-1; i++)


for(int j=i+1; j<n; j++)
if(a[i]<a[j]) {aux=a[i]; a[i]=a[j]; a[j]=aux;}

cout<<"Dupa sortare:"<<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

-38-
return 0;
}

-39-
//Lungu Sergiu
#include <iostream>
#include <fstream>
using namespace std;
int a[100],n,k,aux;
int main()
{
ifstream fin("vector.in");

cout<<"Numarul de elemente: ";


fin>>n;
cout<<n;
cout<<endl;

for(int i=0; i<n; i++)


fin>>a[i];

cout<<"Initial:"<<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";
fin.close();

cout<<endl;
cout<<"Valaorea lui k: ";
cin>>k;

//metoda selectiei directe


for(int i=0; i<k-1; i++)
for(int j=i+1; j<k; j++)
if(a[i]<a[j]) {aux=a[i]; a[i]=a[j]; a[j]=aux;}

for(int i=k; i<n-1; i++)


for(int j=i+1; j<n; j++)
if(a[i]>a[j]) {aux=a[i]; a[i]=a[j]; a[j]=aux;}

cout<<"Dupa sortare:"<<endl;
for(int i=0; i<n; i++)
cout<<a[i]<<" ";

return 0;
}

-40-
-41-
//Lungu Sergiu
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
int n;
ifstream fin("cuvinte.in");
char t[100], aux[13];
char vectorCuv[6][13];
int total=0;

fin.getline(t,100);
n=strlen(t);
cout<<"Initial:"<<endl;
for(int i=0; i<n; i++)
cout<<t[i];

cout<<endl;
cout<<"Sortat:"<<endl;

char *cuv= strtok(t, " ");


while(cuv != NULL)
{
strcpy(vectorCuv[total], cuv);
total++;
cuv=strtok(NULL, " ");
}

for(int i=0; i<total; i++)


{
for(int j=i+1; j<total; j++)
{
if(strcmp(vectorCuv[i], vectorCuv[j])>0)
{
strcpy(aux, vectorCuv[i]);
strcpy(vectorCuv[i], vectorCuv[j]);
strcpy(vectorCuv[j], aux);
}
}
}

for(int i=0; i<total; i++)


cout<<vectorCuv[i]<<endl;

-42-
return 0;
}

-43-
//Lungu Sergiu
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
int t[20][20],aux,d;
int n,m;
ifstream fin("matrice.in");
fin>>n>>m;

for(int i=0; i<n; i++)


for(int j=0; j<m; j++)
{
fin>>t[i][j];
}

fin.close();

cout<<"Ordinea originala:"<<endl;
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cout<<t[i][j]<<" ";
}
cout<<endl;
}

for(int j=0; j<n; j++)


do
{
d=0;
for(int i=0; i<m-1; i++)
if(t[i][j]>t[i+1][j])
{
aux=t[i][j];
t[i][j]=t[i+1][j];
t[i+1][j]=aux;
d=1;
}
}
while (d);

-44-
cout<<"sortat:"<<endl;
for(int i=0; i<n; i++)
{
for(int j=0; j<m; j++)
{
cout<<t[i][j]<<" ";
}
cout<<endl;
}

return 0;
}

-45-
-46-
//Sergiu Lungu
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
int main()
{
char t[100][100], aux[100];
int n,m;
ifstream f("matrice.in");
f>>n>>m;

for(int i=0; i<n; i++)


f>>t[i];

cout<<"Ordinea originala a cuvintelor:"<<endl;


for(int i=0; i<n; i++)
{
cout<<t[i];
cout<<endl;
}

///metoda selectiei directe


for(int i=0; i<n-1; i++)
for(int j=i+1; j<n; j++)
if (strcmp(t[i], t[j]) ==1) {strcpy(aux,t[i]); strcpy(t[i],t[j]); strcpy(t[j],aux);}

cout<<"Cuvintele sortate:"<<endl;
for(int i=0; i<n; i++)
cout<<t[i]<<endl;

return 0;
}

-47-
-48-
3. Tipul de date structură
3.1 Probleme rezolvate în cadrul orelor de laborator și tema pentru acasă

//Lungu Sergiu
#include <iostream>
#include <cstring>
using namespace std;
int main()
{ int t1,t2,t3;
struct data
{int ziua;
int luna;
int anul;
};
struct copil
{char nume[20];
data datan;};

copil c1,c2,c3;
cout<<"Introdu datele despre copii"<<endl;
cout<<"Introdu datele primului copil(numele; ziua,luna,anul nasterii)"<<endl;
cin>>c1.nume;
cin>>c1.datan.ziua>>c1.datan.luna>>c1.datan.anul;
cout<<"Introdu datele celui de-al doilea copil(numele; ziua,luna,anul nasterii)"<<endl;
cin>>c2.nume;
cin>>c2.datan.ziua>>c2.datan.luna>>c2.datan.anul;
cout<<"Introdu datele celui de-al treilea copil(numele; ziua,luna,anul nasterii)"<<endl;
cin>>c3.nume;
cin>>c3.datan.ziua>>c3.datan.luna>>c3.datan.anul;

t1=c1.datan.anul*365+c1.datan.luna*30+c1.datan.ziua;
t2=c2.datan.anul*365+c2.datan.luna*30+c2.datan.ziua;
t3=c3.datan.anul*365+c3.datan.luna*30+c3.datan.ziua;

copil cmax;
if(t1<t2 && t1<t3) cmax=c1;
else if(t2<t1 && t2<t3) cmax=c2;
else cmax=c3;

copil cmin;
if(t1>t2 && t1>t3) cmin=c1;
else if(t2>t1 && t2>t3) cmin=c2;
-49-
else cmin=c3;

copil c;
if((t1<t2) && (t1>t3) || (t1<t3) && (t1>t2)) c=c1;
if((t2<t1) && (t2>t3) || (t2<t3) && (t2>t1)) c=c2;
if((t3<t2) && (t3>t1) || (t3<t1) && (t3>t2)) c=c3;

cout<<"Cel mai mare copil este: "<<cmax.nume<<endl;


cout<<"Cel mai mic copil este: "<<cmin.nume<<endl;
cout<<"Copilul cu varsta intre cele 2 este: "<<c.nume<<endl;

return 0;
}

-50-
//Lungu Sergiu
#include <iostream>
using namespace std;

int main()

{ int sum=0, dif=0,s1,s2;


struct data
{
int zi;
int luna;
int an;
};
data t1,t2;

cout << "Introduceti data1(zi,luna,anul):" << endl;


cin>>t1.zi>>t1.luna>>t1.an;
cout << "Introduceti data2(zi,luna,anul):" << endl;
cin>>t2.zi>>t2.luna>>t2.an;

s1=t1.an*365+t1.luna*31+t1.zi;
s2=t2.an*365+t2.luna*31+t2.zi;

sum=s1+s2;
dif=s1-s2;

cout<<"Suma este: "<<sum/365<<" "<<sum%365/31<<" "<<sum%365%31;


cout<<"Diferenta este: "<<dif/365<<" "<<dif%365/31<<" "<<dif%365%31;

return 0;
}

-51-
//Lungu Sergiu
#include <iostream>
using namespace std;

int main()

{ int sum=0, dif=0,t1,t2;


struct timp
{
int ore;
int minute;
int secunde;
};
timp h1,h2;

cout << "Introdu timp1(ora,minute,secunde) " << endl;


cin>>h1.ore>>h1.minute>>h1.secunde;
cout << "Introdu timp2(ora,minute,secunde) " << endl;
cin>>h2.ore>>h2.minute>>h2.secunde;

t1=h1.ore*3600+h1.minute*60+h1.secunde;
t2=h2.ore*3600+h2.minute*60+h2.secunde;

sum=t1+t2;
dif=t1-t2;

cout<<"Suma este: "<<sum/3600<<" "<<sum%3600/60<<" "<<sum%3600%60<<endl;;


cout<<"Diferenta este: "<<dif/3600<<" "<<dif%3600/60<<" "<<dif%3600%60<<endl;

return 0;
}

-52-
//Lungu Sergiu
//A
#include <iostream>
#include <math.h>
using namespace std;
struct coordonate{
int x,y;} varful1, varful2, varful3;
int main()
{
float latura1, latura2, latura3, perimetru, aria;
cout<<"Introduceti primul varf"<<endl;
cout<<"x= ";cin>>varful1.x;
cout<<"y= ";cin>>varful1.y;
-53-
cout<<endl<<"Introduceti al doilea varf"<<endl;
cout<<"x= ";cin>>varful2.x;
cout<<"y= ";cin>>varful2.y;
cout<<endl<<"Introduceti al treilea varf"<<endl;
cout<<"x= ";cin>>varful3.x;
cout<<"y= ";cin>>varful3.y;
latura1=sqrt(pow((varful2.x-varful1.x),2)+pow((varful2.y-varful1.y),2));
latura2=sqrt(pow((varful3.x-varful2.x),2)+pow((varful3.y-varful2.y),2));
latura3=sqrt(pow((varful1.x-varful3.x),2)+pow((varful1.y-varful1.y),2));
perimetru=latura1+latura2+latura3;
if((latura1+latura2>latura3)&&(latura2+latura3>latura1)&&(latura1+latura3>latura2)){
cout<<"Un triunghi poate fi format"<<endl;
cout<<"Perimetrul: "<<perimetru<<endl;
cout<<"Aria: "<<sqrt(perimetru/2*(perimetru/2-latura1)*(perimetru/2-latura2)*(perimetru/2-
latura3))<<endl;
if((latura1>latura2) && (latura1>latura3)){
if(latura1==sqrt(latura2+latura3)){
cout<<"Triunghi dreptunghic"<<endl;}
else if(latura1<sqrt(latura2+latura3)){
cout<<"Triunghi ascutit"<<endl;}

else cout<<"Triunghi obtuz"<<endl;


}
}
else{
cout<<"Un triunghi nu poate fi format"<<endl;
}

return 0;
}

//Lungu Sergiu
//B
#include <iostream>
#include <math.h>
using namespace std;
struct coordonate {
int x,y;
}centrul1, centrul2;
int main()
{
int raza1, raza2, dist;
cout<<"Introduceti coordonatele centrului primului cerc:"<<endl;
cout<<"Coordonata x: "; cin>>centrul1.x;
cout<<"Coordonata y: "; cin>>centrul1.y;
cout<<"Raza primului cerc: "; cin>>raza1;
cout<<"Introduceti coordonatele centrului celui de-al doilea cerc:"<<endl;
cout<<"Coordonata x: "; cin>>centrul2.x;
cout<<"Coordonata y: "; cin>>centrul2.y;
cout<<"Raza celui de-al doilea cerc: "; cin>>raza2;
cout<<endl<<"Lungimea primului cerc: "<<M_PI*2*raza1<<endl;
-54-
cout<<"Lungimea celui de-al doilea cerc: "<<M_PI*2*raza2<<endl;
cout<<"Aria discului primului cerc: "<<M_PI*pow(raza1,2)<<endl;
cout<<"Aria discului celui de-al doilea cerc: "<<M_PI*pow(raza2,2)<<endl;
dist=sqrt(sqrt(pow((centrul1.x-centrul2.x),2)+pow((centrul1.y-centrul2.y),2)));
if(raza1+raza2<dist){
cout<<"Cercurile nu se intersecteaza";
}
else if(raza1+raza2==dist){
cout<<"Cercurile sunt tangente (un punct comun)";
}
else if(raza1+raza2>dist){
cout<<"Cercurile sunt tangente (doua puncte comune)";
}
return 0;
}

-55-
-56-
//Lungu Sergiu
//5
#include <iostream>

using namespace std;


struct fractie{
int numarator, numitor;
}fractia1, fractia2;
int main()
{
int numarator_aux, numitor_aux;
cout<<"Introduceti prima fractie:"<<endl;
cout<<"numaratorul: "; cin>>fractia1.numarator;
cout<<"numitorul: "; cin>>fractia1.numitor;
cout<<"Introduceti a doua fractie:"<<endl;
cout<<"numaratorul: "; cin>>fractia2.numarator;
cout<<"numitorul: "; cin>>fractia2.numitor;
if((double)fractia1.numarator/fractia1.numitor>(double)fractia2.numarator/fractia2.numitor){
cout<<"Cea mai mare fractie este: "<<fractia1.numarator<<" / "<<fractia1.numitor<<endl;
cout<<"Cea mai mica fractie este: "<<fractia2.numarator<<" / "<<fractia2.numitor;
}
else{
cout<<"Cea mai mare fractie este: "<<fractia2.numarator<<" / "<<fractia2.numitor<<endl;
cout<<"Cea mai mica fractie este: "<<fractia1.numarator<<" / "<<fractia1.numitor;
}
numitor_aux=fractia1.numitor*fractia2.numitor;
numarator_aux=(fractia1.numarator*fractia2.numitor)+(fractia2.numarator*fractia1.numitor);
for(int i=1; i<=numarator_aux&&i<=numitor_aux; ++i){
if(numarator_aux%i==0&&numitor_aux%i==0){
numitor_aux/=i;
numarator_aux/=i;
}
}
cout<<endl<<"Suma: "<<numarator_aux<<" / "<<numitor_aux;
numitor_aux=fractia1.numitor*fractia2.numitor;
numarator_aux=(fractia1.numarator*fractia2.numitor)-(fractia2.numarator*fractia1.numitor);
for(int i=1; i<=numarator_aux&&i<=numitor_aux; ++i){
if(numarator_aux%i==0&&numitor_aux%i==0){
numitor_aux/=i;
numarator_aux/=i;
}
}
if(numarator_aux<0){
cout<<endl<<"Diferenta: -("<<numarator_aux*-1<<" / "<<numitor_aux<<")";
-57-
}
else {cout<<endl<<"Diferenta: "<<numarator_aux<<" / "<<numitor_aux;}
numitor_aux=fractia1.numitor*fractia2.numitor;
numarator_aux=fractia1.numarator*fractia2.numarator;
for(int i=1; i<=numarator_aux&&i<=numitor_aux; ++i){
if(numarator_aux%i==0&&numitor_aux%i==0){
numitor_aux/=i;
numarator_aux/=i;
}
}
cout<<endl<<"Produsul: "<<numarator_aux<<" / "<<numitor_aux;
for(int i=1; i<=numarator_aux&&i<=numitor_aux; ++i){
if(numarator_aux%i==0&&numitor_aux%i==0){
numitor_aux/=i;
numarator_aux/=i;
}
}
if(numarator_aux<0){
cout<<endl<<"Catul: -("<<numarator_aux*-1<<" / "<<numitor_aux<<")";
}
else {cout<<endl<<"Catul: "<<numarator_aux<<" / "<<numitor_aux;}
return 0;
}

-58-
-59-
//Lungu Sergiu
//6
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
struct coordonate{
int x,y;
}puncte[100],aux;
int main()
{
int n;
fstream file;
file.open("puncte.in",ios::in);
file>>n;
for(int i=0; i<n; i++){
file>>puncte[i].x;
file>>puncte[i].y;
}
file.close();
for(int i=0; i<n; i++){
for(int j=i+1; j<n; j++){
if (sqrt(pow(puncte[i].x, 2) + pow(puncte[i].y, 2)) > sqrt(pow(puncte[j].x, 2) + pow(puncte[j].y,
2))) {
aux = puncte[i];
puncte[i] = puncte[j];
puncte[j] = aux;
}
}
}
cout << "Punctele sortate crescator: "<<endl;
for (int i = 0; i < n; i++) {
cout<< "Punctul "<<i + 1<<":"<<endl;
cout<<"x= "<< puncte[i].x <<"; y="<<puncte[i].y<<endl;
cout<<"Distanta= "<<sqrt(pow(puncte[i].x, 2)+pow(puncte[i].y, 2))<<endl<<endl;
}

return 0;
}

-60-
-61-
//Lungu Sergiu
#include <iostream>
#include<cstring>
#include <fstream>
using namespace std;
int main()
{ int n,d, aux,f,p;
char m[20], auxm[20];
struct telefon
{
char marca[20];
char culoare[20];
int an;
int pret;
};

typedef telefon ListaT[100];


ListaT LT;
telefon LTanmax, LTpretmax;
LTanmax.an=0; LTpretmax.pret=0;

ifstream fin("date.in");

fin>>n;
for(int i=0; i<n; i++)
{
fin>>LT[i].marca;
fin>>LT[i].culoare;
fin>>LT[i].an;
fin>>LT[i].pret;
}

cout<<endl;
cout<<"1.Afisarea tuturor telefoanelor: " << endl;
cout<<"2.Afisarea telefoanelor cu cel mai mare an: "<<endl;
cout<<"3.Afisarea celor mai scumpe telefoane: "<<endl;
-62-
cout<<"4.Cautarea telefoanelor dupa marca: "<<endl;
cout<<"5.Cautarea telefoanelor dupa pret, cu indicarea pretului minim si maxim: "<<endl;
cout<<"6.Sortarea telefoanelor descrescator dupa anul fabricarii: "<<endl;
cout<<"7.Sortarea telefoanelor crescator dupa marca: "<<endl;
cout<<"Alege o optiune din meniu, tastand 1-7: "<<endl;
cin>>d;

switch(d)
{
case 1: for(int i=0; i<n; i++) cout<<LT[i].marca<<" "; break;
case 2: for(int i=0; i<n; i++)
if(LT[i].an> LTanmax.an) {LTanmax.an=LT[i].an; cout<<LT[i].marca<<"
"<<LT[i].culoare<<" "<<LT[i].an<<" "<<LT[i].pret;} break;
case 3: for(int i=0; i<n; i++)
if(LT[i].pret> LTpretmax.pret) {LTpretmax.pret=LT[i].pret; cout<<LT[i].marca<<"
"<<LT[i].culoare<<" "<<LT[i].an<<" "<<LT[i].pret;} break;

case 4: {cout<<"Introdu marca: "; cin>>m;


for(int i=0; i<n; i++)
if(m==LT[i].marca) cout<<LT[i].marca<<" "<<LT[i].culoare<<" "<<LT[i].an<<"
"<<LT[i].pret;}break;

case 5: {cout<<"Introdu pret: "; cin>>p;


for(int i=0; i<n; i++)
if(p==LT[i].pret) cout<<LT[i].marca<<" "<<LT[i].culoare<<" "<<LT[i].an;} break;

case 6: do
{
f=0;
for(int i=0; i<n-1; i++)
if(LT[i].an<LT[i+1].an)
{
aux=LT[i].an;
LT[i].an=LT[i+1].an;
LT[i+1].an=aux;
f=1;
}
} while(f);

for(int i=0; i<n; i++)


{ cout<<LT[i].marca<<" "<<LT[i].culoare<<" "<<LT[i].an<<"
"<<LT[i].pret<<endl;}break;

case 7: do
{
f=0;
for(int i=0; i<n-1; i++)
if (strcmp(LT[i].marca,LT[i+1].marca)==1)
-63-
{
strcpy(auxm,LT[i].marca);
strcpy(LT[i].marca, LT[i+1].marca);
strcpy(LT[i+1].marca,auxm);
f=1;
}
} while(f);

for(int i=0; i<n; i++)


{ cout<<LT[i].marca<<" "<<LT[i].culoare<<" "<<LT[i].an<<"
"<<LT[i].pret<<endl;}break;

default: cout<<"Numar introdus greist. Introdu un numar de la 1 la 7."<<endl;break;

return 0;
}

-64-
-65-
4. Pointeri
4.1 (Partea I) Variabilele pointer

//Lungu Sergiu
//9, pag 4
#include <iostream>

using namespace std;

int main()
{
int a,b,c;
int *pa=&a, *pb=&b, *pc=&c;
cout<<"Introduceti 3 cifre de la tastatura"<<endl;
cout<<"a= "; cin>>*pa;
cout<<"b= "; cin>>*pb;
cout<<"c= "; cin>>*pc;
cout<<*pa<<" + "<<*pb<<" = "<<*pa+*pb<<endl;
cout<<*pa<<" + "<<*pc<<" = "<<*pa+*pc<<endl;
cout<<*pb<<" + "<<*pc<<" = "<<*pb+*pc<<endl;
return 0;
}

-66-
//Lungu Sergiu
//10, pag 5
#include <iostream>

using namespace std;

int main()
{
int n;
int *pn=&n;
cout<<"n= "; cin>>*pn;
for(int i=1; i<=10; i++){
cout<<*pn<<" * "<<i<<" = "<<*pn*i<<endl;
}
return 0;
}

-67-
//Lungu Sergiu
//7, pag 10
#include <iostream>

using namespace std;

int main()
{
int n,s;
int *pn=&n, *ps=&s;
*ps=0;
for(int i=0; i<7; i++){
cout<<"Cate ore a privit in ziua "<<i+1<<" ? ";
cin>>*pn;
*ps+=*pn;
}
if(*ps>20){
cout<<"Va fi pedepsit";
}
else{
cout<<"Nu va fi pedepsit";
}
return 0;
}

-68-
//Lungu Sergiu
//8 pag 10
#include <iostream>

using namespace std;

int main()
{
int inaltimea, varsta;
char sexul;
int *pinaltimea=&inaltimea, *pvarsta=&varsta;
char *psexul=&sexul;
float greutatea, *pgreutatea=&greutatea;

cout<<"Introduceti inaltimea"<<endl;
cin>>*pinaltimea;
cout<<"Introduceti varsta"<<endl;
cin>>*pvarsta;
cout<<"Introduceti sexul"<<endl;
cin>>*psexul;
*pgreutatea=50+0.75*(*pinaltimea-150)+(*pvarsta-20)/4;
if(*psexul=='f') *pgreutatea-=10;
cout<<"Greutatea ideala este: "<<*pgreutatea;
return 0;
}

-69-
//Lungu Sergiu
//4 pag 14
#include <iostream>

using namespace std;

int main()
{
float a,b;
char op, *pop=&op;
float *pa=&a,*pb=&b;
cout<<"a= "; cin>>*pa;
cout<<"b= "; cin>>*pb;
cout<<"operatorul= "; cin>>*pop;
switch(*pop){
-70-
case '+': cout<<*pa<<" + "<<*pb<<" = "<<*pa+*pb; break;
case '-': cout<<*pa<<" - "<<*pb<<" = "<<*pa-*pb; break;
case '*': cout<<*pa<<" * "<<*pb<<" = "<<*pa**pb; break;
case '/': cout<<*pa<<" / "<<*pb<<" = "<<*pa/(*pb); break;

default: cout<<"EROARE"; }
return 0;
}

//Lungu Sergiu
//5 pag 16
#include <iostream>

using namespace std;

int main()
{
int n, *pn=&n;
bool prim, *pprim=&prim;

-71-
cout<<"n= "; cin>>*pn;
*pprim=true;

for(int i=2; i<*pn; i++){


if(*pn%i==0){
*pprim=false;
}
}
if(*pprim){
cout<<"Numarul este prim";
}
else{cout<<"Numarul nu este prim";}
return 0;
}

-72-
4.2 (Partea II) Alocarea dinamică de memorie

//Lungu Sergiu
//3 pag 22
#include <iostream>

using namespace std;

int main()
{
int n;
cout<<"Cate elemente are vectorul? "; cin>>n;
int t[n], *pt=t;

for(int i=0; i<n; i++){


cout<<"t["<<i<<"]=";
cin>>*(pt+i);
if(*(pt+i)%2==0){
*(pt+i)*=2;
}
else{
*(pt+i)*=3;
}
}
for(int i=0; i<n; i++){
cout<<*(pt+i)<<" ";
}
return 0;
}

-73-
//Lungu Sergiu
//6 pag 25
#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
int n,m,aux=0,s=0,maxim;
cout<<"n= ";cin>>n;
cout<<"m= ";cin>>m;
int **x=new int*[n];
for(int i=0; i<n; i++){
x[i]=new int[m];
for(int j=0;j<m;j++){
x[i][j]=i+j;
cin>>x[i][j];
}
}
cout<<"Elementele matricei:"<<endl;
for(int i=0; i<n; i++){
for(int j=0; j<m; j++){
cout<<setw(10)<<x[i][j]<<" ";
}cout<<endl;
}
for(int i=0; i<n; i++){
for(int j=0;j<m;j++){
aux+=x[i][j];
}
if(aux>s){
s=aux;
maxim=i;
}
aux=0;
}
cout<<endl<<"Randul cu suma cea mai mare:"<<endl;
for(int i=0; i<m; i++){
cout<<x[maxim][i]<<" ";
}
for(int i=0; i<m; i++){
delete[]x[i];
}
delete[]x;
return 0;
}

-74-
-75-
Tema 5 Subprograme cu tip și fără tip.

//Sergiu Lungu
#include <iostream>
using namespace std;
int num(int x)
{
int k = 0;
while (x>0)
{
x /= 10;
k++;
}
return k;
}
int par(int x)
{
int k = 0, z;
while (x > 0)
{
z = x % 10;
x /= 10;
if (z % 2 == 0)
{
k++;
}
}
return k;
}
int imp(int x)
{
int k = 0, z;
while (x > 0)
{
z = x % 10;
x /= 10;

-76-
if (z % 2 != 0)
{
k++;
}
}
return k;
}
int sum(int x)
{
int z, sum=0;
while (x > 0)
{
z = x % 10;
x /= 10;
sum += z;
}
return sum;
}
int max(int x)
{
int z, max=0;
while (x > 0)
{
z = x % 10;
x /= 10;
if (z > max)
{
max = z;
}
}
return max;
}
int min(int x)
{
int z, min = x;
while (x > 0)
{
z = x % 10;
x /= 10;
if (z < min)
{
min = z;
}
}
return min;
}
float med(int x)
{
int z, k = 0;
float med, sum = 0;
while (x > 0)
-77-
{
z = x % 10;
x /= 10;
sum += z;
k++;
}
med = sum / k;
return med;
}
void cif(int x)
{
int k = 0, z, tz[50], i = 0, m = 0, l = 0;
while (x > 0)
{
z = x % 10;
x /= 10;
k++;
tz[i] = z;
i++;
}
for (int i = 0; i < k; i++)
{
for (int j = 0; j < k; j++)
{
if (tz[i] == tz[j])
{
m++;
}
}
if (m >= 2)
{
cout << tz[i] << " ";
tz[i] = 10;
l++;
}
m = 0;
}
if (l == 0) cout << "Lipsesc";
}
void spat(int x)
{
int k = 0, z, tz[50], i = 0, m = 0;
while (x > 0)
{
z = x % 10;
x /= 10;
k++;
tz[i] = z;
i++;
}
for (int i = k-1; i >= 0 ; i--)
-78-
{
cout << tz[i] << " ";
}
}
void diviz(int x)
{
for (int i = 1; i <= x / 2; i++)
{
if (x % i == 0)
{
cout << i << " ";
}
}
}
void invr(int x)
{
int z;
while (x > 0)
{
z = x % 10;
x /= 10;
cout << z;
}
}
void cmm(int x)
{
int k = 0, z, tz[50], i = 0, s;
while (x > 0)
{
z = x % 10;
x /= 10;
k++;
tz[i] = z;
i++;
}
for (int i = 0; i < k - 1; i++)
{
for (int j = i + 1; j < k; j++)
{
if (tz[i] < tz[j])
{
s = tz[j];
tz[j] = tz[i];
tz[i] = s;
}
}
}
for (int i = 0; i < k; i++)
{
cout << tz[i];
}
-79-
}
void prim(int x)
{
int k = 0;
for (int i = 1; i <= x; i++)
{
if (x % i == 0)
{
k++;
}
}
if (k == 2)
{
cout << "\nPRIM";
}
}
int main()
{
int a;
cout << "Introdu un numar: ";
cin >> a;
cout << "Numarul de cifre: " << num(a) << endl;
cout << "Numarul de cifre pare: " << par(a) << endl;
cout << "Numarul de cifre impare: " << imp(a) << endl;
cout << "Suma cifrelor: " << sum(a) << endl;
cout << "Cifra maxima: " << max(a) << endl;
cout << "Cifra minima: " << min(a) << endl;
cout << "Media aritmetica a cifrelor: " << med(a) << endl;
cout << "Cifrele care se repeta de cel putin 2 ori: "; cif(a);
cout << "\nCifrele numarului separate printrun singur spatiu: "; spat(a);
cout << "\nDivizorii numarului: "; diviz(a);
cout << "\nInversul numarului: "; invr(a);
prim(a);
cout << "\nCel mai mare numar posibil creat din aceste cifre:"; cmm(a);
}

-80-
-81-
-82-
-83-
-84-
-85-
#include <iostream>
using namespace std;
int sum(int z, int x)
{
int sum = z + x;
return sum;
}
int prod(int z, int x)
{
int prod = z * x;
return prod;
}
float med(float z, float x)
{
float med = (z + x)/2;
return med;
}
int cmmdc(int z, int x)
{
while (z != x)
{
if (z > x)
z = z - x;
else
x = x - z;
}
int cmmdc = z;
return cmmdc;
-86-
}
int cmmmc(int z, int x)
{
int a = z, b = x;
while (a != b)
{
if (a > b) a = a - b;
else b = b - a;
}
int cmmmc = (z * x) / a;
return cmmmc;
}
int max(int z, int x)
{
int max;
if (z > x)
{
max = z;
}
else
{
max = x;
}
return max;
}
int min(int z, int x)
{
int min;
if (z > x)
{
min = x;
}
else
{
min = z;
}
return min;
}
void diviz(int x, int z)
{
int min;
if (x>z) min = z;
else min = x;
for ( int i = 1; i <= min/2; i++)
{
if (x % i == 0 && z % i == 0)
{
cout << i<<" ";
}
}
if (x % min == 0 && z % min == 0)
-87-
{
cout << min;
}
}
void mult(int x, int z)
{
int k = 0;
for (int i = 1; k<5; i++)
{
for (int j = 0; j <= x*i; j++)
{
if (x * i == z * j)
{
cout << x * i << " ";
k++;
}
}
}
}
void cif(int x, int z)
{
int tx[50], tz[50], i = 0, k = 0, m = 0, l = 0;
while (x > 0)
{
tx[i] = x % 10;
x /= 10;
i++;
k++;
}
i = 0;
while (z > 0)
{
tz[i] = z % 10;
z /= 10;
i++;
m++;
}
for (int i = 0; i < k; i++)
{
for (int j = 0; j <m; j++)
{
if (tx[i] == tz[j])
{
cout << tx[i] << " ";
l++;
}
}
}
if (l == 0) cout << "Lipsesc";
}
void cif_2(int x, int z)
-88-
{
int tx[50], tz[50], i = 0, k = 0, m = 0, l = 0, p=0;
while (x > 0)
{
tx[i] = x % 10;
x /= 10;
i++;
k++;
}
i = 0;
while (z > 0)
{
tz[i] = z % 10;
z /= 10;
i++;
m++;
}
for (int i = 0; i < k; i++)
{
for (int j = 0; j < m; j++)
{
if (tx[i] == tz[j])
{
p++;
}
}
if (p == 0)
{
cout << tx[i] << " ";
l++;
}
p = 0;
}
if (l == 0) cout << "Lipsesc";
}
void prieten(int x, int z)
{
int k = 0, m = 0;
for (int i = 1; i <= x; i++) {
if (x % i == 0)
{
k++;
}
}
for (int i = 1; i <= z; i++) {
if (z % i == 0)
{
m++;
}
}
if (k==m)
-89-
{
cout << "\nPRIETENE";
}
}
int main()
{
int a, b;
cout << "Introdu 2 numere: ";
cin >> a >> b;
cout << "Suma: " << sum(a, b) << endl;
cout << "Produsul: " << prod(a, b) << endl;
cout << "Media aritmetica: " << med(a, b) << endl;
cout << "Cel mai mare divizor comun: " << cmmdc(a, b) << endl;
cout << "Cel mai mic multiplu comun: " << cmmmc(a, b) << endl;
cout << "Numarul minim: " << min(a, b) << endl;
cout << "Numarul maxim: " << max(a, b) << endl;
cout << "Suma numerelor in formatul a+b=c: " << a << "+" << b << "=" << sum(a, b) << endl;
cout << "Produsul numerelor in formatul a*b=c: " << a << "*" << b << "=" << prod(a, b) << endl;
cout << "Toti divizori comuni: "; diviz(a, b);
cout << "\nCinci multipli comuni: "; mult(a, b);
cout << "\nCifrele care se contin in ambele numere: "; cif(a, b);
cout << "\nCifrele care sunt in primul numar si nu sunt in al doilea numar: "; cif_2(a, b);
prieten(a, b);
}

-90-
-91-
-92-
-93-
//Lungu Sergiu
#include <iostream>
#include <math.h>
using namespace std;
int cmmdc(int z, int x, int c)
{
int min, cmmdc = 0;
if (z > x) min = x;
else min = z;
if (c < min) min = c;
for (int i = 1; i <= min / 2; i++)
{
if (z % i == 0 && x % i == 0 && c % i == 0)
{
if (cmmdc < i)
{
cmmdc = i;
}
}
}
if (z % min == 0 && x % min == 0 && c % 1 == 0)
-94-
{
if (cmmdc < min)
{
cmmdc = min;
}
}
return cmmdc;
}
int cmmmc(int z, int x, int c)
{
int cmmmc = 0;
for (int i = 1; cmmmc == 0; i++)
{
for (int j = 0; j <= z * i; j++)
{
if (z * i == x * j)
{
for (int l = 0; l < z * i; l++)
{
if (z * i == c * l)
{
cmmmc = z * i;
}

}
}
}
}
return cmmmc;
}
int max(int z, int x, int c)
{
int max = 0;
if (z > x) max = z;
else max = x;
if (max < c) max = c;
return max;
}
int min(int z, int x, int c)
{
int min = 0;
if (z > x) min = x;
else min = z;
if (min > c) min = c;
return min;
}
void diviz(int z, int x, int c)
{
int min;
if (z > x) min = x;
else min = z;
-95-
if (c < min) min = c;
for (int i = 1; i <= min / 2; i++)
{
if (z % i == 0 && x % i == 0 && c % i == 0)
{
cout << i << " ";
}
}
if (z % min == 0 && x % min == 0 && c % 1 == 0)
{
cout << min;
}

}
void mult(int z, int x, int c)
{
int k = 0;
for (int i = 1; k<3; i++)
{
for (int j = 0; j <= z * i; j++)
{
if (z * i == x * j)
{
for (int l = 0; l < z * i; l++)
{
if (z * i == c * l)
{
cout << z * i << " ";
k++;
}

}
}
}
}
}
void triangle(int z, int x, int c)
{
int k = 0;
if (z < x + c && x < z + c && c < z + x)
{
cout << "Da";
k++;
}
else cout << "Nu";
if (k == 1)
{
int p = (z + x + c) / 2;
cout <<"\nAria triunghiului: " << sqrt(p * (p - z) * (p - x) * (p - c));
cout << "\nPerimetru triunghiului: " << p*2;
}
-96-
}
void ecu(int z, int x, int c)
{
int delt = pow(x, 2) - 4 * z * c;
if (delt > 0)
{
cout <<(float) ((x - (2 * x)) + sqrt(delt)) / (2 * z) << " ";
cout <<(float) ((x - (2 * x)) - sqrt(delt)) / (2 * z);
}
if (delt == 0) cout << (x - (2 * x)) / 2 * z;
if (delt < 0) cout << "Nu exista solutii";
}
int main()
{
int a, b, c;
cout << "Introdu 3 numere: ";
cin >> a >> b >> c;
cout << "Cel mai mare divizor comun: " << cmmdc(a, b, c) << endl;
if (a > 0 && b > 0 && c > 0)cout << "Cel mai mic multiplu comun: " << cmmmc(a, b, c) << endl;
cout << "Valoarea maxima: " << max(a, b, c) << endl;
cout << "Valoarea minima: " << min(a, b, c) << endl;
if (a > 0 && b > 0 && c > 0)
{
cout << "Toti divizorii comuni: "; diviz(a, b, c);
cout << "\n3 cei mai mici multipli comuni: "; mult(a, b, c);
}
cout << "\nNumerele date pot forma un triunghi? "; triangle(a, b, c);
cout << "\nsolutiile reale ale ecuatiei ax^2 + bx + c = 0: "; ecu(a, b, c);
}

-97-
-98-
-99-
-100-
Tema 6 Subporograme. Domenii de vizibilitate. Efecte colaterale.

//Lungu Sergiu
#include <iostream>
using namespace std;

///citirea datelor
void citire(int &x)
{
cout<<"Introduceti un numar ";
cin>>x;
}

///afisarea datelor
void afisare2(int x)
{
cout<<x<<endl;
}

///a
int suma(int x, int y, int &s)
{
s=x+y; return s;
}

///b
int produsul(int x, int y, int &pr)

-101-
{
pr=x*y; return pr;
}

///c
float med (int x, int y, int &med)
{
med=(x+y)/2;
return med;
}

///d
int cmmdc (int x, int y)
{
while(x!=y)
{
if(x>y)
x=x-y;
else
y=y-x;
}
return x;
}

///e
int cmmmc(int x,int y, int &z)
{
int x1,y1;
x1=x;
y1=y;
while(x1!=y1)
{
if(x1>y1)
x1=x1-y1;
else
y1=y1-x1;
}
z=(x*y)/x1;
return z;
}

///f
int vmax(int x, int y, int &vmax)
{
if(x>y) vmax=x;
else vmax=y;
return vmax;
}

///g
int vmin (int x, int y, int &vmin)
-102-
{
if(x>y) vmin=y;
else vmin=x;
return vmin;
}

int main()
{

int x,y;
citire (x);
citire (y);

///a
int sum;
sum = suma(x,y,sum);
cout<<"Suma este: "; afisare2(sum);

///b
int pr;
pr = produsul(x,y,pr);
cout<<"Produsul este: "; afisare2(pr);

///c
int media;
media=float(med(x,y,media));
cout<<"Media este: "; afisare2(media);

///d
int d;
d = cmmdc(x,y);
cout<<"Cel mai mare divizor comun este: "; afisare2(d);

///e
int e;
e = cmmmc(x,y,e);
cout<<"Cel mai mic multiplu comun este: "; afisare2(e);

///f
int maxim;
maxim = vmax(x,y,maxim);
cout<<"Numarul maxim este: "; afisare2(maxim);

///g
int minim;
minim = vmin(x,y,minim);
cout<<"Numarul minim este: "; afisare2(minim);

return 0;
}
-103-
#include <iostream>
#include <iomanip>
using namespace std;

struct data{int ore, min, sec;} d1, d2, d3, d4, d5;
///a
void citire(data &a)
{
cout<<"Introduceti datele ora:min:sec: ";
cin>>a.ore>>a.min>>a.sec;
}

///b
void afisare(data &a)
{
cout<<a.ore<<":"<<a.min<<":"<<a.sec<<endl;
}

///c
void suma(data a, data b, data &c)
{
c.sec=a.sec+b.sec;
if(c.sec>60) {c.min++; c.sec-=60;}
-104-
c.min=a.min+b.min;
if(c.min>60) {c.ore++; c.min-=60;}
c.ore+=a.ore+b.ore;
if(c.ore >= 24)c.ore-=24;
}

///d
void diferenta(data a, data b, data &c)
{
c.ore=a.ore-b.ore;
c.min=a.min-b.min;
if(c.min<0) {c.ore--; c.min+=60;}
c.sec=a.sec-b.sec;
if(c.sec<0) {c.min--; c.sec+=60;}
}

///e

void vmax(data a, data b, data &c)


{
if(a.ore>=b.ore) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else if(a.ore<b.ore) c.ore=b.ore, c.min=b.min, c.sec=b.sec;
else if(a.min>=b.min) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else if(a.min<b.min) c.ore=b.ore, c.min=b.min, c.sec=b.sec;
else if(a.sec>=b.sec) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else c.ore=b.ore, c.min=b.min, c.sec=b.sec;
}

///f

void vmin(data a, data b, data &c)


{
if(a.ore<=b.ore) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else if(a.ore>b.ore) c.ore=b.ore, c.min=b.min, c.sec=b.sec;
else if(a.min<=b.min) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else if(a.min>b.min) c.ore=b.ore, c.min=b.min, c.sec=b.sec;
else if(a.sec<=b.sec) c.ore=a.ore, c.min=a.min, c.sec=a.sec;
else c.ore=b.ore, c.min=b.min, c.sec=b.sec;
}

int main()
{
citire(d1);
citire(d2);

afisare(d1);

afisare(d2);

-105-
suma(d1, d2, d3);
afisare(d3);

vmax(d1,d2,d4);
vmin(d1,d2,d5);
diferenta(d4,d5,d3);
afisare(d3);

vmax(d1,d2,d3);
afisare(d3);

vmin(d1,d2,d3);
afisare(d3);

return 0;
}

#include <iostream>
#include <iomanip>
using namespace std;

struct data{int luna, zi,an;} d1, d2, d3, d4, d5;


///a
void citire(data &a)
{
cout<<"Introduceti datele zi, luna, anul: ";
cin>>a.zi>>a.luna>>a.an;
}

///b
void afisare(data &a)
{
-106-
cout<<a.an<<":"<<a.luna<<":"<<a.zi<<endl;
}

///c
void suma(data a, data b, data &c)
{
c.zi=a.zi+b.zi;
if(c.zi>30) {c.luna++; c.zi-=30;}
c.luna=a.luna+b.luna;
if(c.luna>12) {c.an++; c.luna-=12;}
c.an+=a.an+b.an;
}

///d
void diferenta(data a, data b, data &c)
{
c.an=a.an-b.an;
c.luna=a.luna-b.luna;
if(c.luna<1) {c.an--; c.luna+=12;}
c.zi=a.zi-b.zi;
if(c.zi<=0) {c.luna--; c.zi+=30;}
}

///e

void vmax(data a, data b, data &c)


{
if(a.an>=b.an) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else if(a.an<b.an) c.an=b.an, c.luna=b.luna, c.zi=b.zi;
else if(a.luna>=b.luna) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else if(a.luna<b.luna) c.an=b.an, c.luna=b.luna, c.zi=b.zi;
else if(a.zi>=b.zi) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else c.an=b.an, c.luna=b.luna, c.zi=b.zi;
}

///f

void vmin(data a, data b, data &c)


{
if(a.an<=b.an) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else if(a.an>b.an) c.an=b.an, c.luna=b.luna, c.zi=b.zi;
else if(a.luna<=b.luna) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else if(a.luna>b.luna) c.an=b.an, c.luna=b.luna, c.zi=b.zi;
else if(a.zi<=b.zi) c.an=a.an, c.luna=a.luna, c.zi=a.zi;
else c.an=b.an, c.luna=b.luna, c.zi=b.zi;
}

int main()
{
citire(d1);
citire(d2);
-107-
afisare(d1);

afisare(d2);

suma(d1, d2, d3);


afisare(d3);

vmax(d1,d2,d4);
vmin(d1,d2,d5);
diferenta(d4,d5,d3);
afisare(d3);

vmax(d1,d2,d3);
afisare(d3);

vmin(d1,d2,d3);
afisare(d3);

return 0;
}

-108-
Tema 7 Subprograme cu parametri de tip tablou.

#include <iostream>
#include <iomanip>
int i,j;
using namespace std;

void citire(int t[], int &n)


{
cout<<"numarul de elemente " ; cin>>n;
for(i=0;i<n;i++) {
cout<<"t["<<i<<"]="; cin>>t[i];
} cout<<endl;
}
void afisare(int t[], int a)
{
cout<<"elementele tabloului " <<endl;
for(i=0;i<a;i++)
cout<<setw(5)<<t[i]; cout<<endl;
}
int sortare(int t[], int&n)
-109-
{
int aux;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(t[i]>t[j]){aux=t[i];t[i]=t[j];t[j]=aux;}
cout<<"tabloul sortat crescator"<<endl;
afisare(t,n);
}
int inversare(int t[],int&n)
{
cout<<"tabloul inversat"<<endl;
for(i=n-1;i>=0;i--)
cout<<setw(5)<<t[i];
cout<<endl;
}
int maximal(int t[], int&n)
{
int maxx=t[0];
for(i=0;i<n;i++)
if(maxx<t[i])maxx=t[i];
cout<<"elementul maximal este "<<maxx<<endl;
}
int minimal(int t[], int&n)
{
int minn=t[0];
for(i=0;i<n;i++)
if(minn>t[i])minn=t[i];
cout<<"elementul minimal este "<<minn<<endl;
}
int nrdemax(int t[], int&n)
{
int nr=0;
int maxx=t[0];
for(i=0;i<n;i++)
if(maxx>t[i])t[i]=maxx;
for(i=0;i<n;i++)
if(maxx==t[i])nr++;
cout<<"nr de elemente maximale este "<<nr<<endl;
}
int nrdemin(int t[], int&n)
{
int nr=0;
int minn=t[0];
for(i=0;i<n;i++)
if(minn>t[i])minn=t[i];
for(i=0;i<n;i++)
if(minn==t[i])nr++;
cout<<"nr de elemente minimale este "<<nr<<endl;
}
int main()
{
-110-
int A[100], n;
citire(A,n);
afisare(A,n);
sortare(A,n);
inversare(A,n);
maximal(A,n);
minimal(A,n);
nrdemax(A,n);
nrdemin(A,n);
return 0;
}

-111-
#include <iostream>
#include <iomanip>
int A[100],B[100],c[200],d[100],i,y,h,z,n_A,n_B;
using namespace std;
void citire(int t[], int &n)
{
cout<<"numarul de elemente " ; cin>>n;
for(i=0;i<n;i++) {
cout<<"t["<<i<<"]="; cin>>t[i];
} cout<<endl;
}
void afisare(int t[], int a)
{
cout<<"elementele tabloului " <<endl;
for(i=0;i<a;i++)
cout<<setw(5)<<t[i]; cout<<endl;
}

-112-
int suma(int t[], int&n)
{
int sum=0;
for(i=0;i<n;i++)
sum+=t[i];
cout<<"suma tabloului este "<<sum<<endl;
}
int diferenta(int t[], int&n)
{
int dif=0;
for(i=0;i<n;i++)
dif-=t[i];
cout<<"diferenta tabloului este "<<dif<<endl;
}
int tablou(int t[],int i, int a[], int y,int c[], int&z)
{
int w;
z=i+y;
for( w=0;w<i;w++)
c[w]=t[w];
for(int s=0;s<z;w++,s++)
c[w]=a[s];
}
int comun(int t[],int i,int a[],int y, int d[], int &h)
{
int w;
for( w=0;w<i;w++)
for(int j=0;j<y;j++)
if(t[w]==a[j]) d[h++]=t[w];
}
int main()
{
citire(A,n_A);
citire(B,n_B);
afisare(A,n_A);
afisare(B,n_B);
suma(A,n_A);
suma(B,n_B);
diferenta(A,n_A);
diferenta(B,n_B);
tablou(A,n_A,B,n_B,c,z);
afisare(c,z);
comun(A,n_A,B,n_B,d,h);
afisare(d,h);
return 0;
}

-113-
-114-
#include <iostream>
#include <iomanip>
int t[100][100], n,m,i,j;
using namespace std;

void citire(int t[100][100], int&n, int&m)


{
cout<<"introduceti liniile si coloanele "; cin>>n>>m;
for(i=0;i<n;i++)
for(j=0;j<m;j++){
cout<<"t["<<i<<"]["<<j<<"]=";
cin>>t[i][j];
}
}
void afisare(int t[100][100],int&n,int&m)
{
cout<<"elementele tabloului"<<endl;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
cout<<setw(6)<<t[i][j];
cout<<endl;}
}
int maxim(int t[100][100],int&n,int&m)
{
int max=t[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(max<t[i][j]) max=t[i][j];}
cout<<"elementul maximal este "<<max<<endl;
}
int minim(int t[100][100],int&n,int&m)
{
int min=t[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(min>t[i][j]) min=t[i][j];}
cout<<"elementul minimal este "<<min<<endl;
}
int nrdemax(int t[100][100],int&n,int&m)
{
int nr=0;
int max=t[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(max<t[i][j]) max=t[i][j];}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(max==t[i][j])nr++;
cout<<"nr de elemente maximale este "<<nr<<endl;
}
int nrdemin(int t[100][100],int&n,int&m)
-115-
{
int nr=0;
int min=t[0][0];
for(i=0;i<n;i++)
for(j=0;j<m;j++){
if(min>t[i][j]) min=t[i][j];}
for(i=0;i<n;i++)
for(j=0;j<m;j++)
if(min==t[i][j])nr++;
cout<<"nr de elemente minimale este "<<nr<<endl;
}
void sumlinii(int t[100][100],int&n,int&m)
{
for(i=0;i<n;i++){
int sum=0;
for(j=0;j<m;j++){
sum+=t[i][j];}
cout<<"suma de pe linii "<<i+1<<" = "<<sum<<endl;}
}
void sumcoloane(int t[100][100],int&n,int&m)
{
for(j=0;j<m;j++){
int sum=0;
for(i=0;i<n;i++){
sum+=t[i][j];}
cout<<"suma de pe coloane "<<j+1<<" = "<<sum<<endl;}
}
void sortare(int t[100][100],int&n,int&m)
{
int aux;
for(int l=0;l<n;l++)
for(i=0;i<n;i++)
for(j=0;j<m-1;j++)
if(t[i][j]>t[i][j+1]){aux=t[i][j];t[i][j]=t[i][j+1];t[i][j+1]=aux;}
cout<<"\ntabloul sortat "<<endl;
for(i=0;i<n;i++){
cout<<endl;
for(j=0;j<m;j++)
cout<<setw(5)<<t[i][j];}
}
void perimetru(int t[100][100],int&n,int&m)
{
int s=0;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
if((i==0)|| (i==n-1)||(j==0) || (j==m-1))
s+=t[i][j];
cout<<"\nsuma perimetrului este "<<s<<endl;
}

-116-
int main()
{
citire(t,n,m);
afisare(t,n,m);
maxim(t,n,m);
minim(t,n,m);
nrdemax(t,n,m);
nrdemin(t,n,m);
sumlinii(t,n,m);
sumcoloane(t,n,m);
sortare(t,n,m);
perimetru(t,n,m);

return 0;
}

-117-
Tema 8 Subprograme recursive.

#include <iostream>
#include <math.h>
using namespace std;
int p_a(int z)
{
if (z == 1)return 1;
else return 2 * z - 1 + p_a(z - 1);
}
int p_b(int z)
{
if (z == 1)return 1;
else return 2 * z + p_b(z - 1);
}
float p_e(int z)
{
if (z == 1)return 1;
else return 1.0 / (5 * z - 3) + p_e(z - 1);
}
int p_d(int z)
{
if (z == 1)return 1;
else return 4 * z - 3 + p_d(z - 1);
}
int p_c(int z)
{
if (z == 1)return 1;
else return 3 * z - 1 + p_c(z - 1);
}
float p_f(int z)
{
if (z == 1)return 1;
else return 1.0 / (5 * z - 2) + p_f(z - 1);
}
float p_g(int z)
{
if (z == -1)return -1;
-118-
else return (pow(-1, z) * (1 / pow(2, z))) + p_g(z - 1);
}
int main()
{
int a;
cout << "Introdu un numar: "; cin >> a;
cout << "1+3+5+...+2n-1 - " << p_a(a) << endl;
cout << "2+4+6+...+2n; - " << p_b(a) << endl;
cout << "2+5+8+...+3n-1 - " << p_c(a) << endl;
cout << "1+5+9+...+4n-3 - " << p_d(a) << endl;
cout << "1/2+1/7+1/12...+1/5n-3 - " << p_e(a) << endl;
cout << "1/3+1/8+1/13+...+1/5n-2 - " << p_f(a) << endl;
cout << "-1/2+1/4-1/8+1/16-...+(-1)^n*1/2^n - " << p_g(a) << endl;
}

#include <iostream>
using namespace std;
-119-
void citire(int t[], int n)
{
if (n == 1)
{
cin >> t[n - 1];
}
else
{
cin >> t[n - 1];
citire(t, n - 1);
}
}
void afisare(int t[], int n)
{
if (n == 1)
{
cout << " " << t[n - 1];
}
else
{
cout << " " << t[n - 1];
afisare(t, n - 1);
}
}
void afisare_inv(int t[], int n, int i)
{
if (n == 1)
{
cout << " " << t[i - n];
}
else
{
cout << " " << t[i - n];
afisare_inv(t, n - 1, i);
}
}
int suma(int t[], int n)
{
int s = 0;
if (n == 0) return s;
else
{
s += t[n - 1];
return s + suma(t, n - 1);
}
}
int suma_imp(int t[], int n)
{
int s = 0;
if (n == 0) return s;
else
-120-
{
if (t[n - 1] % 2 != 0)
{
s += t[n - 1];
}
return s + suma_imp(t, n - 1);
}
}
int suma_par(int t[], int n)
{
int s = 0;
if (n == 0) return s;
else
{
if (t[n - 1] % 2 == 0)
{
s += t[n - 1];
}
return s + suma_par(t, n - 1);
}
}
void e_par(int t[], int n)
{
if (n == 0)
{
if (t[n] % 2 == 0 && t[n] != 0)
{
cout << " " << t[n];
}
}
else
{
if (t[n-1] % 2 == 0 && t[n-1] != 0)
{
cout << " " << t[n - 1];
}
e_par(t, n - 1);
}
}
void e_imp(int t[], int n)
{
if (n == 0)
{
if (t[n] % 2 != 0)
{
cout << " " << t[n];
}
}
else
{
if (t[n] % 2 != 0)
-121-
{
cout << " " << t[n];
}
e_imp(t, n - 1);
}
}
void exista_n(int t[], int n, int k)
{
int i = 0;
if (n == 1 && i == 0) cout << "Nu exista";
else if (t[n - 1] == k)
{
cout << "Exista";
i = 1;
}
else if (t[n - 1] != k)
{
return exista_n(t, n - 1, k);
}
}
void exista_p(int t[], int n)
{
int i = 0;
if (n == 0 && i == 0) cout << "Nu exista";
else if (t[n] % 2 == 0)
{
cout << "Exista";
i = 1;
}
else if (t[n - 1] % 2 != 0)
{
return exista_p(t, n - 1);
}
}
int main()
{
int t[50], n, i, k;
cout << "n="; cin >> n;
i = n;
cout << "Introduceti elementele tabluilui: " << endl;
citire(t, n);
cout << "Elementele tabloului: " << endl; afisare(t, n); cout << endl;
cout << "Elementele tabloului invers: " << endl; afisare_inv(t, n, i); cout << endl;
cout << "Suma elementelor: " << suma(t, n);
cout << "\nSuma elementelor impare: " << suma_imp(t, n);
cout << "\nSuma elementelor pare: " << suma_par(t, n);
cout << "\nElementele pare: "; e_par(t, n);
cout << "\nElementele impare: "; e_imp(t, n);
cout << "\nIntroduceti un numar: "; cin >> k;
cout << "Exista in tablou numarul introdus: "; exista_n(t, n, k);
cout << "\nExista in tablou numere pare: "; exista_p(t, n);}
-122-
#include <iostream>
using namespace std;
int produs(int a, int b)
{
int prod = 0;
if (a == 0) return prod;
else
{
prod += b;
return prod + produs(a - 1, b);
}

}
int cat(int a, int b)
{
int k = 0;
if (a == 0 || a < b) return k;
else
{
k++;
return k + cat(a - b, b);
}

-123-
}
int rest(int a, int b)
{
if (a == 0 || a < b) return a;
else
{
return rest(a - b, b);
}
}
int main()
{
int a, b;
cout << "Introdu 2 numere intregi: "; cin >> a; cin >> b;
cout <<"Produs: " << produs(a, b) << endl;
cout <<"Cat: " << cat(a, b) << endl;
cout <<"Rest: " << rest(a, b);
}

-124-

You might also like