Top.Mail.Ru
Ответы

Написать программу по обработке одномерных массивов.

Написать программу по обработке одномерных массивов. Размеры массивов вводить с клавиатуры. В консольном приложении предусмотреть возможность ввода данных как с клавиатуры, так и с использованием функции random(). При создании оконного приложения скалярный (простой) результат выводить в виде компоненты Label, а массивы вводить и выводить с помощью компонент StringGrid. В одномерном массиве, состоящем из n вводимых с клавиатуры целых элементов, вычислить: Произведение отрицательных элементов массива.

using System;

using System.Linq;

namespace ArrayProcessorConsole

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("--- Обработка Одномерных Массивов (Консоль) ---");

while (true)

{

int arraySize = GetArraySize();

int[] array;

Console.WriteLine("\nВыберите способ ввода данных:");

Console.WriteLine("1. Ввести с клавиатуры");

Console.WriteLine("2. Заполнить случайными числами");

Console.Write("Ваш выбор (1 или 2): ");

string choice = Console.ReadLine();

switch (choice)

{

case "1":

array = FillArrayFromKeyboard(arraySize);

break;

case "2":

array = FillArrayRandom(arraySize);

break;

default:

Console.WriteLine("Неверный выбор. Повторите попытку.");

Console.ReadKey();

Console.Clear();

continue;

}

Console.WriteLine("\n--- Введенный массив ---");

PrintArray(array);

long? productOfNegatives = CalculateProductOfNegatives(array);

Console.WriteLine("\n--- Результат ---");

if (productOfNegatives.HasValue)

{

Console.WriteLine($"Произведение отрицательных элементов: {productOfNegatives.Value}");

}

else

{

Console.WriteLine("В массиве нет отрицательных элементов.");

}

Console.WriteLine("\nНажмите любую клавишу, чтобы продолжить или Esc для выхода.");

if (Console.ReadKey(true).Key == ConsoleKey.Escape)

{

break;

}

Console.Clear();

}

Console.WriteLine("Программа завершена.");

}

static int GetArraySize()

{

int size;

while (true)

{

Console.Write("Введите размер массива (целое положительное число): ");

string input = Console.ReadLine();

if (int.TryParse(input, out size) && size > 0)

{

return size;

}

else

{

Console.WriteLine("Ошибка: Введите целое положительное число.");

}

}

}

static int[] FillArrayFromKeyboard(int size)

{

int[] arr = new int[size];

Console.WriteLine($"\nВведите {size} целых элементов для массива:");

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

{

while (true)

{

Console.Write($"Элемент [{i}]: ");

string input = Console.ReadLine();

if (int.TryParse(input, out arr[i]))

{

break;

}

else

{

Console.WriteLine("Ошибка: Введите целое число.");

}

}

}

return arr;

}

static int[] FillArrayRandom(int size)

{

int[] arr = new int[size];

Random rnd = new Random();

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

{

arr[i] = rnd.Next(-50, 51);

}

Console.WriteLine($"Массив заполнен случайными числами в диапазоне [-50, 50].");

return arr;

}

static void PrintArray(int[] arr)

{

if (arr == null || arr.Length == 0)

{

Console.WriteLine("Массив пуст.");

return;

}

Console.WriteLine("Массив: [" + string.Join(", ", arr) + "]");

}

static long? CalculateProductOfNegatives(int[] arr)

{

long product = 1;

bool foundNegatives = false;

foreach (int element in arr)

{

if (element < 0)

{

product *= element;

foundNegatives = true;

}

}

return foundNegatives ? (long?)product : null;

}

}

}

По дате
По рейтингу
Аватар пользователя
Оракул

Теперт соеле время тупому говн задать влрос

Почему сам в полицтю гн пощд

Аватар пользователя

код говно