Перестановка строк и столбцов массива случайным образом

где SIZE — верхняя граница индекса массива.

Сортировка методом обмена

В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элементы меняются местами. Таким образом, элементы с меньшим значением продвигаются к началу массива (всплывают), а элементы с большим значением — к концу мас

сива (тонут). Поэтому данный метод сортировки обменом иногда называют методом "пузырька". Этот процесс повторяется столько раз, сколько элементов в массиве, минус единица.

На (рис. 1.2.1) цифрой 1 обозначено исходное состояние массива и перестановки на первом проходе, цифрой 2 — состояние после перестановок на первом проходе и перестановки на втором проходе, и т. д.

Опис : 13

Рисунок 1.2.1 ― Процесс сортировки массива

Следует отметить, что максимальное необходимое количество циклов проверки соседних элементов массива равно количеству элементов массива минус один. Вместе с тем, возможно, что массив реально будет упорядочен за меньшее число циклов. Например, последовательность чисел 5 1 2 3 4, если ее рассматривать как представление массива, будет упорядочена за один цикл, и выполнение оставшихся трех циклов не будет иметь смысла.

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

Если вся таблица содержит однородную информацию, например, только целые числа, то такая таблица может быть представлена как двумерный массив.

В общем виде инструкция объявления двумерного массива выглядит так:

Vary <имя >:Array[1 N,1 M] of <тип >;

где:

· Имя — имя массива;

· array — слово языка Delphi, указывающее, что объявляемый элемент данных является массивом;

· 1 N,1 M — целые константы, определяющие диапазон изменения индексов и, следовательно, число элементов массива;

· Тип — тип элементов массива.

1.3 Информационная база задачи

Для того чтобы использовать элемент массива, нужно указать имя массива и индексы элемента. Первый индекс обычно соответствует номеру строки таблицы, второй — номеру колонки.

При работе с таблицами (массивами) удобно использовать инструкцию for. Например, фрагмент программы, вычисляющий количество проданных за год автомобилей одного наименования, выглядит так:

s := 0;

for j := 1 to 12 do

s := s + itog[2, j];

Следующий фрагмент программы вычисляет сумму элементов массива (общее количество автомобилей, проданных за год).

s:=0;

for i:= 1 to 6 do // шесть моделей автомобилей

for j := 1 to 12 do //12 месяцев s := s + itog[i,j];

В приведенном фрагменте программы каждый раз, когда внутренний цикл (цикл по j) завершается, во внешнем цикле значение i увеличивается на единицу и внутренний цикл выполняется вновь. Таким образом, к текущему значению переменной s последовательно прибавляются значения элементов массива itog: itog[l,l], itog[l,2], ., itog[l,12], itog[2,l], itog[2,2], itog[2,12] и т. д.

Массивы, элементы которых имеют два индекса, называют двумерными.

Двухмерный массив удобно представить в виде матрицы с двойными индексами.

Опис : Матрица с двойными индексами

В таком массиве каждый элемент имеет двойной индекс. Первая цифра индекса указывает номер строки, вторая номер столбца. Элементы, где номер строки и номер столбца одинаковы, называют элементами главной диагонали. Так как каждый элемент массива имеет индекс, то индекс показывает место элемента в массиве.

Генератор случайных чисел. Случайные числа – результаты случайного выбора в конечном множестве значений (игровой кубик, жребий, лотерея).

Randomize – процедура установки начального состояния генератора случайных чисел. При повторном выполнении программы будут получаться разные наборы случайных чисел.

Функция random(x) – датчик случайных чисел в диапазоне от 0 до x-1 на языке Паскаль. Random(В-А+1)+А; - от А до В.

1.3.1 Входная информация

Дан массив, в котором расставлены числа случайным образом, где будет осуществляется перестановка строк и столбцов.

1.3.2 Выходная информация

Мы получили массив с случайно расставленными числами, в котором переставляются строки и столбцы указанными нами способами.

1.4 Системное меню

Использование компонента StringGrid. Значок компонента StringGrid находится на вкладке Additional. На форме создаем одну таблицу, она будет выглядеть как матрица с задаваемой нами размерностью и заполнением. Для ввода массива удобно использовать компонент StringGrid.

StringGrid ― служит для представления текстовых данных в виде таблицы. Доступ к каждому элементу таблицы происходит через свойство Cell. А ещё этот Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. Пример использования компонента StringGrid для ввода массива — программа, осуществляющая поиск в массиве заданного элемента.

А так же на форме присутствуют 6 Edit’ов и 5 Button’ов.

Edit ― стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. В первые два Edit'а мы вводим саму розмерность матрицы по которой и рысуется вся таблица. В следующих четырех Edit’ах мы указываем номера строк или столбцов при помощи, которых и выполняется перестановка строк и столбцов случайным образом, а так же мы указываем размерность самой таблицы.

Button позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом. При нажатии кнопки Button мы перестанавливаем строки и столбцы. НА форме (рис.2) присутствует кнопка "Нарисовать матрицу" - эта кнопка создает только очертания матрицы, а кнопка "Заполнить" заполняет уже нарисованную нами таблицу рандомно поставленными числами. Кнопки "ОК" выполняют действия перестановки строк и столбцов. А так же есть ещё одна кнопка Button, которая означает ВЫХОД, при нажатии на эту кнопку наша программа, которая запускается, после выполнения определенных операций, автоматически закрывается.

При немалом усердии смотрим результат.Наша форма на данный момент имеет следующий вид представленный на (рис. 1.4.1):

Страница:  1  2  3 


Другие рефераты на тему «Программирование, компьютеры и кибернетика»:

Поиск рефератов

Последние рефераты раздела

Copyright © 2010-2024 - www.refsru.com - рефераты, курсовые и дипломные работы