1. Lucrare de laborator Nr. 2
2. Tema: Clase (constructori, destructori). Funcţii şi clase prietene.
3. Scopul lucrarii: Familiarizarea studenţilor cu noţiunea de clase, utilizarea constructorilor, destructorilor, cu funcţii şi clase prietene.
4. Sarcina de lucru :
Sa se scrie un program care sa defineasca un nou tip de variabile – tipul complex si sa se construiasca functii adecvate pentru operatiile de baza cu acest tip de date.
5. Textul programului in limbajul C :
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class complex
{
float real;
float img;
public:
complex()
{ real=img=0; }
complex operator +(complex);
complex operator -(complex);
complex operator *(complex);
complex operator /(complex);
void getdata()
{ cout<<" Partea Reala : ";
cin>>real;
cout<<" Partea Imaginara : ";
cin>>img; }
void display()
{ if(img>=0)
cout<<real<<"+"<<img<<"i"<<endl;
else
cout<<real<<"-"<<(-1*img)<<"i"<<endl; } };
complex complex::operator+(complex c)
{ complex tmp;
tmp.real=real+c.real;
tmp.img=img+c.img;
return(tmp); }
complex complex::operator-(complex c)
{ complex tmp;
tmp.real=real-c.real;
tmp.img=img-c.img;
return(tmp); }
complex complex::operator*(complex c)
{ complex tmp;
tmp.real=(real*c.real)-(img*c.img);
tmp.img=(img*c.real)+(real*c.img);
return(tmp);}
complex complex::operator/(complex c)
{ complex tmp;
float ft;
ft=c.real*c.real+c.img*c.img;
tmp.real=(real*c.real+img*c.img)/ft;
tmp.img=(img*c.real-real*c.img)/ft;
return(tmp); }
void main()
{ complex c1,c2,c3;
clrscr();
cout<<"Introduceti Primul Numar:"<<endl;
c1.getdata();
clrscr();
cout<<"Introduceti al Doilea Numar:"<<endl;
c2.getdata();
clrscr();
cout<<"nNumarul 1 complex: ";
c1.display();
cout<<"Numarul 2 complex: ";
c2.display();
cout<<endl<<" Operatiile cu aceste numere: "<<endl;
cout<<"Adunarea : ";
c3=c1+c2;
c3.display();
cout<<"Scaderea : ";
c3=c1-c2;
c3.display();
cout<<"Inmultirea : ";
c3=c1*c2;
c3.display();
cout<<"Impartirea : ";
c3=c1/c2;
c3.display();
getch().
Universitatea Tehnica a Moldovei
Catedra Calculatoare
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.