Sunteți pe pagina 1din 4

//Problema 1: Definiţi o funcţie macro MAX care determină şi afişează maximul

dintre 2 si dintre 3 numere introduse de la tastatură.

#include<iostream>
using namespace std;
#define MAX(a,b) {if(a<=b) cout<<b;\
else cout<<a;\
}
#define MAX2(a,b,c) { if(a>b && a>c) cout<<"";\
if(b>a) a=b;\
if(c>a) a=c;\
cout<<a;\
}
int main()
{
int a,b,c;
cin >>a;
cin >>b;
cin >>c;
cout<<"Maximul dintre cele doua numere este: ";
MAX(a,b);
cout<<endl;
cout<<"Maximul dintre cele trei numere este: ";
MAX2(a,b,c);

***********************************************************************************
**********************************************

//Problema 2: Definiţi o funcţie inline min( ) care determină şi afişează minimul


dintre 2 si dintre 3 numere întregi introduse de la tastatură.
#include <iostream>

using namespace std;

inline minim(int, int);


inline minim_2(int, int, int);
int main()
{
int a,b,c;
cin>>a;
cin>>b;
cin>>c;
cout<<"Minimul dintre cele doua numere este: "<<minim(a,b)<<endl;
cout<<"Minimul dintre cele trei numere este: "<<minim_2(a,b,c);
}

inline minim (int a, int b)


{
if(a<b)
return a;
else return b;
}

inline minim_2(int a, int b, int c)


{
int minim;
minim=a;
if(b<a) minim=b;
if(c<a) minim=c;
return minim;
}

***********************************************************************************
**********************************************

//Problema 3: Considerati o structura de date Student, care contine un camp de tip


sir de caractere (maxim 30) pentru nume_prenume si un alt camp nota de tip int.
Definiti un obiect de tip Student la care datele vor fi citite de la tastatura.
Validati ca nume_prenume sa aiba cel putin 5 caractere iar nota sa fie >=5 si <=10.
Afisati campurile obiectului in caz de introducere corecta.

#include <iostream>
#include <assert.h>
#include <string.h>

using namespace std;

struct Student{
char nume_prenume[30];
int nota;
};
int main()
{
struct Student student;
cout<<"Numele si prenumele studentului: ";
cin.getline(student.nume_prenume,sizeof(student.nume_prenume));
assert(strlen(student.nume_prenume)>=5);
cout<<"Introduceti nota studentului: ";
cin>>student.nota;
assert(student.nota>=5 && student.nota<=10);
cout<<student.nume_prenume<<endl;
cout<<student.nota;
return 0;
}

***********************************************************************************
**********************************************

//Problema 4: Consideraţi o funcţie cu 3 parametrii toţi impliciţi (int, float,


double) care returnează produsul acestor valori. Apelaţi funcţia considerând mai
multe variante de apel concrete (fără parametri, 1 parametru, 2 parametri, 3
parametri).

#include <iostream>

using namespace std;


int functie(int, float, double);
int main()
{
int a;
float b;
double c;
cout<<"a= ";cin>>a;
cout<<"b= ";cin>>b;
cout<<"c= ";cin>>c;
functie();
functie(a);
functie(a,b);
cout<<functie(a,b,c);
return 0;

int functie(int a, float b, double)


{
return a*b*c;
}

***********************************************************************************
**********************************************

//Problema 5: Folosind supraîncărcarea funcţiilor definiţi trei funcţii cu acelaşi


nume dar cu tipuri diferite de parametri (int, int *, int&) care returnează
radicalul unei valori intregi. Analizaţi cazul transmiterii parametrilor prin
valoare şi prin referinţă

#include <iostream>
#include <math.h>

using namespace std;


int radical(int a);

int main()
{
int a;
cin>>a;
cout<<"Radical prin int: "<<radical(a)<<endl;
return 0;
}

int radical(int a)
{
return sqrt(a);
}

***********************************************************************************
**********************************************

//Problema 6: Determinaţi minimul dintr-un şir de 10 numere flotante (introduse de


la tastatură/iniţializate) folosind funcţii cu un număr variabil de parametri. Se
vor considera primele 7 valori din şir, apoi următoarele 3, după care se afişează
minimul din cele 10 folosind valorile determinate anterior.

#include <iostream>
using namespace std;

int main(){

int n=10;
float sir[11];
int i;
for (i = 1; i <= n; i++){
cin>>sir[i];
}
float minim = sir[1];
for (i = 2; i <= n; i++){
if (minim > sir[i])
minim = sir[i];
}
cout<<minim;

return 0;
}

***********************************************************************************
**********************************************

//Problema 8: Să se scrie un program care afişează numele programului, data şi ora


compilării şi numărul de linii pe care îl are acest program.

#include <iostream>

using namespace std;

int main()
{
cout<<"Numele programului: "<<__FILE__<<endl;
cout<<"Numarul de linii:"<<__LINE__<<endl;
cout<<"Data: "<<__DATE__<<endl;
cout<<"Ora: "<<__TIME__;
}

***********************************************************************************
**********************************************

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