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.4.1 ― Форма программы


2. Описание программы

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

1)  procedure Button1Click(Sender: TObject);

2)  procedure Button2Click(Sender: TObject);

Процедура "Выхода":

procedure Button3Click(Sender: TObject);

Она работает следующим образом: при нажатии на кнопку "Выход", программа заканчивает свою работу и закрывается.

При помощи этой процедуры:

procedure Button4Click(Sender: TObject); ― мы можем создать массив, с размерностью указанной нами в ручную. Эта процедура выполняет только те действия или операции при помощи которых мы можем осуществить появление самой "таблицы" массива

Данная процедура "procedure FormCreate(Sender: TObject);" выводит два диалоговых окна с сообщением подсказкой.

Эта процедура "procedure Button5Click(Sender: TObject);" процедура заполнения, она рандомно или (случайным образом) заполняет массив "таблицу".


3. Описание применения

При запуске этой программы у нас появляется диалоговое окно приветствия, имеющее следующий вид (рис. 3.1).

Рисунок 3.1 ― Диалоговое окно программы

При нажатии на кнопку "ОК" у вас появится ещё одно диалоговое окно изображенное на (рис.3.2), в котором будет указан инструктаж что надо делать Если строго выполнять все указания диалоговых окон то у вас все получится.

Рисунок 3.2 – Окно создания массива (таблицы)

При нажатии а кнопку "ОК" появится Диалоговое окно формы (рис. 3.3), значения (1,1) обведенные красным это значения в которые можно ввести все те числа какие вам захочется. Сейчас я вам покажу как все это должно выглядеть. Для начала мы введем числа (рис.3.4). Потом при нажатии на кнопку "Нарисовать массив" Выскочит следующее окно пояснение изображенное на (рис. 3.5). После нажатия на кнопку "ОК" у нас появится таблица с заданной нами розмерностью . Ниже приведены рисунки "Диалоговых окон" при помощи которых идет пояснение каждого хода программы (краткий инструктаж по программе). На (рис.3.8) изображено окно (предупреждение), которое отвечает за то что когда вы введете число больше чисел заданных в массиве то вам будет выведено окно предупреждение, и вы будете вынуждены ввести заново числа только те числа которые входят в пределы массива заданного вами. На (рис.3.9) изображено окно предупреждение которое отвечает за то, что при введении одинаковых чисел в пределе массива, то оно вас предупредит что бы вы этого не делали. К (рис.3.10) и (рис.3.11) идут аналогичные пояснения как и к (рис.3.8) и (рис.3.9) но только для столбцов.

Рисунок 3.3 – Диалоговое окно "форма"


Рисунок 3.4 – Пример ввода чисел

Рисунок 3.5 – Пояснение к следующим действиям

Рисунок 3.6 – Диалоговое окно

Рисунок 3.7 – Диалоговое окно


Рисунок 3.8 – Диалоговое окно

Рисунок 3.9 – Диалоговое окно

Рисунок 3.10 – Диалоговое окно


Рисунок 3.11 – Диалоговое окно

Рисунок 3.12 – Диалоговое окно

Рисунок 3.13 – Диалоговое окно


Рисунок 3.14 – Диалоговое окно

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


Заключение

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

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

Эту программу можно оптимизировать добавив строку "Меню".

Но данная программа содержит ещё и множество диалоговых окон "уведомлений", при помощи которых и происходит весь процесс выполнения программы.

матрица массив программа диалоговый


Список используемых источников

1.  Чертик А.А., Борисок В.В., Корвель Ю.И. Delphi. Трюки и эффекты. СПб.: Питер, 2007. С. 10-48, 72-90.

2.  Флёнов М.Е. Delphi в шутку и в серьез: что умеют хакеры. СПб.: Питер, 2006. С. 15-102.

3.  Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. 48-49, 306-316.

4.  Фаронов В.В. Delphi. Программирование на языке высокого уровня: Учебник для вузов. 49-51, 317-352.

5.  Бобровский С.И. Delphi 7. Учебный курс. СПб.: Питер, 2008. С. 151-182.


Информация о работе «Перестановка строк и столбцов массива случайным образом»
Раздел: Информатика, программирование
Количество знаков с пробелами: 17456
Количество таблиц: 0
Количество изображений: 16

Похожие работы

Скачать
31780
0
0

... всю программу (речь идет не о динамическом размещении массивов в куче, а о статическом описании массивов и передаче их как параметров в подпрограммы). Этот недостаток, как и отсутствие в языке средств обработки исключительных ситуаций (прерываний), унаследован из стандартного Паскаля и представляет собой объект постоянной и вполне заслуженной его критики. Разработчики Турбо Паскаля не рискнули ...

Скачать
139305
0
14

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

Скачать
723413
0
0

... данных будет нести больше смысла, если его отсортировать каким‑либо образом. Часто требуется сортировать данные несколькими различными способами. Во‑вторых, многие алгоритмы сортировки являются интересными примерами программирования. Они демонстрируют важные методы, такие как частичное упорядочение, рекурсия, слияние списков и хранение двоичных деревьев в массиве. Наконец, сортировка ...

Скачать
249178
21
46

... системам линейных алгебраических уравнений с более чем одной неизвестной; MATLAB решает такие уравнения без вычисле-ния обратной матрицы. Хотя это и не является стандартным математическим обозначением, система MATLAB использует терминологию, связанную с обычным делением в одномерном случае, для описания общего случая решения совместной системы нескольких линейных уравнений. Два символа деления / ...

0 комментариев


Наверх