Sunteți pe pagina 1din 5

Universitatea Tehnic a Moldovei

FCIM

RAPORT
la lucrarea de laborator nr. 1
la programarea in limbajul C++

Tema: Reprezentarea tipurilor de date ale limbajului C++ n memoria calculatorului. Operatorii
limbajului C++. Construciile elementare ale limbajului C++ (instruciunile for, while, do-while, if-else,
switch-break, goto). Tipuri de date recursive, operaii asupra listelor, arborilor. Construirea i elaborarea
programelor recursive. Fiierele.

Varianta 13

A efectuat:

st. gr. C-151 Enachi Nicolae

A verificat:

Lector superior Constantin Plotnic

Chiinu 2016
0

Scopul lucrrii: familiarizarea studenilor cu reprezentarea tipurilor de date ale limbajului C++ n memoria
calculatorului, operatorii limbajului C++, construciile elementare ale limbajului C++ (instruciunile for,
while, do-while, if-else, switch-break, goto), tipuri de date recursive, operaii asupra listelor, arborilor,
construirea i elaborarea programelor recursive, lucrul cu fiierele.

Consideraii teoretice:
n cadrul mulimii identificatorilor posibili, remarcm o clas aparte, reprezentnd cuvintele-cheie.
Cele mai frecvente cuvintele-cheie ale limbajul C++ snt:
auto
delete float
interrupt
register
Template
break
do
for
long
return
this
case
double friend near
short
typedef
char
else
goto
new
signed
union unsigned virtual
class
enum
huge
operator
sizeof
void
const
export if
private
static
while
continue extern inline protected
struct
default
far
int
public
switch
Declararea variabilelor trebuie efectuat nainte de a fi folosite, la nceputul programului sau chiar
n funcie de contextul problemei n interiorul programului nemijlocit nainte de utilizare, cnd apare
necesitarea introducerii variabilei. 0 declaraie specific un tip i este urmat de o list de una sau mai multe
variabile de acel tip, ca n exemplul de mai jos:
int i,n;
char c, linie[80];
Domeniu de aciune a variabilelor. Variabilele pot fi iniializate n momentul declaraiei lor. Dac
numele este urmat de semnul egal i de o constant, aceasta servete la iniializare, ca n urmtoarele
exemple:
char backslash = '\\';
int i = 0;
float eps = 1.0e-5;
Dac variabila este extern sau static, iniializarea are loc o singur dat, nainte ca programul s-i
nceap execuia. Variabilele automate, iniializate explicit, snt iniializate la fiecare apel al funciei n care
snt coninute. Variabilele automate pentru care nu exist o iniializare explicit au valoare nedefinit.
Variabilele externe i statice se iniializeaz implicit cu zero, dar este un bun stil de programare acela de a
efectua iniializarea lor n orice caz.
Fiecare variabil i constant posed un tip, care determin dimensiunea spaiului necesar memorrii
lor. Tipurile datelor se pot divide n dou categorii: tipuri fundamentale i tipuri derivate sau structurate.
Tipurile fundamentale ale limbajului C++ snt
Char
reprezentnd tipul caracter
pe 1 octet,
Int
ntreg
pe 2 octei
Long
ntreg
pe 4 octei
float,
nsemnnd un numr real
pe 4 octei
double,
ataat unui numr real
pe 8 octei
Tipurile structurate snt obinute de la tipurile de baz. Tipurile derivate acceptate de limbajul C++
snt: pointeri, referine, tablouri, structuri, uniuni i clase.

Varianta 13.
a. Scriei un program care convertete un ntreg ntr-un numr octal.

#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int n;
char s[30];
cout << "\n\t\t\t\t Introduceti numarul pe care doriti sa-l convertiti: ";
cin >> n;
_itoa_s(n, s, 8);
cout << "\n Numarul convertit in sistemul octal este : " << s;
_getch();
return 0;
}

Rezultatul:

b. Scriei un program care rotete fiecare element al listei dublu lnuite la dreapta cu b poziii.
#include "stdafx.h"
#include <iostream>
#include <conio.h>
using namespace std;
class List {
struct Nod {
int info;
Nod *next, *back;
};
Nod *first,*last,*temp;
public:
List() { first = NULL; }
void CreateList() {
temp = new Nod;
cout <<" Numar:";
cin >> temp->info;
if (!first)
{
first = temp;
first->next = 0;
first->back = 0;
last = first;
}
else {
last->next = temp;
temp->back = last;
last = temp;
last->next = 0;
}
2

}
int Elements() {
int n,i;
cout << "\n\t\t\t\t\tIntroduceti numarul de elemente: ";
cin >> n;
for (i = 0; i < n; i++)
CreateList();
return n;
}
void ShowList() {
temp = first;
while (temp) {
cout <<" "<< temp->info;
temp = temp->next;
}
}
void DeleteRight() {
temp = last;
last = last->back;
last->next = 0;
delete temp;
}
void Spin() {
int p,i,n,a[50];
n = Elements();
cout << "\n Lista inainte de rotire:";
ShowList();
do {
cout << "\n\n Introduceti numarul de pozitii cu care doriti sa rotiti lista:";
cin >> p;
if (p <= n) goto et1;
else cout << " Eroare:";
} while (1);
et1:
temp = last;
for (i = 1; i <= p; i++) {
a[i] = temp->info;
temp = temp->back;
}
for (i = 1; i <= p; i++) {
DeleteRight();
}
for (i = 1; i <= p; i++) {
temp = new Nod;
temp->info = a[i];
temp->back = 0;
temp->next = first;
first->back = temp;
first = temp;
}
cout << "\n Lista dupa rotire: ";
}
};
3

