Documente Academic
Documente Profesional
Documente Cultură
Raport la
Chișinău,2019
Tema: Structura – mecanism de abstractizare
Scopul lucrării:
Studierea programării prin abstractizarea datelor;
Studierea regulilor de definire şi utilizare a structurilor de date;
Crearea variabilelor de tip structură, accesarea componentelor unei structuri.
Noţiuni de bază
Structura – este o mulţime de date grupate, conform unei ierarhii, de obicei de tipuri diferite. Structura
poate fi comparată cu tabloul, însă tabloul conţine date de un acelaşi tip, iar elementele tabloului se
accesează cu ajutorul indicilor, pe cînd accesarea componentelor structurii are o formă specifică. Structura
reprezintă un tip abstract de date, un tip definit de utilizator prin utilizarea tipurilor deja existente. La
stabilirea şi implementarea conceptelor necesare rezolvării unei probleme se realizează un proces de
abstractizare care priveşte reprezentarea datelor şi prelucrarea acestora. Aceasta justifică termenul de
programare prin abstractizarea datelor.
Rezultate obținute:
Sarcina:
Codul:
a)
#include <iostream>
#include <cmath>
struct ComplexNumber {
double real;
double img;
};
void show(ComplexNumber z) {
cout << z.real << (z.img > 0 ? "+" : "") << z.img << "i" << endl;
}
return temp;
}
int main() {
ComplexNumber cn1, cn2, cn3, cn4, cn5, cn6;
cout << "Enter the real and imaginary value of the first complex number:
\n";
cin >> cn1.real >> cn1.img;
cin.ignore();
cout << "\nEnter the real and imaginary value of the second complex number:
\n";
cin >> cn2.real >> cn2.img;
cin.ignore();
cn3 = addition(cn1, cn2);
cout << "\nThe addition of the two complex numbers: \n";
show(cn3);
cn4 = subtraction(cn1, cn2);
cout << "\nThe subtraction of the two complex numbers: \n";
show(cn4);
cn5 = multiplication(cn1, cn2);
cout << "\nThe multiplication of the two complex numbers: \n";
show(cn5);
cn6 = division(cn1, cn2);
cout << "\nThe division of the two complex numbers: \n";
show(cn6);
double mod = module(cn2);
cout << "Module of the first complex number= " << mod << endl;
double md = module(cn1);
cout << "Module of the second complex number= " << md << endl;
if (mod > md)
printf("First complex number is larger");
else
printf("Second complex number is larger");
cin.get();
return 0;
}
Rezultat:
b)
#include <iostream>
#include <cstring>
#include <math.h>
using namespace std;
struct vector{
int* n;
int nrDeElem;
};
void setElementNumber(vector &v,int numarulDeElemente){
v.nrDeElem = numarulDeElemente;
v.n = new int[v.nrDeElem];
}
void setValues(vector &v){
int var;
cout<<"Vectorul are "<<v.nrDeElem<<" elemente"<<endl;
for (int i = 0; i < v.nrDeElem; ++i) {
cout<<"Introduceti elementul "<<i<<endl;
cin>>var;
v.n[i]=var;
}
}
int main() {
vector arr;
vector arr1;
vector arr2;
setElementNumber(arr,5);
setValues(arr);
setElementNumber(arr1,5);
setValues(arr1);
setElementNumber(arr2,5);
for (int i = 0; i < arr.nrDeElem; ++i) {
if (arr.nrDeElem != arr1.nrDeElem){
cout<<"Vectorii nu au dimensiune egala"<<endl;
break;
} else {
arr2.n[i] = arr.n[i] + arr1.n[i];
}
}
cout<<"2 Vectori au fost adunati : "<<endl;
show(arr2);
//modululVectorului(arr);
return 0;
Rezultat:
Concluzie:
La finalul lucrării de laborator am primit cunoștințe mai aprofundate despre limbajul de programare
C++ care este un limbaj multi-paradigmă, cu verificarea statică a tipului variabilelor ce suportă
programare procedurală, abstractizare a datelor și programare orientată pe obiecte.