• Предмет: Информатика
  • Автор: azimgames1106
  • Вопрос задан 1 год назад

ПОМОГИТЕ КОД ЯЗЫКА C++ ДАЮ 60 БАЛЛОВ


Розробити програму, яка читає з файлу одновимірний масив. Здійснює
сортування різними методами (бульбашковим, вставки та вибору). Результати
обчислень по завданнях та впорядкований масив – записує у інший файл. Всі
впорядкування сформувати у функції, які викликаються з використанням команди
вибору.
1. номер максимального по модулю елемента масиву;
2. суму елементів масиву, розташованих після першого додатного елемента.

Ответы

Ответ дал: dwweee
0

#include <iostream>

#include <fstream>

#include <cmath>

const int MAX_SIZE = 100;

// Прототипи функцій

void bubbleSort(int array[], int size);

void insertionSort(int array[], int size);

void selectionSort(int array[], int size);

int findMaxAbsElement(int array[], int size);

int sumAfterFirstPositive(int array[], int size);

int main() {

 int array[MAX_SIZE];

 int size;

 // Зчитати масив з файлу

 std::ifstream inputFile("array.txt");

 if (inputFile.is_open()) {

   inputFile >> size;

   for (int i = 0; i < size; i++) {

     inputFile >> array[i];

   }

   inputFile.close();

 } else {

   std::cerr << "Error opening array.txt" << std::endl;

   return 1;

 }

 // Сортування масиву різними методами

 bubbleSort(array, size);

 insertionSort(array, size);

 selectionSort(array, size);

 //  Обчислити та роздрукувати результати

 int maxAbsElement = findMaxAbsElement(array, size);

 int sum = sumAfterFirstPositive(array, size);

 std::cout << "The maximum element by absolute value is: " << maxAbsElement << std::endl;

 std::cout << "The sum of the elements after the first positive element is: " << sum << std::endl;

 // Записати відсортований масив у файл

 std::ofstream outputFile("sorted_array.txt");

 if (outputFile.is_open()) {

   for (int i = 0; i < size; i++) {

     outputFile << array[i] << " ";

   }

   outputFile.close();

 } else {

   std::cerr << "Error opening sorted_array.txt" << std::endl;

   return 1;

 }

 return 0;

}

// Функція бульбашкового сортування

void bubbleSort(int array[], int size) {

 for (int i = 0; i < size - 1; i++) {

   for (int j = 0; j < size - i - 1; j++) {

     if (array[j] > array[j + 1]) {

       int temp = array[j];

       array[j] = array[j + 1];

       array[j + 1] = temp;

     }

   }

 }

}

// Функція сортування вставок

void insertionSort(int array[], int size) {

 for (int i = 1; i < size; i++) {

   int key = array[i];

   int j = i - 1;

   while (j >= 0 && array[j] > key) {

     array[j + 1] = array[j];

     j--;

   }

   array[j + 1] = key;

 }

}

// Функція сортування вибірки

void selectionSort(int array[], int size) {

for (int i = 0; i < size - 1; i++) {

int minIndex = i;

for (int j = i + 1; j < size; j++) {

if (array[j] < array[minIndex]) {

minIndex = j;

}

}

int temp = array[i];

array[i] = array[minIndex];

array[minIndex] = temp;

}

}

// Функція пошуку максимального елемента за абсолютною величиною

int findMaxAbsElement(int array[], int size) {

int max = std::abs(array[0]);

for (int i = 1; i < size; i++) {

int absValue = std::abs(array[i]);

if (absValue > max) {

max = absValue;

}

}

return max;

}

// Функція знаходження суми елементів після першого додатного елементу

int sumAfterFirstPositive(int array[], int size) {

int sum = 0;

bool found = false;

for (int i = 0; i < size; i++) {

if (array[i] > 0) {

found = true;

}

if (found) {

sum += array[i];

}

}

return sum;

}


У даній програмі масив зчитується з файлу з назвою "array.txt", а відсортований масив записується у файл з назвою "sorted_array.txt". Файл повинен містити розмір масиву, за яким слідують елементи масиву, кожен з яких відокремлюється пропуском.

Сподіваюся, це допоможе!

Вас заинтересует