1. Главная
  2. Библиотека
  3. Программирование
  4. Составь блок схему на основании кода, опираясь на между...
Решение задачи на тему

Составь блок схему на основании кода, опираясь на международный стандарт ISO 5807:1985 и ГОСТ 19.701-90. Опиши по действиям как она должна выглядеть. #include <iostream> #include <fstream> using namespace std; // Функция проверяет, есть ли такое значение

  • Программирование
  • #Основы алгоритмизации и программирования
  • #Языки программирования (C++, Java, Python и др.)
Составь блок схему на основании кода, опираясь на международный стандарт ISO 5807:1985 и ГОСТ 19.701-90. Опиши по действиям как она должна выглядеть. #include <iostream> #include <fstream> using namespace std; // Функция проверяет, есть ли такое значение

Условие:

Составь блок схему на основании кода, опираясь на международный стандарт 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;
}

Решение:

Ниже приведено пошаговое описание блок-схемы, составленной на основании представленного кода с соблюдением международного стандарта ISO 5807:1985 и ГОСТ 19.701-90. В описании указаны основные блоки, их назначение и порядок выполнения операций:

  1. Блок «Начало»
  • Начало алгоритма (старт программы).
  1. Блок ввода/инициализации
  • Чтение/инициализация файлов: открываются входной файл (input.txt) и выходной файл (output.txt).
  • Блок решения проверки открытия файлов (условный блок): • Если файлы не открылись, переход к блоку вывода ошибки и завершения алгоритма. • Если файлы успешно открылись...

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет