Sunteți pe pagina 1din 5

MINISTERUL EDUCAŢIEI, CULTURII ȘI CERCETĂRII AL

REPUBLICII MOLDOVA

UNIVERSITATEA TEHNICĂ A MOLDOVEI


FACULTATEA CALCULATOARE, INFORMATICĂ ȘI
MICROELECTRONICĂ

Raport
La Proiectarea orientate pe obecte
Lucrare de laborator Nr.1
Tema: Reprezentarea tipurilorde 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.
Varianta 13

A efectuat: st. gr. IBM-171 Nirca Diana

A verificat: lect.univ. Osovschi Mariana

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

Sarcina I
Sa se scrie un program care converteste un intreg intr-un numar octal .

#include <iostream>
using namespace std;
string toOct(int n)
{
string oct = "";
do
{
oct = (char)(n % 8 + '0') + oct;
n = n / 8;
} while(n > 0);
return oct;
}
int main()
{
int n;
cout << "Enter the number: ";
cin >> n;
cout << "Result: " << toOct(n) << endl;
return 0;
}

Rezultate primite :
Sarcina II
Sa se scrie un program care roteste fiecare element al listei dublu inlantuite la dreapta
cu b pozitii .

#include <iostream>
using namespace std;
struct Node
{
int x;
Node *next, *prev;
};
void showList(Node *head)
{
cout << "List: ";
Node *temp = head;
while (temp != NULL)
{
cout << temp->x << " ";
temp=temp->next;
}
cout << endl;
}

int main()
{
Node *head = NULL;
Node *tail = NULL;
int n = -1;
cout << "Enter a natural number or -1 to exit: ";
cin >> n;
while(n > -1)
{
Node *temp = new Node;
temp->next = NULL;
temp->x = n;

if (head != NULL)
{
temp->prev = tail;
tail->next = temp;
tail = temp;
}
else
{
temp->prev = NULL;
head = tail = temp;
}

cout << "Enter a natural number or -1 to exit: ";


cin >> n;
}

int s = 0;
cout << "Enter shift value: ";
cin >> s;

showList(head);

if (s > 0)
{
Node *shead = NULL;
Node *stail = NULL;

shead = tail;
stail = tail;

for (int i = 1; i < s; i++)


{
if (shead->prev == NULL)
shead = tail;
else
shead = shead->prev;
}

tail = shead->prev;
tail->next = NULL;
shead->prev = NULL;

stail->next = head;
head->prev = stail;
head = shead;
}

showList(head);
return 0;
}
Rezultate primite :
Concluzie:
In urma realizarii acestui laborator m-am familiarizat 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.