int main()
{
List O;
O.Spin();
O.ShowList();
_getch();
return 0;
}
Rezultatul:

Concluzia:
n urma efecturii lucrrii de laborator nr.1Reprezentarea tipurilor de date ale limbajului C++ n
memoria calculatorului. Operatorii limbajului C++. Construciile elementare ale limbajului C++
(instruciunile for, while, do-while, if-else, switch-break, goto). Tipuri de date recursive, operaii asupra
listelor, arborilor. Construirea i elaborarea programelor recursive. Fiierele. , am nsuit principiile
organizrii i gestiunii tipurilor de date n sistemele de operare i procesarea operatorilor n limbajul C++.
Pentru a putea folosii operaiile cu consola trebuie inclus fiierul antet iostream i declararea folosirii
spaiului de nume: using namespace std.
Am utilizat algoritmii de declarare, parcurgere i tergere a unui nod intro list dublu inlan uit, cu scopul
de a realiza sarcina propusa si anume de a roti lista cu b pozitii spre dreapta. La fel am fcut cunostinta cu
mediul de dezvoltare Visual Studio a crui particularitate este de a introduce un fisier antet obligatoriu
stdafx.h.

Bibliografie :
1. Lucrarea de laborator nr. 1 lector superior Constantin Plotnic.
2. SDA, lucrarea 4 Analiza prelucrrii structurilor de date cu liste S.Marin.
3. "Limbajul de programare C++". Brian W.Kernighan. Dennis M.Ritchie
4. http://www.cs.cmu.edu/
5. http://csite.cs.pub.ro/
6. www.tutorialspoint.com

S-ar putea să vă placă și

  • PSM Laborator Nr1
    PSM Laborator Nr1
    Document2 pagini
    PSM Laborator Nr1
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr2 - 3
    PSM Laborator Nr2 - 3
    Document2 pagini
    PSM Laborator Nr2 - 3
    Mishanea Popereshniuk
    Încă nu există evaluări
  • Sericultura
    Sericultura
    Document2 pagini
    Sericultura
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr2 - 3
    PSM Laborator Nr2 - 3
    Document13 pagini
    PSM Laborator Nr2 - 3
    Nickolae Enachi
    Încă nu există evaluări
  • Raport - Sotr.c 151.LAB3
    Raport - Sotr.c 151.LAB3
    Document8 pagini
    Raport - Sotr.c 151.LAB3
    Nickolae Enachi
    Încă nu există evaluări
  • PSM Laborator Nr5
    PSM Laborator Nr5
    Document2 pagini
    PSM Laborator Nr5
    grupac131
    Încă nu există evaluări
  • ZOOTEHNIA
    ZOOTEHNIA
    Document1 pagină
    ZOOTEHNIA
    Nickolae Enachi
    Încă nu există evaluări
  • Sarcina Lab2
    Sarcina Lab2
    Document10 pagini
    Sarcina Lab2
    Nickolae Enachi
    Încă nu există evaluări
  • Johannes Kepler
    Johannes Kepler
    Document1 pagină
    Johannes Kepler
    Nutza Zadic
    Încă nu există evaluări
  • Raport GC Lab 4
    Raport GC Lab 4
    Document2 pagini
    Raport GC Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • Mitologia Chineză
    Mitologia Chineză
    Document3 pagini
    Mitologia Chineză
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 1
    Raport C++ Lab 1
    Document5 pagini
    Raport C++ Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • Enachi Nicolae Lab1 - PMMA
    Enachi Nicolae Lab1 - PMMA
    Document3 pagini
    Enachi Nicolae Lab1 - PMMA
    Nickolae Enachi
    Încă nu există evaluări
  • Raport GC Lab 1
    Raport GC Lab 1
    Document6 pagini
    Raport GC Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • ASDN Lab1
    ASDN Lab1
    Document7 pagini
    ASDN Lab1
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 4
    Raport C++ Lab 4
    Document8 pagini
    Raport C++ Lab 4
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 6
    Raport C++ Lab 6
    Document4 pagini
    Raport C++ Lab 6
    Nickolae Enachi
    Încă nu există evaluări
  • Enachi - Nicolae.c 151.Lab1.Ps
    Enachi - Nicolae.c 151.Lab1.Ps
    Document8 pagini
    Enachi - Nicolae.c 151.Lab1.Ps
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 2
    Raport C++ Lab 2
    Document5 pagini
    Raport C++ Lab 2
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 2
    Raport C++ Lab 2
    Document5 pagini
    Raport C++ Lab 2
    Nickolae Enachi
    Încă nu există evaluări
  • N Cosanus
    N Cosanus
    Document2 pagini
    N Cosanus
    Nickolae Enachi
    Încă nu există evaluări
  • Istoria UTM
    Istoria UTM
    Document8 pagini
    Istoria UTM
    Nickolae Enachi
    Încă nu există evaluări
  • Raport Electronica Lab1
    Raport Electronica Lab1
    Document4 pagini
    Raport Electronica Lab1
    Nickolae Enachi
    Încă nu există evaluări
  • Raport C++ Lab 3
    Raport C++ Lab 3
    Document4 pagini
    Raport C++ Lab 3
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab5
    Electr Lab5
    Document4 pagini
    Electr Lab5
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab6
    Electr Lab6
    Document3 pagini
    Electr Lab6
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab7
    Electr Lab7
    Document4 pagini
    Electr Lab7
    Nickolae Enachi
    Încă nu există evaluări
  • SDA Lab 1
    SDA Lab 1
    Document3 pagini
    SDA Lab 1
    Nickolae Enachi
    Încă nu există evaluări
  • Electr Lab1
    Electr Lab1
    Document5 pagini
    Electr Lab1
    Nickolae Enachi
    Încă nu există evaluări