Сортировка методом перестановки данных

Разработка и программирование алгоритма сортировки методом перестановки данных. Выбор структур данных для решения задачи. Логическое и физическое проектирование программного обеспечения. Проектирование интерфейса, кодирование и тестирование программы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.10.2017
Размер файла 196,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Оглавление

Введение

1. Изучение и описание предметной области

2. Постановка задачи

3. Выбор структур данных для решения поставленной задачи

4. Логическое проектирование

5. Физическое проектирование программного обеспечения

6. Проектирование интерфейса

7. Кодирование

8. Тестирование

Заключение

Список литературы

Приложения

Введение

Одним из важнейших процедур обработки структурированной информации является сортировка. Алгоритм сортировки используется в практически любой программной системе. Целью алгоритмов сортировки является упорядочение последовательности элементов данных. Поиск элемента в последовательности отсортированных данных занимает время, пропорциональное логарифму количеству элементов в последовательности, а поиск элемента в последовательности не отсортированных данных занимает время, пропорциональное количеству элементов в последовательности, то есть намного больше. Существует множество различных методов сортировки данных. Однако любой алгоритм сортировки можно разбить на три основные части:

· Сравнение, определяющее упорядоченность пары элементов;

· Перестановка, меняющая местами пару элементов;

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

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

1. Изучение и описание предметной области

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

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

По рекомендованной литературе выполнить теоретическое сравнение алгоритмов сортировок, рассматриваемых в рамках курсового проекта. Построить блок-схемы, наглядно отображающие принцип работы алгоритмов сортировок методами быстрой сортировки, сортировки Шелла, сортировки слиянием.

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

2. Постановка задачи

В данной работе необходимо разработать программу, реализующую следующие задачи: интерфейс кодирование программа алгоритм

· Формирование одномерного динамического массива Mass c количеством элементов Kol, задаваемым пользователем, случайным образом.

· Сортировка массива Mass по возрастанию при помощи трех алгоритмов сортировки:

Методом простого выбора.

Методом простых вставок.

Методом подсчета сравнений.

· Учет времени работы алгоритмов сортировки.

· Выведение данных о скорости работы алгоритмов на экран в виде гистограммы.

· Сохранение отсортированного массива в файл.

При написании программ для реализации сортировок массивов был использован язык программирования С++. Это один из широко используемых языков программирования, который можно использовать для написания программ, работающих в операционной среде Windows. Среда Borland C++ Builder 6это сложный механизм, обеспечивающий высокоэффективную работу программиста.

3. Выбор структур данных для решения поставленной задачи

Таблица 1

Наименование

Обозначение

Тип данных

Массив

Mass

Int

Переменная

Kol,i

long

Переменная

SlSortTime

Int

Переменная

ShellSortTime

Int

Переменная

QSortTime

Int

Файл

f

FILE

Массив

Mass1

Int

Массив

Mass2

Int

Массив

Mass3

Int

Переменная

vremya

Int

Переменная

start

Int

Переменная

end

Int

Переменная

i,j,k

Int

Переменная

tmp

Int

Переменная

max, n

Int

Переменная

x0, y0,w,h

Int

Переменная

del

Float

Указатель

*Mass1

Int

Указатель

*Mass2

Int

Указатель

*Mass3

Int

4. Логическое проектирование

Метод простого выбора

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

Алгоритм сортировки массива методом выбора:

1. Для исходного массива выбрать максимальный элемент.

2. Поменять его местами с последним элементом (после этого самый большой элемент будет стоять на своем месте).

3. Повторить п.п. 1-2 с оставшимися n-1 элементами, то есть рассмотреть часть массива, начиная с первого элемента до предпоследнего, найти в нем максимальный элемент и поменять его местами с предпоследним (n-1)м элементом массива, затем с оставшиеся (n-2)-мя элементами и так далее, пока не останется один элемент, уже стоящий на своем месте.

Для упорядочения массива потребуется (n-1) просмотров массива. В процессе сортировки будет увеличиваться отсортированная часть массива, а неотсортированная, соответственно, уменьшаться.

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

