Sunteți pe pagina 1din 6

Universitatea Tehnică a Moldovei

Facultatea Calculatoare, Informatică ş i Microelectronică


Catedra Automatica si Tehnologii Informationale

Raport
Programarea orientata pe obiecte

Lucrare de lab. Nr.1

Realizat de: st. gr.AI-171 Goncearuc Denis

Verificat de: Osovschi M.



Chiş inău
U.T.M.
2018
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.

Codul sursa:
#include<iostream>
using namespace std;
struct node
{
int info;
node *next;
};
struct node *head,*head1,*head2;
void create(int n)
{
struct node *temp,*prev;
for(int i=0;i<n;i++)
{
temp=new node;
if(i==0)
{
head=temp;
}
else
{
prev->next=temp;
}
prev=temp;
cout<<"Dati valoare elementului:";
cin>>temp->info;
}
temp->next=NULL;
}
void show() //functia de afisare a listei
{
node *aux;
aux=head1;
while(aux)
{
cout<<aux->info<<", ";
aux=aux->next;
}
cout<<endl;
}
int main()
{
cout<<"1- Divizorul maxim p/u un sir\n2- Atribuirea elementelor unei liste
invers"<<endl;
int key;
cin>>key;
switch(key)
{
case 1:
{
int i,j,max,k,div,divmax;
int s[50];
cout<<"Cite elemente v-a avea sirul numeric?\n";
cin>>j;
cout<<"Introduceti sirul numeric:\n"<<endl;
for(i=0;i<j;i++)
{
cin>>s[i];
}
max=s[0];
for(i=0;i<j;i++)
{
if(s[i]>max)
{
max=s[i];
}
}
cout<<"\n"<<max;
for(i=1;i<max;i++)
{
div=0;
for(k=0;k<j;k++)
{
if(s[k]%i==0)
{
div++;
}
}
if(div==j)
{
divmax=i;
}
}
cout<<"\nDivizorul maximal comun este egal cu: "<<divmax<<endl;
break;
}
case 2:
{
struct node *c,*p,*t;
int i,j,a[100],n,m;
cout<<"\nIntroduceti lungimea primei liste: ";
cin>>n;
create(n);
head1=head;
head=NULL;
cout<<"\nIntroduceti lungimea la a doua lista: ";
cin>>m;
create(m);
head2=head;
head=NULL;
c=head1;
p=head2;
while(c)
{
if(c->next==NULL){t=c;}
c=c->next;
}
j=0;
while(p)
{
a[j]=p->info;
j++;
p=p->next;
}
p=head2;
j--;
while(p)
{
p->info=a[j];
p=p->next;
j--;
}
t->next=head2;
show();
break;
}
}}
Exemple de execuție a programului:
a)
b)

Concluzie:
In lucrarea da ta de laborator am adaptat abilitatile obtinute in limbajul C in C++. In
general, programul a fost executat cu precautie cu scopul omiterii greselilor si functionarii
cit mai efective a programului. Rezultatele obtinute au fost corecte, ceea ce da dovada ca
programul a fost sistematizat si scris corect. Personal consider aceasta lucrare de
laborator ca o formare a deprinderilor de lucru in limbajul C++.