Сазонова_20ВИ1. Сравнение и анализ алгоритмов сортировки массива прямым выбором
Скачать 0.88 Mb.
|
Структура программного обеспеченияВ результате выполнения задания на курсовую работу была разработана диаграмма классов, представленная на рисунке 6. Рисунок 6 – Диаграмма классов При создании диаграммы было выделено 9 классов: TForm, TTabsheet, TPageControl, TButton, TStringGrid, TRadioButton, TLabel, TEdit, TChart. Основным классом является TForm. К его агрегированным классам относятся TPageControl, TTabsheet. Последний в свою очередь является агрегирующим по отношению к TButton, TStringGrid, TRadioButton, TLabel, TEdit, TChart. Это связано с тем, что компоненты данных классов расположены на Tabsheet. Все классы связаны между собой с помощью агрегации – ассоциация типа «целое - часть». Она представляется в виде прямой с ромбом на конце. Ромб на связи указывает на то, какой класс является агрегирующим, то есть «состоящим из частей», а класс с противоположного конца – агрегированным, то есть является той самой составляющей частью. Каждый класс имеет свои атрибуты, которые описывают свойства его объектов: TForm – это класс с важнейшим компонентом, на котором основана вся работа системы по проектированию и разработке приложений. Содержит в себе такие атрибуты, как объявление массивов с разной степенью упорядоченности: неупорядоченный, упорядоченный и упорядоченный в обратном порядке. Также обладает атрибутами: caption, который устанавливает название формы; description, задающий текст подсказки для компонента, отображаемой при наведении курсора мыши или клике в области компонента; width, устанавливающий ширину компонента. TPageControl – класс, позволяющий в ходе проектирования объединять на одной форме несколько вкладок, которые содержат разные элементы управления. Доступ к каждой из вкладок осуществляется при помощи корешков с названиями. В нем используются атрибуты, дающие наименование компоненту (Name) и созданным страница (Caption), то есть тем самым «корешкам». TTabsheet – класс, используемый для большего удобства при распределение компонентов на разные страницы, которые созданы при помощи TPageControl. Обладает такими атрибутами, как caption – заголовки вкладок, раннее описанный description. TChart – класс, позволяющий строить различные диаграммы и графики. Обладает атрибутами: series – содержит серии графика, ChartArea — область на листе, отведенная под диаграмму. TEdit – класс, компоненты которого предназначены для введения данных пользователем. В данном случае он вводит число, обозначающее максимальную размерность массива. Атрибутами являются text – надпись, отображаемая на компоненте, и name – название компонента. TLabel – класс, предназначенный для отображения подписей, меток и статического текста на форме. Обладает теми же атрибутами, что и предыдущий класс. TRadioButton - класс предназначен для выбора одного переключателя из ряда возможных. Переключатели всегда используются группами. Когда пользователь выбирает один из них, то выделение с текущего переключателя снимается. Таким образом, в группе выделен всегда только один переключатель. В данном случае этот класс отвечает за выбор степени упорядоченности массива. Атрибуты, которыми обладает: name – название компонента; caption – наименование кнопки; contextHelpText - текст контекстной подсказки для компонента. TButton - класс, компоненты которого выполняют определенное действие после нажатия на него. Является кнопкой. Обладает теми же атрибутами, что и предыдущий класс, но к ним добавляется еще action - имя действия, соответствующего данной кнопке. TStringGrid – класс, позволяющий отображать данные в табличном виде. Обладает такими атрибутами, как row и column – строки и столбцы соответственно, составляющие таблицу. Реализация программыКодированиеВ ходе выполнения курсовой работы было разработано приложение «Сравнение и анализ алгоритмов сортировки массива прямым выбором», код которого приведен в приложении А. Диаграмма деятельностиС помощью программного обеспечения ArgoUML была разработана диаграмма деятельности для алгоритма сортировки массива классическим прямым выбором, которая представлена на рисунке 7. Рисунок 7 – Диаграмма деятельности алгоритма сортировки массива классическим прямым выбором На диаграмме деятельности используются следующие состояния действия: razm:=strtoint(Edit1.Text); - присваивание переменной введенного пользователем значение, обозначающее размерность массива; t1:=GetTickCount; - начало засечки времени; for i:=0 to razm – вход в цикл, упорядочивающий элементы массива; min:=i; - присваивание индекса первого ненулевого элемента, с которым будут сравниваться последующие элементы массива; for j := i+1 to razm – вход в цикл, который ищет минимум; min:=j; - присваивание индекса минимума. Осуществляется только тогда, когда удовлетворено условие M[min]>M[j]; buf:=M[i]; - присваивание буферной переменной значение первого неупорядоченного элемента; M[i]:=M[min]; - присваивание первому неупорядоченному элементу значение элемента с индексом min; M[min]:=buf; - элементу с индексом min присваивается значение, ранее занесенное в буферную переменную; t2:=GetTickCount; - конец засечки времени; time1[q]:=t2-t1; - вычисление времени, за которое массив был отсортирован, и его добавление в массив с временными показателями. |