WinSort: Difference between revisions

From TÜ Narva Kolledži Wiki
Jump to navigation Jump to search
Content deleted Content added
Created page with "<pre> namespace WinSort { public partial class frmSort : Form { // Определяем количество элементов в массиве stati..."
 
No edit summary
Line 74: Line 74:
</pre>
</pre>


[https://web.narva.ut.ee/index.php/%D0%9F%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B <<]
[https://wiki.nc.ut.ee/index.php?title=Примеры <<]

Revision as of 17:17, 4 September 2022

namespace WinSort
{
    public partial class frmSort : Form
    {
        // Определяем количество элементов в массиве
        static int ArrSize = 20;
        // Создаем массив с заданным выше количеством элементов
        static int[] numbers = new int[ArrSize];
        
        
        public frmSort()
        {
            InitializeComponent();
        }

        private void frmSort_Load(object sender, EventArgs e)
        {
            lblUnSort.Text = "";
            lblSort.Text = "";
        }

        private void btnGenerate_Click(object sender, EventArgs e)
        {
            lblUnSort.Text = "";
            lblSort.Text = "";

            Random r = new Random();
            // Этот цикл "проходит" по всем элементам массива
            for (int i = 0; i < numbers.Length; i++)
            {
                // Генерируем случайное число и записываем в текущий элемент массива 
                numbers[i] = r.Next(1, 100);
                // lblUnSort.Text = lblUnSort.Text + numbers[i] + " ";
            }

            // Распечатать несортированный массив
            lblUnSort.Text = string.Join(", ", numbers);
        }

        private void btnSort_Click(object sender, EventArgs e)
        {
            // Этот цикл повторяется столько раз сколько содержится элементов в массиве
            for (int i = 0; i < numbers.Length; i++)
            {
                /* Этот цикл проходит по всем элементам массива начиная с самого первого,
                 * сверяет соседние 2 элемента между собой и если первый элемент больше второго, то они меняются местами
                */
                for (int j = 0; j < numbers.Length - 1; j++)
                {
                    if (numbers[j] > numbers[j + 1])
                    {
                        // Записываем первый элемент массива во временную переменную, чтобы не потерять
                        int tmp = numbers[j];
                        // Переписываем первый элемент массива вторым элементом
                        numbers[j] = numbers[j + 1];
                        // Восстанавлием значение из временной переменной tmp на место второго элемента
                        numbers[j + 1] = tmp;
                    }
                }
            }

            // Распечатать отсортированный массив
            lblSort.Text = string.Join(", ", numbers);
        }

        private void btnExit_Click(object sender, EventArgs e)
        {
            // Выходим из программы если пользователь нажал кнопку "Выход"
            Application.Exit();
        }
    }
}

<<