Advertisement
frentzy

OOP lab 3

Apr 3rd, 2018
331
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.14 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class Multime {
  8. private:
  9.     int nr;
  10.     int *m;
  11. public:
  12.     Multime(int nr = 0);
  13.     Multime(const Multime &v);
  14.     ~Multime();
  15.     int getNrElem();
  16.     int getElement(int i);
  17.     void setElement(int i, int val);
  18.     int apare(int val);
  19.     void citire();
  20.     void afis();
  21. };
  22.  
  23. Multime::Multime(int nr) {
  24.     this->nr = nr;
  25.     m = new int[nr];
  26.     for (int i = 0;i < nr;i++) {
  27.         m[i] = 0;  
  28.     }
  29. }
  30. // ceva = [1,2,3,4,5]
  31. // malina = [0,0,0,0]
  32. Multime::Multime(const Multime &v) {
  33.     nr = v.nr;
  34.     m = new int[nr];
  35.         for (int i = 0;i <nr;i++) {
  36.             this->m[i] = v.m[i];
  37.         }
  38. }
  39. Multime::~Multime() {
  40.     if (m) {
  41.         delete m;
  42.         cout << "\nS-a activat destructorul"<<endl;
  43.     }
  44. }
  45.  
  46. int Multime::getNrElem() {
  47.     return this->nr;
  48. }
  49.  
  50. int Multime::getElement(int i) {
  51.     return this->m[i];
  52. }
  53.  
  54. void Multime::setElement(int i, int val) {
  55.     this->m[i] = val;
  56. }
  57. // ceva = [1,2,3,4];
  58. // val = 2;
  59. int Multime::apare(int val){
  60.     for (int i = 0;i < this->nr;i++) {
  61.         if (val == this->m[i]) {
  62.             return 1;
  63.         }
  64.     }
  65.     return 0;
  66. }
  67. void Multime::citire() {
  68.     cout << "\nCitire Multime: " << endl;
  69.     for (int i = 0;i < this->nr;i++) {
  70.         cout << "element[" << i << "] = ";
  71.         cin >> this->m[i];
  72.     }
  73. }
  74.  
  75. void Multime::afis() {
  76.     cout << "\nAfisare Multime: [";
  77.     for (int i = 0;i < this->nr;i++) {
  78.         if (i < this->nr -1) {
  79.             cout << this->m[i] << ",";
  80.         }
  81.         else cout << this->m[i];
  82.     }
  83.     cout << "]";
  84. }
  85.  
  86. void main() {
  87.     Multime ceva(5);
  88.     ceva.citire();
  89.     ceva.afis();
  90.     Multime malina(ceva);
  91.     malina.afis();
  92.    
  93.     cout <<"\n"<< malina.apare(2) ;
  94.     cout << endl << malina.getElement(1);
  95.     cout << endl << malina.getNrElem();
  96.     malina.setElement(0, 50);
  97.     malina.afis();
  98.  
  99.     _getch();
  100. }
  101.  
  102. //##############################################
  103. #include <stdio.h>
  104. #include <conio.h>
  105. #include <iostream>
  106.  
  107. using namespace std;
  108.  
  109. class Multime {
  110. private:
  111.     int nr;
  112.     int *m;
  113. public:
  114.     Multime(int nr = 0);
  115.     Multime(const Multime &v);
  116.     ~Multime();
  117.     int getNrElem();
  118.     int getElement(int i);
  119.     void setElement(int i, int val);
  120.     int apare(int val);
  121.     void citire();
  122.     void afis();
  123.     friend Multime reun(Multime &a, Multime &b);
  124. };
  125.  
  126. Multime::Multime(int nr) {
  127.     this->nr = nr;
  128.     m = new int[nr];
  129.     for (int i = 0;i < nr;i++) {
  130.         m[i] = 0;  
  131.     }
  132. }
  133. // ceva = [1,2,3,4,5]
  134. // malina = [0,0,0,0]
  135. Multime::Multime(const Multime &v) {
  136.     nr = v.nr;
  137.     m = new int[nr];
  138.         for (int i = 0;i <nr;i++) {
  139.             this->m[i] = v.m[i];
  140.         }
  141. }
  142. Multime::~Multime() {
  143.     if (m) {
  144.  
  145.         delete[]m;
  146.     }
  147.  
  148.     cout << "\nS-a activat destructorul" << endl;
  149. }
  150.  
  151.  
  152. int Multime::getNrElem() {
  153.     return this->nr;
  154. }
  155.  
  156. int Multime::getElement(int i) {
  157.     return this->m[i];
  158. }
  159.  
  160. void Multime::setElement(int i, int val) {
  161.     this->m[i] = val;
  162. }
  163. // ceva = [1,2,3,4];
  164. // val = 2;
  165. int Multime::apare(int val){
  166.     for (int i = 0;i < this->nr;i++) {
  167.         if (val == this->m[i]) {
  168.             return 1;
  169.         }
  170.     }
  171.     return 0;
  172. }
  173. void Multime::citire() {
  174.     cout << "\nCitire Multime: " << endl;
  175.     for (int i = 0;i < this->nr;i++) {
  176.         cout << "element[" << i << "] = ";
  177.         cin >> this->m[i];
  178.     }
  179. }
  180.  
  181. void Multime::afis() {
  182.     cout << "\nAfisare Multime: [";
  183.     for (int i = 0;i < this->nr;i++) {
  184.         if (i < this->nr -1) {
  185.             cout << this->m[i] << ",";
  186.         }
  187.         else cout << this->m[i];
  188.     }
  189.     cout << "]";
  190. }
  191.  
  192. Multime reun(Multime &a, Multime &b) {
  193.  
  194.         int nr = a.nr + b.nr;
  195.         Multime rezultat(nr);
  196.         int contor = 0;
  197.         for (int i = 0;i < a.nr;i++) {
  198.             rezultat.m[i] = a.m[i];
  199.             contor++;
  200.         }
  201.         for (int i = 0;i < a.nr;i++) {
  202.             if (!(rezultat.apare(b.m[i]))) {
  203.                 rezultat.m[contor++] = b.m[i];
  204.             }
  205.         }
  206.         rezultat.nr = contor;
  207.     return rezultat;
  208. }
  209.  
  210. void main() {
  211.     Multime ceva(5);
  212.     ceva.citire();
  213.     ceva.afis();
  214.     //Multime malina(ceva);
  215. //  malina.afis();
  216.    
  217.     //cout <<"\n"<< malina.apare(2) ;
  218. ////    cout << endl << malina.getElement(1);
  219. //  cout << endl << malina.getNrElem();
  220. //  malina.setElement(0, 50);
  221. //  malina.afis();
  222.  
  223.     //Multime c(reun(ceva, malina));
  224.     //c.afis();
  225.     Multime malina(5);
  226.     malina.citire();
  227.  
  228.     Multime c(reun(ceva, malina));
  229.     c.afis();
  230.     //malina.getNrElem().
  231.     malina.getNrElem();
  232.     ceva.getNrElem();
  233.     malina.afis();
  234.     ceva.afis();
  235.    
  236.  
  237.     _getch();
  238. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement