Raport la
Lucrare de laborator Nr.1
la Programarea orientată pe obiecte
Tema: Reprezentarea tipurilor de date ale limbajelor C++ în memoria
calculatorului.
Chișinău 2019
Tema: Reprezentarea tipurilor de date ale limbajelor C++ în memoria calculatorului.Operatorii
limbajului C++.Construcțiile elementare ale limbajului C++. Tipuri de date recursive, operații asupra
listelor, arborilor. Construirea si elaborarea programelor recursive.
Scopul lucrării: Familiarizarea cu reprezetarea tipurilor de date ale limbajului C++ în memoria
calculatorului, operatorii limbajului C++, construcțiile elementare ale limbajului C++, tipuri de date
recursive, operații asupra listelor, arborilor,construirea si elaborarea programelor recursive, lucrul cu
fișierele.
Varianta 11.
a. Scrieți un program care determina un numar obișnuit din inversul cifrelor numarului dat.
b. Scrieți un program care convertește intregii fără semn dintr-o listă dublu înlănțuită în reprezentare
binară.
a.
Codul Programului:
#include "pch.h"
#include <iostream>
using namespace std;
int main()
{
int nr;
int invers = 0;
cout << "Introduceti numarul: \n";
cin >> nr;
int point = nr;
while (nr != 0)
{
invers = invers * 10;
invers = invers + nr % 10;
nr = nr / 10;
}
cout << "Inversul numarului: "<<point <<" este: " <<invers<<endl;
return 0;
}
Rezultatul afisarii :
b. Scrieți un program care convertește întregii fără semn dintr-o listă dublu înlănțuita în
reprezentare binară.
Codul Programului:
#include <iostream>
#include <conio.h>
using namespace std;
struct lista
{
float num;
lista*urm,*prec;
} *p=NULL,*v=NULL;
void binar(float*r)
{
int n;
long int i=1;
n=*r;
if(((*r-n)!=0)||(*r<0)) return;
*r=0;
while(n!=0)
{
if(n%2!=0) *r=*r+i;
i=i*10;
n=n/2;
}
}
void adaugare(float num)
{
lista *b;
b=new lista;
b->num=num;
b->prec=NULL;
b->urm=NULL;
if(p==NULL){p=b;v=b;}
else {v->urm=b;b->prec=v;}
v=b;
}
void creare()
{
int i=0;
float num;
do{
//clrscr();
cout<<"introduceti informatia dorita" <<++i<<" :";
cin>>num;
adaugare(num);
cout<<"pentru a iesi tastati ESC, iar p/u introducere ENTER sau oricare tasta\n";
}
while (getch()!=27);
//clrscr();
}
void afisare()
{
int i=0;
lista*b;
b=p;
while(b!=NULL)
{
cout<<"\n element "<<++i<<" :"<<b->num;
if(b->num>=1e+08) //limiteaza nr de cifre dupa convertire
cout<<"valoarea de depasire in reprezentatie binara";//determina lungimea numarului binar care este
convertit
b=b->urm;
}
}
void convertire()
{
lista*b;
b=p;
while(b!=NULL)
{
binar(&(b->num));
b=b->urm;
}
}
int main()
{
//clrscr();
creare();//executarea functiei void creare
cout<<"Lista parcursa in intregime: \n";//afisarea elementor introduse de la tastatura
cout<<"Pana la convertire";//afisarea elementelor introduse de la tastatura inainte de transformare
afisare();//afisarea elementelor la ecran
convertire();//executarea functiei de transformare in binar
cout<<"\n Lista parcursa :\n";//
cout<<"dupa convertire";//afisarea elementelor dupa transofrmarea binara
afisare();
getch();
}
Rezultatul afisarii :
Concluzie:
In urma efectuarii lucrarii de laborator nr.1, m-am initiat in sfera limbajului C++, facand mai intai
cunostinta cu reprezentarile diverselor tipuri de date, si, de asemenea, cu operatorii principali. Cerinta
lucrarii era sa realizam 2 programe cu sarcini diferite. Ultimul program era cam dificil de realizat, el consta
in aplicarea unor operatii aupra listelor, dar am izbutit.