Условие:
Составь блок схему на основании кода, опираясь на международный стандарт ISO 5807:1985 и ГОСТ 19.701-90. Опиши по действиям как она должна выглядеть. #include <iostream>
#include <fstream>
using namespace std;
// Функция проверяет, есть ли такое значение в массиве
bool isUnique(int* array, int size, int value) {
for (int i = 0; i < size; i++) {
if (array[i] == value) {
return false; // значение уже есть
}
}
return true; // значение уникально
}
// Функция создаёт массив B из неповторяющихся остатков от деления на 2, 3 и 5
int getUniqueRemainders(int A, int size, int& B) {
int tempSize = size * 3; // максимум 3 остатка на каждый элемент
int* temp = new int[tempSize];
int count = 0;
for (int i = 0; i < size; i++) {
int mods[3] = { A[i] % 2, A[i] % 3, A[i] % 5 };
for (int j = 0; j < 3; j++) {
if (isUnique(temp, count, mods[j])) {
temp[count] = mods[j];
count++;
}
}
}
// Создаём массив B
B = new int[count];
for (int i = 0; i < count; i++) {
B[i] = temp[i];
}
delete[] temp; // очищаем временный массив
return count; // возвращаем размер массива B
}
int main() {
ifstream input("input.txt");
ofstream output("output.txt");
// Проверка открытия файлов
if (!input || !output) {
cout << "Ошибка при открытии файла!" << endl;
return 1;
}
int size; // размер входного массива A
input >> size;
int* A = new int[size]; // создаём массив A
// Чтение элементов массива A
for (int i = 0; i < size; i++) {
input >> A[i];
}
int* B = nullptr;
int bSize = getUniqueRemainders(A, size, B); // получаем массив B и его размер
// Запись в output.txt
output << bSize << endl;
for (int i = 0; i < bSize; i++) {
output << B[i] << " ";
}
output << endl;
// Очистка памяти
delete[] A;
delete[] B;
input.close();
output.close();
return 0;
}
