Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // main.cpp
- // oop
- //
- // Created by Калюжин Р.А. on 22.01.17.
- // Copyright © 2017 Kalyuzhin R.A. All rights reserved.
- //
- //Определить класс список элементов. В определение класса включить два конструк-
- //тора для определения списка по его размеру и путем копирования другого списка.
- //Предусмотреть функции формирования нового списка из элементов, входящих толь-
- //ко в один из двух других списков и вычисления суммы элементов списков.
- #include <iostream>
- using namespace std;
- class list {
- private:
- int* data;
- int index;
- int size;
- public:
- int operator[](int n) {return data[n];}
- list(int _size) {
- index = 0;
- size = 0;
- data = new int[_size];
- size = _size;
- }
- list(const list & l) {
- index = l.index;
- size = l.size;
- data = new int[size];
- for (int i = 0; i < index; ++i) {
- data[i] = l.data[i];
- }
- }
- list uniqueNumbersWith(const list & l) {
- list temp(l.size+size);
- for (int i = 0; i < index; ++i) {
- bool isRulePerformed = true;
- for (int j = 0; j < l.index; ++j) {
- if (data[i] == l.data[j]) {
- isRulePerformed = false;
- break;
- }
- }
- if (isRulePerformed) {
- temp.pushBack(data[i]);
- }
- }
- for (int i = 0; i < l.index; ++i) {
- bool isRulePerformed = true;
- for (int j = 0; j < index; ++j) {
- if (l.data[i] == data[j]) {
- isRulePerformed = false;
- break;
- }
- }
- if (isRulePerformed) {
- temp.pushBack(l.data[i]);
- }
- }
- return temp;
- }
- void pushBack(int e) {
- if (index+1 > size) {
- return;
- }
- data[index++] = e;
- }
- int length() {
- return index;
- }
- int sumOfElements() {
- int sum = 0;
- for (int i = 0; i < index; ++i) {
- sum += data[i];
- }
- return sum;
- }
- };
- int main() {
- list l(5);
- l.pushBack(1);
- l.pushBack(2);
- l.pushBack(3);
- l.pushBack(1);
- l.pushBack(2);
- printf("Sum of l: %d\n",l.sumOfElements());
- list k(3);
- k.pushBack(2);
- k.pushBack(9);
- k.pushBack(69);
- printf("Sum of k: %d\n",k.sumOfElements());
- list q = l.uniqueNumbersWith(k);
- for (int i = 0; i < q.length(); ++i) {
- printf("%d ",q[i]);
- }
- //1 3 1 9 69
- //Два раза единица это правильно, т.к. она входит только в один из списков
- printf("\nSum of q: %d\n",q.sumOfElements());
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement