#pragma once
class Array {
double* arr;
int size;
public:
Array();
Array(int size);
~Array();
void fillArray();
void printArray() const;
int countPositive() const;
Array buildNewArray() const;
int getSize() const;
};
#include "Array.h"
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
Array::Array() : arr(nullptr), size(0) {}
Array::Array(int size) {
this->size = size;
arr = new double[size];
}
Array::~Array() {
if (arr != nullptr) {
delete[] arr;
}
}
void Array::fillArray() {
for (int i = 0; i < size; ++i) {
arr[i] = (rand() % 10001 - 5000) / 100.0;
}
}
void Array::printArray() const {
for (int i = 0; i < size; ++i) {
cout << " " << arr[i] << " ";
}
cout << endl;
}
int Array::countPositive() const {
int count = 0;
for (int i = 0; i < size; ++i) {
if (arr[i] > 0) {
count++;
}
}
return count;
}
Array Array::buildNewArray() const {
int positiveCount = countPositive();
int newSize = 0;
for (int i = 0; i < size; ++i) {
if (arr[i] > positiveCount) {
newSize++;
}
}
Array newArray(newSize);
int index = 0;
for (int i = 0; i < size; ++i) {
if (arr[i] > positiveCount) {
newArray.arr[index++] = arr[i];
}
}
return newArray;
}
int Array::getSize() const {
return size;
}
#include <iostream>
#include "Array.h"
using namespace std;
int main() {
setlocale(LC_ALL, "Russian");
int n;
cout << "Введите размер массива: ";
cin >> n;
Array originalArray(n);
originalArray.fillArray();
cout << "Исходный массив:" << endl;
originalArray.printArray();
int positiveCount = originalArray.countPositive();
cout << "Количество положительных элементов: " << positiveCount << endl;
Array newArray = originalArray.buildNewArray();
cout << "Новый массив:" << endl;
newArray.printArray();
cout << "Размер нового массива: " << newArray.getSize() << endl;
return 0;
}