Метод простых вставок

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

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

Метод подсчета сравнений

Сортировка подсчётом -- алгоритм сортировки, в котором используется диапазон чисел сортируемого массива (списка) для подсчёта совпадающих элементов. Применение сортировки подсчётом целесообразно лишь тогда, когда сортируемые числа имеют (или их можно отобразить в) диапазон возможных значений, который достаточно мал по сравнению с сортируемым множеством, например, миллион натуральных чисел меньших 1000. Эффективность алгоритма падает, если при попадании нескольких различных элементов в одну ячейку, их надо дополнительно сортировать. Необходимость сортировки внутри ячеек лишает алгоритм смысла, так как каждый элемент придётся просматривать более одного раза. Оценим эффективность сортировки подсчетом по количеству сравнений. Так как мы сравниваем каждый элемент с каждым элементом массива, то имеем N*N сравнений. Эффективность алгоритма C=N*N=И(N2), т.е. сортировка подсчетом имеет квадратичную сложность. Множитель N2 свидетельствует о том, что алгоритм неэффективен при большом N , т.к. при удвоении числа элементов массива количество сравнений увеличится в 4 раза. Но он очень прост в реализации.

5. Физическое проектирование программного обеспечения

Таблица 2

Имя модуля

Заголовок Функции

Формальные параметры

Выполняемое действие

MainUnit.cpp

SimpleChoose

*mass ,

int Kol

Сортировка Массива mass с количеством элементов Kol методом простого выбора.

MainUnit.cpp

InsertionSort

*mass ,

int Kol

Сортировка Массива mass с количеством элементов Kol методом простых вставок.

MainUnit.cpp

CountCompares

*mass ,

int Kol

Сортировка Массива mass с количеством элементов Kol методом подсчета сравнений.

MainUnit.cpp

TForm1::Btn_SortClick

-

Выделение памяти под массивы с количеством элементов, полученных из формы, заполнение массива случайными числами; вызываем методы сортировки, выводим сообщение о завершении операции.

MainUnit.cpp

TForm1::DrawGis

-

Построение гистограммы на основе данных в переменных InsertionSort, CountCompares, SimpleChoose

6. Проектирование интерфейса

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

В качестве форм ввода-вывода информации на экран будут использованы следующие компоненты:

· TEdit (для ввода количества элементов )

