Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions main.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <numeric>
#include <random>
#include <string>
#include <vector>

// ������� ��� ������ ������� ��� ������
void printVector(std::ofstream& out, const std::vector<int>& vec,
const std::string& title) {
out << "--- " << title << " ---\n";
// �������� std::copy ��� ������ ���������
std::copy(vec.begin(), vec.end(), std::ostream_iterator<int>(out, " "));
out << "\n\n";
}

int main() {
std::ofstream out_file("output.txt");
if (!out_file.is_open()) {
std::cerr << "Failed to open output.txt\n";
return 1;
}

// ��������� 20 �����
std::vector<int> numbers(20);
std::random_device rd;
std::mt19937 random_gen(rd());
std::uniform_int_distribution<int> dist(-50, 100);

std::generate(numbers.begin(), numbers.end(),
[&random_gen, &dist]() { return dist(random_gen); });

printVector(out_file, numbers, "1. Initial generated vector");

// ����������� � ������������ ��������
auto min_max = std::minmax_element(numbers.begin(), numbers.end());
out_file << "--- 2. Min and Max elements ---\n";
out_file << "Min: " << *min_max.first << "\n";
out_file << "Max: " << *min_max.second << "\n\n";

// ����������
std::sort(numbers.begin(), numbers.end());
printVector(out_file, numbers, "3. Sorted vector");

// ���������� �������������, ������������� � ������� ���������
int positive_count = std::count_if(numbers.begin(), numbers.end(),
[](int val) { return val > 0; });
int negative_count = std::count_if(numbers.begin(), numbers.end(),
[](int val) { return val < 0; });
int zero_count = std::count_if(numbers.begin(), numbers.end(),
[](int val) { return val == 0; });

out_file << "--- 4. Element counts ---\n";
out_file << "Positive: " << positive_count << "\n";
out_file << "Negative: " << negative_count << "\n";
out_file << "Zeros: " << zero_count << "\n\n";

// ������� �������������� ���� ���������
double sum = std::accumulate(numbers.begin(), numbers.end(), 0.0);
double mean = sum / numbers.size();

out_file << "--- 5. Arithmetic mean ---\n";
out_file << "Mean: " << mean << "\n\n";

// �������� �����
numbers.erase(std::remove_if(numbers.begin(), numbers.end(),
[](int val) { return val % 2 == 0; }),
numbers.end());

printVector(out_file, numbers, "6. Vector after removing even numbers");

// ����� ������ � ����������� ����������
std::sort(numbers.begin(), numbers.end());

std::vector<int> unique_numbers;
std::unique_copy(numbers.begin(), numbers.end(),
std::back_inserter(unique_numbers));

printVector(out_file, unique_numbers, "7. New vector with unique values");

out_file.close();
std::cout << "Processing complete. Check output.txt file.\n";

return 0;
}
24 changes: 24 additions & 0 deletions output.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
--- 1. Initial generated vector ---
63 88 13 53 -29 20 -11 79 99 6 32 32 23 76 68 89 -36 27 20 9

--- 2. Min and Max elements ---
Min: -36
Max: 99

--- 3. Sorted vector ---
-36 -29 -11 6 9 13 20 20 23 27 32 32 53 63 68 76 79 88 89 99

--- 4. Element counts ---
Positive: 17
Negative: 3
Zeros: 0

--- 5. Arithmetic mean ---
Mean: 36.05

--- 6. Vector after removing even numbers ---
-29 -11 9 13 23 27 53 63 79 89 99

--- 7. New vector with unique values ---
-29 -11 9 13 23 27 53 63 79 89 99