Sunteți pe pagina 1din 4

Ministerul Educației, Culturii și Cercetării al Republicii Moldova

Universitatea Tehnică a Moldovei


Facultatea Calculatoare, Informatică și Microelectronică
Departamentul Microelectronică și Inginerie Biomedicală

Raport
la lucrarea de laborator nr. 3

Tema: Supraîncărcarea operatorilor

Disciplina: Programarea orientată pe obiecte

A efectuat: st. gr. ISBM-161, Cazacu Constantin

A verificat: lector.univ., Plotnic Constantin

Chișinău – 2017
Scopul lucrării: familiarizarea studenţilor cu noţiunile operatori supraîncărcaţi.

Sarcina:
7.Scrieţi un program care efectuează următoarele operaţii asupra numerelor
fracţionare:
– transformarea unui număr fracţionar compus într-o fracţie supraunitară,
– adunarea numerelor fracţionare,
– înmulţirea numerelor fracţionare,
– scăderea numerelor fracţionare,
– împărţirea numerelor fracţionare.
 Clasa trebuie să fie absolut funcţională, adică să conţină toţi constructorii necesari
şi destructorul.

Listing-ul programului:
#include <iostream>
using namespace std;
class Fractie{
int numerator;
int denominator;
public:
Fractie(){
numerator=0;
denominator=0;
}

Fractie(int num,int den){


numerator=num;
denominator=den;
}

//overloading the operator +


Fractie operator+(Fractie f){
Fractie r;
r.numerator=(numerator*f.denominator)+(denominator*f.numerator);
r.denominator=denominator*f.denominator;
return(r);
}

//overloading the operator -


Fractie operator-(Fractie f){
Fractie r;
r.numerator=(numerator*f.denominator)-(denominator*f.numerator);
r.denominator=denominator*f.denominator;
return(r);
}

//overloading the operator *


Fractie operator*(Fractie f){
Fractie r;
r.numerator=numerator*f.numerator;
r.denominator=denominator*f.denominator;
return(r);
}

//overloading the operator /


Fractie operator/(Fractie f){
Fractie r;
r.numerator=numerator*f.denominator;
r.denominator=denominator*f.numerator;
return(r);
}
void printF(){
cout<<numerator<<"/"<<denominator<<endl;
}

};

int main(){
Fractie f1(1,4);
Fractie f2(2,3);
Fractie resultAdd=f1+f2;
Fractie resultSubtract=f1-f2;
Fractie resultMultiply=f1*f2;
Fractie resultDivide=f1/f2;
printf("Adunarea fractiei:\n");
resultAdd.printF();
printf("Scaderea fractiei:\n");

resultSubtract.printF();
printf("Inmultirea fractiei:\n");
resultMultiply.printF();
printf("Impartirea fractiei:\n");
resultDivide.printF();

return 0;
}

Concluzie:

În lucrarea de laborator nr.3 ne-am familiarizat cu noțiunile de operatori supraîncărcați. Am


supraîncărcat operatorul binar () pentru căutarea unui substring într-un string și pentru inversarea
unui string, / pentru extragerea unui substring dintr-un string și == pentru compararea a două string-
uri.