
- •1 ПОСТАНОВКА ЗАДАЧИ
- •1.1 Описание входных данных
- •1.2 Описание выходных данных
- •2 МЕТОД РЕШЕНИЯ
- •3 ОПИСАНИЕ АЛГОРИТМОВ
- •3.1 Алгоритм метода Create класса MyClass
- •3.2 Алгоритм метода SumPara класса MyClass
- •3.3 Алгоритм метода Prod класса MyClass
- •3.4 Алгоритм метода Print класса MyClass
- •3.5 Алгоритм функции func
- •3.6 Алгоритм функции main
- •4 БЛОК-СХЕМЫ АЛГОРИТМОВ
- •5 КОД ПРОГРАММЫ
- •5.1 Файл main.cpp
- •5.2 Файл MyClass.cpp
- •5.3 Файл MyClass.h
- •6 ТЕСТИРОВАНИЕ
- •СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

5 КОД ПРОГРАММЫ
Программная реализация алгоритмов для решения задачи представлена
ниже.
5.1 Файл main.cpp
Листинг 1 – main.cpp
#include <iostream> #include "MyClass.h" using namespace std;
MyClass func(int size) { MyClass loc(size); return loc;
}
int main() { int size; cin >> size;
if (size <= 2 || size % 2 !=0) { cout << size << "?";
return 0;
}
cout << size; cout << endl; MyClass obj1; obj1 = func(size); cout << endl; obj1.Create(); obj1.Input(); obj1.Prod();
MyClass obj2 = obj1; obj2.SumPara(); obj1.Print();
cout << endl << obj1.Sum() << endl; obj2.Print();
cout << endl << obj2.Sum();
}
19

5.2 Файл MyClass.cpp
Листинг 2 – MyClass.cpp
#include <iostream> using namespace std; #include "MyClass.h" MyClass::MyClass() {
cout << "Default constructor" << endl; mas = nullptr;
}
MyClass::MyClass(int n) { cout << "Constructor set"; mas = new int [n]; this->n = n;
}
MyClass::MyClass(const MyClass& obj) { cout << "Copy constructor" << endl; n = obj.n;
mas = new int[n];
for (int i = 0; i<n;i++) { mas[i] = obj.mas[i];
}
}
MyClass::~MyClass() {
cout << endl << "Destructor"; if (mas != nullptr) {
delete[] mas;
}
}
void MyClass::Create() { mas = new int[n];
}
void MyClass::Input() { int x;
for (int i = 0; i<n;i++) { cin>>x;
mas[i] = x;
}
}
void MyClass::SumPara() {
for (int i = 0; i < n; i += 2) { mas[i] = mas[i] + mas[i+1];
}
}
void MyClass::Prod() {
for (int i = 0; i < n; i += 2) { mas[i] = mas[i] * mas[i+1];
}
}
int MyClass::Sum() { int s = 0;
for (int i = 0; i < n; i++) { s += mas[i];
20

}
return s;
}
void MyClass::Print() {
for (int i =0; i<n; i++) { cout << mas[i];
if (i!= n - 1){ cout << " ";
}
}
}
5.3 Файл MyClass.h
Листинг 3 – MyClass.h
#ifndef __MYCLASS__H #define __MYCLASS__H class MyClass { private:
int n; int *mas;
public:
MyClass(); MyClass(int n);
MyClass(const MyClass& obj); ~MyClass();
void Create(); void Input(); void SumPara(); void Prod(); int Sum(); void Print();
};
#endif
21