using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ArrayForms { public partial class MainForm : Form { private int[] Numbers = new int[15]; public MainForm() { InitializeComponent(); } /// /// Клик кнопки, заполняющей массив /// /// /// private void btnFill_Click(object sender, EventArgs e) { var Rng = new Random(); // Заполняем массив случайными числами, заодно добавляем их в lbBefore lbBefore.Items.Clear(); for (int i = 0; i < 15; i++) { Numbers[i] = Rng.Next(-50, 50); lbBefore.Items.Add($"Numbers[{i}] = {Numbers[i]}"); } } /// /// Вставляет значение на определённый индекс в массиве. Самое последнее значение массива будет удалено /// /// Исходный массив /// Значение для вставки /// Позиция для вставки /// Массив со вставленным элементом private int[] InsertValueToArray(int[] SourceArray, int Value, int InsertIndex) { // Копируем массив var NewArray = new int[15]; Array.Copy(SourceArray, NewArray, 15); // Сместить все элементы массива на их индекс + 1 чтобы освободить место for (int i = NewArray.Length - 1; i >= InsertIndex; i--) { NewArray[i] = NewArray[i - 1]; } // Заменить освободившийся индекс NewArray[InsertIndex] = Value; return NewArray; } /// /// Обработчик кнопки вычисления ответа /// /// /// private void btnMove_Click(object sender, EventArgs e) { if (lbBefore.Items.Count == 0) { MessageBox.Show("Сначала заполните массив!"); return; } // Находим последний положительный элемент int LastPositive = -1; for (int i = 14; i >= 0; i--) { if (Numbers[i] > 0) { LastPositive = Numbers[i]; break; } } /* Если положительный элемент был найден, то и LastPositive должен стать положительным * Поэтому, если LastPositive отрицательный, положительных элементов в массиве не было найдено, т.к. * LastPositive по умолчанию отрицательный и не был заменён положительным */ if (LastPositive < 0) { MessageBox.Show("В массиве не обнаружено положительных чисел"); return; } // Вставляем LastPositive перед 6-ым элементом var NewArray = InsertValueToArray(Numbers, LastPositive, 6); // Заполняем lbAfter lbAfter.Items.Clear(); for (int i = 0; i < 15; i++) { lbAfter.Items.Add($"NewArray[{i}] = {NewArray[i]}"); } } } }