Raport
Lucrare de laborator nr.7
Programare in C++
A efectuat:
st.gr CR-182 Mardari I.
A verificat: Oșovschi.M
Chisinau 2019
LUCRARE DE LABORATOR NR. 7
Tema: Şabloane
Scopul lucrării:
Studierea necesităţii şabloanelor;
Studierea regulilor de definire şi utilizare a şabloanelor;
Studierea specializării şabloanelor;
Studierea potenţialelor probleme rezolvate cu ajutorul şabloanelor;
Varianta 6
а) Creaţi o funcţie şablon, care schimbă după perechi elementele masivelor în felul următor:
primul element va avea valoarea sumei perechii, dar al doilea diferenţei perechii.
De exemplu: lista- 0 2 3 4 3 6, rezultatul 2 –2 7 –1 9 –3.
b) Creaţi clasa parametrizată Matrix – matrice. Clasa trebuie să conţină constructorii, destructorii
şi funcţiile getRows, getCols, operatorii [], +, -, * şi operatorii de intrare/ieşire.
Codul programului:
#include <iostream>
while (i <= n)
{
tmpl[i] = arr[i] + arr[i + 1];
tmpl[i + 1] = arr[i] - arr[i + 1];
i += 2;
}
cout << "Original array :" << endl;
for (i = 0; i <= n; i++)
cout << arr[i] << " ";
cout << "\n\nTransformed array :" << endl;
for (i = 0; i <= n; i++)
cout << tmpl[i] << " ";
cout << endl << endl;
}
int main()
{
int n, ch;
if (ch == 1)
{
int *arr = new int[n];
f_input(arr, n);
f_template(arr, n);
}
if (ch == 0)
{
float *arr = new float[n];
f_input(arr, n);
f_template(arr, n);
}
else
cout << "Bad choice !!" << endl;
system ("pause");
return (0);
}
Codul programului b;
#include <iostream>
public:
Matrix() : matrix(NULL), rows(0), cols(0)
{}
this->rows = rows;
this->cols = cols;
matrix = new T*[this->rows];
for (i = 0; i <= rows; i++)
matrix[i] = new T[cols];
}
~Matrix()
{
int i;
int getRows()
{
return (rows);
}
int getCols()
{
return (cols);
}
T *operator[](int index)
{
return (matrix[index]);
}
int main()
{
int r;
int c;
cout << "Matrix adition:" << endl << obj + obj2 << endl;
obj - obj2;
cout << "Matrix - :" << endl << obj - obj2 << endl;
system ("pause");
return (0);
}
Rularea programului
a.
b.
Concluzie:
In rezultatul elaborarii lucrarii date s-a pus baza aplicarii in practica a cunostintelor teoretice
referitoare OOP, la sabloane in C++.
Astfel se poate judeca despre posibilitatile largi acordate de limbajul C++ referitor la
manipularea claselor.