Sunteți pe pagina 1din 5

Ministerul Educaţiei, Culturii si Cercetarii al Republicii

Moldova

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatica si Microelectronica


Departamentul ISA

RAPORT
Lucrarea de laborator nr.1
la POO

A efectuat:
st. gr. AI-171 E. Cazacov

A verificat: M. Osovschi

Chişinău - 2018
Lucrarea de laborator nr.1

Tema: Reprezentarea tipurilor de date ale limbajului C++ în memoria calculatorului. Operatorii
limbajului C++. Construcţiile elementare ale limbajului C++ (instrucţiunile for, while, do-while,
if-else, switch-break, goto). Tipuri de date recursive, operaţii asupra listelor, arborilor.
Construirea şi elaborarea programelor recursive. Fişierele.

Scopul lucrării: familiarizarea studenţilor cu reprezentarea tipurilor de date ale limbajului C++ în
memoria calculatorului, operatorii limbajului C++, construcţiile elementare ale limbajului C++
(instrucţiunile for, while, do-while, if-else, switch-break, goto), tipuri de date recursive, operaţii
asupra listelor, arborilor, construirea şi elaborarea programelor recursive, lucrul cu fişierele.

Programul in C++:

#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;

long long convertDecimalToBinary(int);

int main()
{
int n, i, binarNr;
cout << "Introduceti un numar intreg: ";
cin >> n;
binarNr = convertDecimalToBinary(n);
cout << n << " in decimal = " << binarNr << " in binar" << endl ;
return 0;
}
long long convertDecimalToBinary(int n)
{
long long binarNr = 0;
int rest, i = 1, pas = 1;

while (n!=0)
{
rest= n%2;
cout << "Pas " << pas++ << ": " << n << "/2, Rest = " << rest << ", Cit = " << n/2
<< endl;
n /= 2;
binarNr += rest*i;
i *= 10;
}
return binarNr;
}
#include<iostream>
#include<conio.h>
using namespace std;

struct nod1{int nr1;


nod1 *back;};
nod1 *varf1;

struct nod2{int nr2;


nod2 *back;};
nod2 *varf2;

void push1(nod1* &v1,int x1)


{nod1 *c1;
if(!v1)
{v1=new nod1;
v1->nr1=x1;
v1->back=0;}
else
{c1=new nod1;
c1->back=v1;
c1->nr1=x1;
v1=c1;}
}

void push2(nod2* &v2,int x2)


{nod2 *c2;
if(!v2)
{v2=new nod2;
v2->nr2=x2;
v2->back=0;}
else
{c2=new nod2;
c2->back=v2;
c2->nr2=x2;
v2=c2;}
}

void afisare1(nod1*v1)
{nod1 *c1;
c1=v1;
while(c1)
{cout<<c1->nr1<<" ";
c1=c1->back;}}

void afisare2(nod2*v2)
{nod2 *c2;
c2=v2;
while(c2)
{cout<<c2->nr2<<" ";
c2=c2->back;}}

int suma1(nod1*v1){
nod1 *c1;
int suma1=0;
v1=varf1;
while(v1!=NULL){
suma1+=v1->nr1;
v1=v1->back;
} return suma1;}

int suma2(nod2*v2){
nod2 *c2;
int suma2=0;
v2=varf2;
while(v2!=NULL){
suma2+=v2->nr2;
v2=v2->back;
}
return suma2;
}

int main()
{int n1, n2 ,a1, a2, i;
cout<<"numarul initial de noduri n1: ";
cin>>n1;
cout<<"numarul initial de noduri n2: ";
cin>>n2;
for(int i=1;i<=n1;i++)
{cout<<"valoarea de adaugat in stiva n1: ";
cin>>a1;
push1(varf1,a1);
}
for(int i=1;i<=n2;i++)
{cout<<"valoarea de adaugat in stiva n2: ";
cin>>a2;
push2(varf2,a2);
}
cout<<endl;
cout<<"Prima stiva: \n";
afisare1(varf1);
cout<<"\nA doua stiva: \n";
afisare2(varf2);
cout<<endl<<"\n Suma nod1="<<suma1(varf1)<<endl;
cout<<endl<<"\n Suma nod2="<<suma2(varf2)<<endl;
cout<<"\n Comparare:";
if(suma1(varf1) < suma2(varf2)){
cout<<"Nod1 < Nod2";
}
if(suma1(varf1) > suma2(varf2)){
cout<<"Nod1 > Nod2";
}
if(suma1(varf1) == suma2(varf2)){
cout<<"Nod1 = Nod2";
}

getch();
}

Concluzie:
Efectuind laboratorul nr.1 am facut cunostinta cu biblioteca iostream( cin, cout), am implementat
diferite circuite si am efectuat prelucrari ale stivei.