Загрузка данных
// ========== ЛАБОРАТОРНАЯ РАБОТА 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;
}