Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.14 KB | None | 0 0
  1. //
  2. // main.cpp
  3. // oop
  4. //
  5. // Created by  Калюжин Р.А. on 22.01.17.
  6. // Copyright © 2017 Kalyuzhin R.A. All rights reserved.
  7. //
  8.  
  9. //Определить класс список элементов. В определение класса включить два конструк-
  10. //тора для определения списка по его размеру и путем копирования другого списка.
  11. //Предусмотреть функции формирования нового списка из элементов, входящих толь-
  12. //ко в один из двух других списков и вычисления суммы элементов списков.
  13.  
  14. #include <iostream>
  15.  
  16. using namespace std;
  17.  
  18. class list {
  19. private:
  20. int* data;
  21. int index;
  22. int size;
  23. public:
  24.  
  25. int operator[](int n) {return data[n];}
  26.  
  27. list(int _size) {
  28. index = 0;
  29. size = 0;
  30. data = new int[_size];
  31. size = _size;
  32. }
  33. list(const list & l) {
  34. index = l.index;
  35. size = l.size;
  36. data = new int[size];
  37. for (int i = 0; i < index; ++i) {
  38. data[i] = l.data[i];
  39. }
  40. }
  41.  
  42. list uniqueNumbersWith(const list & l) {
  43. list temp(l.size+size);
  44.  
  45. for (int i = 0; i < index; ++i) {
  46. bool isRulePerformed = true;
  47. for (int j = 0; j < l.index; ++j) {
  48. if (data[i] == l.data[j]) {
  49. isRulePerformed = false;
  50. break;
  51. }
  52. }
  53. if (isRulePerformed) {
  54. temp.pushBack(data[i]);
  55. }
  56. }
  57.  
  58. for (int i = 0; i < l.index; ++i) {
  59. bool isRulePerformed = true;
  60. for (int j = 0; j < index; ++j) {
  61. if (l.data[i] == data[j]) {
  62. isRulePerformed = false;
  63. break;
  64. }
  65. }
  66. if (isRulePerformed) {
  67. temp.pushBack(l.data[i]);
  68. }
  69. }
  70.  
  71. return temp;
  72. }
  73.  
  74. void pushBack(int e) {
  75. if (index+1 > size) {
  76. return;
  77. }
  78. data[index++] = e;
  79. }
  80.  
  81. int length() {
  82. return index;
  83. }
  84.  
  85. int sumOfElements() {
  86. int sum = 0;
  87. for (int i = 0; i < index; ++i) {
  88. sum += data[i];
  89. }
  90. return sum;
  91. }
  92.  
  93. };
  94.  
  95.  
  96. int main() {
  97. list l(5);
  98. l.pushBack(1);
  99. l.pushBack(2);
  100. l.pushBack(3);
  101. l.pushBack(1);
  102. l.pushBack(2);
  103. printf("Sum of l: %d\n",l.sumOfElements());
  104.  
  105. list k(3);
  106. k.pushBack(2);
  107. k.pushBack(9);
  108. k.pushBack(69);
  109. printf("Sum of k: %d\n",k.sumOfElements());
  110.  
  111. list q = l.uniqueNumbersWith(k);
  112.  
  113.  
  114. for (int i = 0; i < q.length(); ++i) {
  115. printf("%d ",q[i]);
  116. }
  117.  
  118. //1 3 1 9 69
  119. //Два раза единица это правильно, т.к. она входит только в один из списков
  120.  
  121. printf("\nSum of q: %d\n",q.sumOfElements());
  122.  
  123. return 0;
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement