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


// ========== ЛАБОРАТОРНАЯ РАБОТА 1 (СТАТИЧЕСКИЙ МАССИВ) ==========
int Lab1_Static() {
    system("cls");
    info();
    SetColor(11, 0);
    cout << "===============================================================================\n";
    cout << "Лабораторная работа №1 (Статический массив)\n";
    cout << "===============================================================================\n";
    SetColor(7, 0);
    cout << "Задача: Задан массив x1, x2, …, x15 (15 элементов).\n";
    cout << "        Определить номер первого отрицательного xi и номер последнего\n";
    cout << "        отрицательного xi.\n";
    cout << "===============================================================================\n\n";
    SetColor(7, 0);

    const int SIZE = 15;
    double arr[SIZE];
    cout << "Введите 15 чисел:\n";
    COORD coord = GetCursorPosition();

    for (int i = 0; i < SIZE; i++) {
        SetCursorPosition(coord.Y, coord.X);
        SPACEBACK(50);
        cout << "x[" << i + 1 << "] = ";
        if (!ReadDoubleWithESC(arr[i])) return 0;
    }

    // Вывод массива через запятую
    cout << "\nМассив: ";
    for (int i = 0; i < SIZE; i++) {
        cout << arr[i];
        if (i < SIZE - 1) cout << ", ";
    }
    cout << endl;

    int firstNeg = -1;
    for (int i = 0; i < SIZE; i++) {
        if (arr[i] < 0) {
            firstNeg = i + 1;
            break;
        }
    }

    int lastNeg = -1;
    for (int i = SIZE - 1; i >= 0; i--) {
        if (arr[i] < 0) {
            lastNeg = i + 1;
            break;
        }
    }

    if (firstNeg == -1) {
        cout << "\nВ массиве нет отрицательных чисел.\n";
    }
    else {
        cout << "\nНомер первого отрицательного: " << firstNeg << endl;
        cout << "Номер последнего отрицательного: " << lastNeg << endl;
    }

    cout << "\nНажмите любую клавишу для возврата в меню...";
    (void)_getch();
    return 0;
}

// ========== ЛАБОРАТОРНАЯ РАБОТА 2 (ДИНАМИЧЕСКИЙ МАССИВ) ==========
int Lab2_Dynamic() {
    system("cls");
    info();
    SetColor(11, 0);
    cout << "===============================================================================\n";
    cout << "Лабораторная работа №2 (Динамический массив)\n";
    cout << "===============================================================================\n";
    SetColor(7, 0);
    cout << "Задача: Задан массив x1, x2, …, xN (размер N вводит пользователь).\n";
    cout << "        Определить номер первого отрицательного xi и номер последнего\n";
    cout << "        отрицательного xi.\n";
    cout << "===============================================================================\n\n";
    SetColor(7, 0);

    int N;
    cout << "Введите количество элементов массива N: ";
    if (!ReadIntWithESC(N) || N <= 0) return 0;

    double* arr = new double[N];
    cout << "Введите " << N << " чисел:\n";
    COORD coord = GetCursorPosition();

    for (int i = 0; i < N; i++) {
        SetCursorPosition(coord.Y, coord.X);
        SPACEBACK(50);
        cout << "x[" << i + 1 << "] = ";
        if (!ReadDoubleWithESC(arr[i])) { delete[] arr; return 0; }
    }

    // Вывод массива через запятую
    cout << "\nМассив: ";
    for (int i = 0; i < N; i++) {
        cout << arr[i];
        if (i < N - 1) cout << ", ";
    }
    cout << endl;

    int firstNeg = -1;
    for (int i = 0; i < N; i++) {
        if (arr[i] < 0) {
            firstNeg = i + 1;
            break;
        }
    }

    int lastNeg = -1;
    for (int i = N - 1; i >= 0; i--) {
        if (arr[i] < 0) {
            lastNeg = i + 1;
            break;
        }
    }

    if (firstNeg == -1) {
        cout << "\nВ массиве нет отрицательных чисел.\n";
    }
    else {
        cout << "\nНомер первого отрицательного: " << firstNeg << endl;
        cout << "Номер последнего отрицательного: " << lastNeg << endl;
    }

    delete[] arr;
    cout << "\nНажмите любую клавишу для возврата в меню...";
    (void)_getch();
    return 0;
}