· TButton ( «Сортировать», «показать время работы алгоритмов»

· TLabel (для статических надписей на формах )

· TImage (для прорисовки гистограммы)

Все эти компоненты есть в стандартном наборе компонентов C++ Builder, они просты в использовании как для написания программы, так и для ее использования.

7. Кодирование

Реализация алгоритма сортировки методом простого выбора.

Листинг 1.1

// Выполняем сортировку

for(i=Kol-1;i>0;i--)

{

//Устанавливаем начальное значение и номер

//для максимального элемента

Max = Mass[i];

n =i;

// Ищем максимальный элемент

for(j=0;j<=i-1;j++)

{

if (Mass[j]> Max)

{

Max= Mass[j];

Mass[j]= Mass[n];

Mass[n]=Max;

}

}

Реализация алгоритма сортировки методом простых вставок.

Листинг 1.2

// Выполняем сортировку

for(i=0;i<Kol;i++)

{

Tmp=Mass[i];

for(j=i-1;j>=0 && Mass[j]>Tmp;j--)

Mass[j+1] = Mass[j];

Mass[j+1] = Tmp;

}

Реализация алгоритма сортировки методом подсчета сравнений.

Листинг 1.3

// Производим сортировку

for (i =1; i <= Kol ; i ++)

c[i]=0;

for (i=Kol; i>=2;i--)

for(j=i-1; j>=1; j--)

if (Mass[i]<Mass[j])

c[j]++;

else

c[ i ]++;

for (i =1; i <= Kol ; i ++)

b[c[i]] = Mass[i];

8. Тестирование

Таблица 3

Исходные данные

Тестируемый модуль или

подпрограмма

Ожидаемый

результат

1000 элементов массива

TForm1::SimpleChoose

Сохранение массива, отсортированного методом простого выбора в файл и подсчет времени выполнения

1000 элементов массива

TForm1::InsertionSort

Сохранение массива, отсортированного методом простых вставок в файл и подсчет времени выполнения

1000 элементов массива

TForm1::CountCompares

Сохранение массива, отсортированного методом подсчета сравнений в файл и подсчет времени выполнения

1000 элементов массива

TForm1::DrawGis

Построение гистограммы по значениям времени работы.

10000 элементов

MainUnit.cpp

Подсчет времени работы каждого метода сортировки и построение гистограммы.

Таблица 4

Дата,

Время

Тестируемый модуль или подпрограмма

Кто проводил тестирование

Описание теста

Результаты тестирования

10.12.14

TForm1::SimpleChoose

Кузнецов Р.А.

Проверка работы сортировки массива из 1000 элементов методом простого выбора

Успех

10.12.14

TForm1::InsertionSort

Кузнецов Р.А.

Проверка работы сортировки массива из 1000 элементов методом простых вставок

Успех

10.12.14

TForm1::CountCompares

Кузнецов Р.А.

Проверка работы сортировки массива из 1000 элементов методом подсчета сравнений

Успех

13.12.14

MainUnit.cpp

Кузнецов Р.А.

Проверка работы подсчета времени работы алгоритмов сортировки массива из 10000 элементов

Ошибка. Неверный отсчет времени

13.12.14

MainUnit.cpp

Кузнецов Р.А.

Проверка работы подсчета времени работы алгоритмов сортировки массива более 20000 элементов

Вылет программы

13.12.14

MainUnit.cpp

Кузнецов Р.А.

Проверка работы подсчета времени работы алгоритмов сортировки массива более 20000 элементов

Успех

Заключение

В ходе курсовой работы был проведен обзор трех алгоритмов сортировки, в том числе оценка их эффективности. Был сделан вывод, что сортировка методом простых вставок более эффективна в целом, чем остальные методы.

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

Список литературы

1. Н. Вирт. Алгоритмы и структуры данных. -- СПб.: Невский диалект, 2008.

2. https://ru.wikipedia.org/

3. http://kvodo.ru/

4. "Программирование и основы алгоритмизации" В.Г. Давыдов изд. "Высшая школа", 2005

5. "Программирование на языке высокого уровня" Т.А. Павловская изд. "Питер", 2004.

Приложения

Приложение 1

1. Техническое задание

1. Введение

1.1. Наименование программы

Наименование программы: «Сортировка данных»

1.2. Назначение и область применения

Программа создана для сравнения по скорости работы 3-х способов сортировки данных в одномерном динамическом массиве: простого выбора, простых вставок, подсчета сравнений.

2. Требования к программе

2.1. Требования к функциональным характеристикам

Программа должна обеспечивать возможность сортировки данных разными способами, сохранение отсортированных массивов в файл, вывод гистограммы для сравнения скорости работы алгоритмов.

2.2. Требования к надежности

В программе должны быть просчитаны ошибочные комбинации ввода данных. А именно, введенные данные о количестве элементов массива должны быть целочисленные, а введенное число должно быть больше 10000. В противном случае пользователю выходит сообщение об ошибке.

3. Условия эксплуатации

3.1. Климатические условия эксплуатации

Климатические условия эксплуатации, при которых должны обеспечиваться заданные характеристики, должны удовлетворять требованиям, предъявляемым к техническим средствам в части условий их эксплуатации

3.2. Требования к составу и параметрам технических средств

В состав технических средств должен входить IВМ-совместимый персональный компьютер (ПЭВМ), процессор Pentium-2.0Hz, оперативную память объемом не менее 512 мб, операционную систему Цindows xp.

3.3. Требования к информационной и программной совместимости

Среда Borland C++ Builder 6

4. Требования к программной документации

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

5. Технико-экономические показатели

Экономическая эффективность не рассчитывается.

6. Стадии и этапы разработки

6.1. Стадии и этапы разработки.

Таблица 5

Наименование этапа разработки ПО

Сроки

разработки

Результат

Выполнения

Отметка о

выполнении

Анализ требований

Проектирование

Тестирование

6.2. Порядок контроля и приемки

Таблица 6

Наименование контрольного этапа выполнения курсовой работы

Сроки контроля

Результат

выполнения

Отметка о приемке

результата контрольного этапа

Составление технического задания

29.09.14

Описание работы алгоритмов

13.10.14

Блок-схемы алгоритмов

20.10.14

Интерфейс пользователя

10.11.14

Первая версия программы

24.11.14

Вторая версия программы

8.12.14

Расчетно-пояснительная записка

До 15.12.14

Защита курсовой работы

С 22.12.14 по 29.12.14

Приложение 2

Алгоритм метода простых вставок

Алгоритм метода простого выбора

Приложение 3

Руководство пользователя

Внешний вид программы представлен на Рис.1

Рис.1

Пользователь вводит в поле «Количество элементов» размер массива и нажимает кнопку «Сортировать». По-умолчанию в этом поле стоит число 10000, т.к. это условие задания. Если мы вводим число меньше 10000, то получаем сообщение о неправильности ввода Рис 2

Рис. 2

Если мы вводим в поле «Количество элементов» символы не являюшиеся числами или вещественное число, то у нас выйдет следующее сообщение:

Рис. 3

Если же мы ввели корректное число то программа выдаст сообщение что сортировка завершена (Рис. 4)

Рис. 4

После нажатия кнопки «OK» отобразится гистограмма (Рис. 5)

Рис. 5

Цифрами здесь показано время выполнения алгоритма в миллисекундах. Красный столбец - алгоритм простого выбора, зеленый это сортировка вставками и синий подсчет сравнений.

Кроме того программа записывает 3 тестовых файла. Алгоритм простого выбора создает файл «SimpleChoose.txt». Внешний вид файла приведен на Рис. 6

Рис. 6

Алгоритм сортировки вставками создает файл «InsertionSort» (Рис.7)

Рис. 7

Алгоритм подсчета сравнений создает файл «CountCompares» (Рис. 8)

Рис. 8

Приложение 4

Листнинг

Модуль MainUnit.h

//---------------------------------------------------------------------------

#ifndef MainUnitH

#define MainUnitH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <Time.h>

#include <stdio.h>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TImage *Img_Gis;

TLabel *L_KolEl;

TEdit *Ed_KolEl;

TButton *Btn_Sort;

TLabel *Label1;

void __fastcall Btn_SortClick(TObject *Sender);

private: // User declarations

// Очищает поле и рисует оси

void DrawField(void);

// Метод простого выбора

int SimpleChoose(int *Mass,int Kol);

// Метод простых вставок

int InsertionSort(int *Mass,int Kol);

// Метод подсчета сравнений

int CountCompares(int *Mass,int Kol);

// Изображение гистограммы

void DrawGis(int first,int second,int third);

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

Модуль MainUnit.cpp

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "MainUnit.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

this->DrawField();

}

//---------------------------------------------------------------------------

void TForm1::DrawField(void)

{

int xo,yo; // Начало координат

// Устанавливаем начало координат

xo = 20;

yo = Img_Gis->Height 20;

// Очищаем поле

this->Img_Gis->Canvas->Brush->Color = clWhite;

this->Img_Gis->Canvas->FloodFill(10,10,clYellow,fsBorder);

// Рисуем оси

this->Img_Gis->Canvas->MoveTo(xo,yo);

this->Img_Gis->Canvas->LineTo(xo,20);

this->Img_Gis->Canvas->MoveTo(xo,yo);

this->Img_Gis->Canvas->LineTo(Img_Gis->Width 20,yo);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Btn_SortClick(TObject *Sender)

{

long i,Kol; // Индекс и количество элементов массива

int *Mass1, *Mass2, *Mass3, // Указатели на массивы

// Время работы алгоритмов

simplechoose, // Простого выбора

insertionsort, // Простых вставок

countcompares; // Подсчет сравнений

// Включаем генератор случайных чисел

randomize();

try

{

// Считываем количество элементов с формы

Kol = StrToInt(Ed_KolEl->Text);

if(Kol>=10000)

{

// Создаем динамические массивы

Mass1 = new int[Kol];

Mass2 = new int[Kol];

Mass3 = new int[Kol];

// Заполняем массивы случайными числами

for(i=0;i<Kol;i++)

{

Mass1[i] = random(Kol*2);

Mass2[i] = Mass1[i];

Mass3[i] = Mass1[i];

}

// Вызываем методы сортировки

simplechoose = SimpleChoose(Mass1,Kol);

insertionsort = InsertionSort(Mass2,Kol);

countcompares = CountCompares(Mass3,Kol);

// Выводим сообщение о конце операции

Application->MessageBox("Сортировка завершена","Сообщение", MB_OK);

// Рисуем гистограмму

DrawGis(simplechoose,insertionsort,countcompares);

}

else

Application->MessageBox("Количество элементов не должно быть меньше 10000",

"Повторите ввод", MB_OK);

}

catch(EConvertError&)

{

Application->MessageBox("Вы ввели ошибочное число",

"Повторите ввод", MB_OK);

}

}

//---------------------------------------------------------------------------

// Метод простого выбора

int TForm1::SimpleChoose(int *Mass,int Kol)

{

FILE *f;

int start, end, vremya, // Начало и конец отсчета

i,j, // Индексы

Max,n; // Максимальный элемент и его номер

// Начинаем отсчет времени

start = clock();

// Выполняем сортировку

for(i=Kol-1;i>0;i--)

{

//Устанавливаем начальное значение и номер

//для максимального элемента

Max = Mass[i];

n =i;

// Ищем максимальный элемент

for(j=0;j<=i-1;j++)

{

if (Mass[j]> Max)

{

Max= Mass[j];

Mass[j]= Mass[n];

Mass[n]=Max;

}

}

}

// Заканциваем отсчет времени

end = clock();

vremya = end start;

// Записываем осортированный массив в файл

f = fopen("SimpleChoose.txt","w");

for(i=0;i<Kol;i++)

fprintf(f," %d",Mass[i]);

// Закрываем файл

fclose(f);

return vremya;

}

//---------------------------------------------------------------------------

// Метод простых вставок

int TForm1::InsertionSort(int *Mass,int Kol)

{

FILE *f;

int start, end, vremya, // Начало и конец отсчета

i,j,k, // Индексы

Tmp; // Буфер

// Начинаем отсчет времени

start = clock();

// Выполняем сортировку

for(i=0;i<Kol;i++)

{

Tmp=Mass[i];

for(j=i-1;j>=0 && Mass[j]>Tmp;j--)

Mass[j+1] = Mass[j];

Mass[j+1] = Tmp;

}

// Заканциваем отсчет времени

end = clock();

vremya = end start;

// Записываем осортированный массив в файл

f = fopen("InsertionSort.txt","w");

for(i=0;i<Kol;i++)

fprintf(f," %d",Mass[i]);

// Закрываем файл

fclose(f);

return vremya;

}

//---------------------------------------------------------------------------

// Метод подсчета сравнений

int TForm1::CountCompares(int *Mass,int Kol)

{

FILE *f;

int start, end, vremya, // Начало и конец отсчета

i,j,k, // Индексы

*b, *c; // Вспомогательные массивы

// Создаем вспомогательные массивы

b = new int[Kol];

c= new int[Kol];

// Начинаем отсчет времени

start = clock();

// Производим сортировку

for (i =1; i <= Kol ; i ++)

c[i]=0;

for (i=Kol; i>=2;i--)

for(j=i-1; j>=1; j--)

if (Mass[i]<Mass[j])

c[j]++;

else

c[ i ]++;

for (i =1; i <= Kol ; i ++)

b[c[i]] = Mass[i];

// Заканциваем отсчет времени

end = clock();

vremya = end start;

// Записываем осортированный массив в файл

f = fopen("CountCompares.txt","w");

for(i=0;i<Kol;i++)

fprintf(f," %d",b[i]);

// Закрываем файл

fclose(f);

return vremya;

}

//---------------------------------------------------------------------------

// Изображение гистограммы

void TForm1::DrawGis(int first,int second,int third)

{

int Max; // Максимальное время

float del, // Точек на деление

xo,yo, // Начало координат

w,h; // Ширина и высота столбца

char str[10]; // Время в милисекундах

Max = first;

if (second > Max)

Max = second;

if(third > Max)

Max = third;

del = (float)(Img_Gis->Height-40)/Max;

// Очищаем поле

DrawField();

// Устанавливаем начало координат

xo = 20;

yo = Img_Gis->Height 20;

w = (Img_Gis->Width 40)/3;

// Рисуем гистограммы

// Метод простого выбора

if (first!=0)

h = (int)first*del;

else

h=0;

Img_Gis->Canvas->Rectangle(xo,yo,xo+w,yo-h);

this->Img_Gis->Canvas->Brush->Color = clRed;

this->Img_Gis->Canvas->FloodFill(xo+w/2,yo-h/2,clBlack,fsBorder);

itoa(first,str,10);

this->Img_Gis->Canvas->Brush->Color = clWhite;

this->Img_Gis->Canvas->TextOut(xo+10,yo-h-15,str);

// Метод простых вставок

if (second!=0)

h = (int)second*del;

else

h=0;

Img_Gis->Canvas->Rectangle(xo+w,yo,xo+2*w,yo-h);

this->Img_Gis->Canvas->Brush->Color = clGreen;

this->Img_Gis->Canvas->FloodFill(xo+w+w/2,yo-h/2,clBlack,fsBorder);

itoa(second,str,10);

this->Img_Gis->Canvas->Brush->Color = clWhite;

this->Img_Gis->Canvas->TextOut(xo+w+10,yo-h-15,str);

// Метод подсчета сравнений

if (third!=0)

h = third*del;

else

h=0;

Img_Gis->Canvas->Rectangle(xo+2*w,yo,xo+3*w,yo-h);

this->Img_Gis->Canvas->Brush->Color = clBlue;

this->Img_Gis->Canvas->FloodFill(xo+2*w+w/2,yo-h/2,clBlack,fsBorder);

itoa(third,str,10);

this->Img_Gis->Canvas->Brush->Color = clWhite;

this->Img_Gis->Canvas->TextOut(xo+2*w+10,yo-h-15,str);

}

Размещено на Allbest.ru

...

Подобные документы

  • Разработка программы, сортирующей массивы данных различного типа методом подсчета. Основные шаги алгоритма сортировки, ее свойства и модификация подсчетом. Целесообразность применения сортировки подсчетом. Условия эффективности алгоритма сортировки.

    лабораторная работа [438,5 K], добавлен 16.07.2015

  • Проектирование программного модуля. Описание схемы программы и структуры разрабатываемого пакета. Написание кода ввода исходных данных и основных расчетов. Тестирование программного модуля. Тестирование решения задачи. Методы численного интегрирования.

    курсовая работа [549,9 K], добавлен 20.03.2014

  • Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.

    курсовая работа [81,7 K], добавлен 18.08.2014

  • Анализ основных алгоритмов внутренней сортировки массивов данных, сравнение сложности их реализации и производительности. Сортировка пузырьком, методами вставок, выбора, методом Шелла, быстрая сортировка. Операция разделения массива внутренней сортировки.

    курсовая работа [161,7 K], добавлен 17.12.2015

  • Выбор шифров перестановки для проведения анализа. Анализ алгоритма двух различных шифров, построение блок-схемы алгоритма и программы, разработка общего интерфейса. Сравнение шифров перестановки по результатам шифрования и криптоанализа текстов.

    курсовая работа [2,8 M], добавлен 14.01.2014

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и оценка структур данных для ее хранения. Разработка основных алгоритмов решения и структурной схемы программного продукта. Проектирование интерфейса пользователя.

    курсовая работа [449,8 K], добавлен 14.01.2011

  • Выбор технологии, языка и среды программирования. Анализ процесса обработки информации и выбор структур данных для ее хранения, разработка основных алгоритмов. Проектирование интерфейса пользователя. Выбор стратегии тестирования и разработка тестов.

    курсовая работа [332,3 K], добавлен 09.12.2014

  • Аппаратные характеристики системы, использованной для разработки информационного ресурса "Сортировка слиянием". Проектирование логической и физической структуры ресурса, реализация его интерфейса. Основные функции программы, ее тестирование и отладка.

    курсовая работа [2,1 M], добавлен 26.11.2012

  • Обзор преимуществ и недостатков среды программирования Delphi, ее сравнение с аналогичными продуктами. Разработка инфологической, датологической, модели базы данных. Проектирование структуры программного обеспечения и понятного интерфейса базы данных.

    курсовая работа [964,8 K], добавлен 27.09.2014

  • Разработка программы, позволяющей реализовать шифрование и дешифрование текстового файла методом замены и методом перестановки. Требования к функциональным характеристикам, надежности, составу и параметрам технических средств ПО. Интерфейс пользователя.

    курсовая работа [19,0 K], добавлен 30.04.2011

  • Типы данных, использованные при создании базы данных. Структура программы, используемые переменные, выражения и указатели. Концептуальное (инфологическое), логическое (даталогическое) и физическое проектирование. Тестирование программы и описание полей.

    курсовая работа [398,4 K], добавлен 16.07.2012

  • Определение требований к операционной обстановке. Инфологическое, логическое проектирование. Разработка программного обеспечения. Структура приложения, его тестирование. Выбор СУБД и других инструментальных программных средств. Описание схемы базы данных.

    курсовая работа [2,4 M], добавлен 25.12.2013

  • Представление (построение, создание) списка данных в виде линейного однонаправленного списка. Формирование массива данных. Вывод данных на экран. Алгоритм удаления, перемещения данных. Сортировка методом вставки. Алгоритм загрузки данных из файла.

    курсовая работа [2,1 M], добавлен 16.05.2015

  • Этапы проектирования базы данных. Инфологическое проектирование. Определение требований к операционной обстановке. Выбор СУБД и других программных средств. Логическое и физическое проектирование реляционной базы данных. Технология доступа к информации.

    курсовая работа [2,3 M], добавлен 06.10.2016

  • Анализ аналогов и выбор прототипа, разработка алгоритма и графического интерфейса, кодирование и тестирование. Логическая модель данных "Нотариальная контора". Особенности реализации в MS SQL. Требования к функциональным характеристикам базы данных.

    курсовая работа [1,3 M], добавлен 12.01.2013

  • Проектирование программного обеспечения для создания баз данных о работах студентов университета при помощи языка Visual Basic. Разработка интерфейса пользователя. Руководство для системного программиста. Краткое описание алгоритма работы с программой.

    курсовая работа [2,6 M], добавлен 19.03.2010

  • Анализ предметной области. Средства и технологии разработки программного обеспечения. Требования к аппаратным и операционным ресурсам. Создание навигационного меню. Структура данных таблиц. Разработка интерфейса модуля. Сортировка и фильтрация данных.

    дипломная работа [3,7 M], добавлен 12.05.2018

  • Концептуальное и инфологическое проектирование базы данных в системе управления базами данных Microsoft Access. Физическое проектирование базы данных "Магазин спорттоваров". Тестирование и отладка базы данных, составление руководства пользователя.

    курсовая работа [6,7 M], добавлен 22.11.2022

  • Описание решения задачи, ее постановка, общий подход к решению. Представление исходных данных, условий задачи и целей ее решения. Составление алгоритма решения поставленной задачи. Написание программного обеспечения и тестирование конечного продукта.

    курсовая работа [1,1 M], добавлен 03.07.2011

  • Анализ существующего программного обеспечения. Этапы создания проекта. Концептуальное, логическое и физическое проектирование базы данных. Структура программного продукта. Руководство программиста и оператора. Тестирование программного продукта.

    курсовая работа [586,4 K], добавлен 26.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.