Загрузка данных


#include <iostream>     // Подключение функций ввода и вывода (cin, cout)
#include <clocale>      // Подключение поддержки русского языка

using namespace std;    // Использование пространства имен std

// Функция для вычисления произведения отрицательных элементов (из задания 2)
int multNegative(int A[], int N)
{
    /* Предусловие: A - массив целых чисел размера N, N > 0
       Постусловие: функция возвращает произведение отрицательных элементов массива */

    int P = 1;          // Переменная для произведения

    for (int i = 0; i < N; i++) // Проход по всем элементам массива
    {
        if (A[i] < 0)   // Если элемент отрицательный
        {
            P *= A[i];  // Умножаем
        }
    }

    return P;           // Возвращаем итоговое произведение
}

// Функция для построения массива B по заданию 3
void buildArrayB(int A[], int B[], int N, int P)
{
    /* Предусловие: A и B - массивы целых чисел размера N, P - значение произведения из задания 2
       Постусловие: заполнен массив B, где положительные элементы A увеличены на P, а остальные скопированы без изменений */

    for (int i = 0; i < N; i++) // Цикл по всем элементам
    {
        if (A[i] > 0)           // Если элемент положительный
        {
            B[i] = A[i] + P;    // Увеличиваем на найденное произведение P
        }
        else                    // Отрицательные элементы и нули
        {
            B[i] = A[i];        // Оставляем без изменений
        }
    }
}

int main()
{
    setlocale(LC_ALL, "Russian"); // Включение русского языка в консоли

    // Предусловие: пользователь вводит 10 целых чисел в массив A
    // Постусловие: вычисление P, формирование массива B и вывод обоих массивов на экран

    const int N = 10;   // Размер массивов
    int A[N];           // Исходный массив
    int B[N];           // Новый массив

    // Ввод элементов массива A с клавиатуры
    cout << "Введите 10 целых чисел через пробел или Enter:" << endl;
    for (int i = 0; i < N; i++)
    {
        cin >> A[i];    // Поэлементный ввод
    }

    // Вывод исходного массива A на экран
    cout << "\nИсходный массив A:" << endl;
    for (int i = 0; i < N; i++)
    {
        cout << A[i] << " ";
    }
    cout << endl;

    // Шаг 1: Вызов функции из задания 2 (находим произведение отрицательных)
    int P = multNegative(A, N);
    cout << "\nПроизведение отрицательных элементов (P): " << P << endl;

    // Шаг 2: Построение нового массива B через отдельную функцию (задание 3)
    buildArrayB(A, B, N, P);

    // Вывод нового массива B строго из main()
    cout << "\nСформированный массив B:" << endl;
    for (int i = 0; i < N; i++)
    {
        cout << B[i] << " ";
    }
    cout << endl;

    system("pause");    // Задержка консоли
    return 0;           // Успешное завершение программы
}