Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив2 / курсовая docx100 / zapiska_k_kursovoy.docx
Скачиваний:
123
Добавлен:
07.08.2013
Размер:
581.76 Кб
Скачать
    1. Основные понятия

Дадим определения понятиям, которые используются в данной работе. Это такие определения как: массив, сортировка.

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

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами.

Сортировка — упорядочивание элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки. На практике в качестве ключа часто выступает число, а в остальных полях хранятся какие-либо данные, никак не влияющие на работу алгоритма.

    1. Методы исследования

Для начала реализуется ввод квадратной матрицы и последующая ее обработка. Ввод элементов производится случайным образом и с клавиатуры. Для составления последовательности будут использоваться циклы, в которых, вначале, проверяется диагональный элемент, а потом составляется сумма из элементов строки. Сумма каждой строки записывается в последовательность. В результате получим массив, состоящий из сумм всех строк матрицы. Дальше необходимо отыскать наибольший элемент последовательности, которые который разделит ее на две части. Потом необходимо включить наибольший элемент в одну из двух частей и сравнить длину полученных частей. Большую часть отсортировать по убыванию, а меньшую по возрастанию. Если части равны, то левую упорядочить по убыванию, а правую - по возрастанию.

Выходными данными является последовательность отсортированных элементов.

  1. Разработка алгоритма

Алгоритм — это последовательность действий, направленных на получение определённого результата.

Перед началом разработки алгоритма необходимо четко определить задачу: что требуется получить в качестве результата, какие исходные данные необходимы и какие имеются в наличии, какие существуют ограничения на эти данные. Далее требуется записать, какие действия необходимо предпринять для получения из исходных данных требуемого результата. Графическое представление называется схемой алгоритма или блок-схемой. После того как алгоритм написан, на его основе разрабатывается программа. Процесс создания алгоритма — самый важный. Если здесь допущены ошибки, то устранить их на этапе кодирования трудно.

Алгоритм работы программы заключается в следующем:

  1. Ввод размерности матрицы

  2. Заполнение матрицы

  3. Составление элементов последовательности

  4. Нахождение максимального элемента последовательности

  5. Сортировка частей последовательности

  6. Вывод отсортированной последовательности

  1. Составление программы. Разработка пользовательского интерфейса

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

Описание процедур представлено ниже:

  1. Button1Click (Sender: TObject) – Процедура перезаписи матрицы после того, как были внесены изменения.

  2. Button2Click (Sender: TObject) – Вывод на экран задания.

  3. Input_matrixClick (Sender: TObject) – Реализует ввод размерности матрицы, а также заполнение ее случайными значениями.

  4. ResultClick (Sender: TObject) – Процедура построения последовательности с последующим ее выводом на экран

  5. Clear_allClick (Sender: TObject) – Очистка всех полей.

  6. SortingClick (Sender: TObject) – Сортировка последовательности, вывод максимального элемента, размерностей двух частей последовательности,

Из этого списка можно выделить процедуры более важные, так как они выполняют основные действия написанные в задании. Это ResultClick (Sender: TObject) и SortingClick (Sender: TObject).

ResultClick (Sender: TObject). В цикле for прохода по индексам строк сначала присваивается переменной хранящей сумму элементов строки (A_i_) ноль. Далее во вложенных условных операторах If проверяются элементы стоящие на главной диагонали, если он удовлетворяет условию то отыскивается либо первый отрицательный элемент, либо первый положительный элемент и запоминается его позиция (переменная Neg) далее цикл прерывается. После во вложенном цикле for считается сумма, которая станет элементом последовательности R.

SortingClick (Sender: TObject). В начале процедуры наибольшим элементом (coa) считается первый. Далее в цикле сравнивается значение имеющегося максимального элемента и остальных элементов R[i], если максимальный элемент меньше i-го члена последовательности, то coa присваивается значение текущего элемента последовательности и запоминается его позиция в переменную cOFarray. Затем считается размер левой и правой части. Следует заметить что наибольший элемент включен в левую часть. После того как посчитаны размеры они сравниваются между собой. В зависимости какая часть больше происходит сортировка по возрастанию (в меньшей) и по убыванию (в большей). Если части равны, то левая упорядочивается по убыванию, а правая - по возрастанию. В данной программе использовалась сортировка выбором. Можно было использовать другие сортировки, но я решил, что эта сортировка более удобная.

Рассмотрим этапы сортировки выбором:

  1. Находим номер минимального значения в текущем списке

  2. Производим обмен этого значения со значением первой не отсортированной позиции

  3. Сортируем оставшиеся элементы, исключив из рассмотрения уже отсортированные элементы.

В конце процедуры выводится полученный отсортированный массив R.

Соседние файлы в папке курсовая docx100