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

Автор работы: Пользователь скрыл имя, 09 Апреля 2014 в 11:42, курсовая работа

Краткое описание

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

Содержание

Введение 3
1 ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ
1.1 Описание языка программирования 4
1.2 Теоретический материал 5
1.3 Постановка задачи 8
2 ПРАКТИЧЕСКИЙ РАЗДЕЛ
2.1 Эскизный проект 9
2.2 Технический проект 13
2.3 Инструкция пользователя 22
ЗАКЛЮЧЕНИЕ 24
СПИСОК ЛИТЕРАТУРЫ 25

Вложенные файлы: 1 файл

Отчет.docx

— 108.42 Кб (Скачать файл)

 

Функция челночной сортировки.

 

Входные параметры: исходный массив и его размерность.

Выходные параметры: результирующий массив.

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

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

 

Функция сортировки вставки.

 

Входные параметры: исходный массив и его размерность.

Выходные параметры: результирующий массив.

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

Функция заполнения исходного массива.

 

Входные параметры: отсутствуют.

Выходные параметры: исходный массив и его размерность.

Изначально будет введена размерность массива. Для ввода будет предусмотрена защита – сравнение введенной длины. Если длина будет меньше 2, то выдастся сообщение об ошибки. При активации кнопки «Заполнить», будет вызвана функция,  в которой определяется длина массива. Затем проверка условия, каким способом будет заполнен массив. Если пользователь выберет случайное заполнение массива, то в цикле с помощью функции random(), массив  будет заполнен  случайными числами. Если будет выбран способ заполнения вручную, то будет очищен массив, организован цикл, в котором заполняем массив вручную.

Если не будет выбран ни один из предложенных способов заполнения, то выдастся сообщение об ошибке.

 

Функция для очистки массива

 

При активации кнопки «Очистить», будет вызвана функция Clear(), которая очищает массив.

 

Главная функция

 

В пользовательском интерфейсе, при активации кнопки «Сортировать», будет вызвана функция. В этой функции будет предусмотрена проверка условия, какое направление сортировки выберет пользователь, если по возрастанию, то переменная, которая передается в функции сортировки, будет равна 1, а если по убыванию, то переменная будет равна -1, такое значение переменной предусмотрено для смены знака неравенства с больше на меньше, чтобы изменить направление сортировки.

Будет предусмотрена проверка условий: если не выбран метод сортировки и ее направление, то выдастся сообщение об ошибке.

 После будет вызываться функции:

    • сортировка линейным выбором;
    • сортировка методом минимального (максимального) элемента;
    • сортировка методом «Пузырька»;
    • челночная сортировка;
    • сортировка вставкой.

Функция выхода из программы

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2.2. Технический проект

void lineset(int *&mas, int size, int p)



 




 

 



 


 




 


 

 

 

 




 


 


 




 


 




 

 

 

 

 

void mm (int *mas, int size, int p )



 


 


 




 

 




 


 




 

void puz (int *&mas, int size, int p)



 


 





 




 




 

 

 

 

void chel (int *&mas, int size, int p)



 




 

 






 




 




 

void vstav (int *&mas, int size, int p)






 


 


 


 




 


 




 

void __fastcall TForm1::ZapolnenieClick(TObject *Sender)









 





 




 

 

 

 

void __fastcall TForm1::SortClick(TObject *Sender)








 


 


 


 


 


 

 

 

 

 

void __fastcall TForm1::CloseClick(TObject *Sender)




 


 

 

void __fastcall TForm1::ClearClick(TObject *Sender)



 


 

 

 

 

 

 

 

 

 

 

2.3. Инструкция пользователя

Программа разработана для сортировки массивов. Запуск программы осуществляется двойным кликом по файлу SortArray.exe  под управлением ОС Windows ХР/7/8,  не требует большого количества системных ресурсов, имеет удобный пользовательский интерфейс.

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

Для начала работы надо ввести размерность исходного массива от 2 до 10. Если появится окно ошибки, то введена не правильная размерность или пытались ввести символы или знаки. В окне ошибки нажимается «ОК» и заново вводиться размерность массива.

 Затем нужно выбрать способ заполнения массив и нажать кнопку «Заполнить». Если способ не выбран, выдается сообщение с предложением выбрать способ заполнения. Если выбран способ заполнения «Вручную», то активировав полосу Исходного массива, начинаем ввод, чтобы передвигаться по ячейкам массива  можно: ЛКМ активировать каждую ячейку или после ввода каждого элемента массива нажимать клавишу Enter и передвигаться по ячейкам с помощью клавиш управления курсором. Если же выбран способ заполнения «Случайно», то массив заполниться элементами случайно,  выбрав числа из диапазона от 0 до 200. После того как Исходный массив заполнен выбираем метод сортировки. В этой программе представлены пять основных методов сортировок:

    • Линейный выбор;
    • Метод мин и макс;
    • Метод «Пузырька»;
    • Челночная сортировка;
    • Сортировка вставки.

Затем выбираем направление сортировки:

    • По возрастанию;
    • По убыванию.

И нажимаем по кнопке «Сортировать». Если не выбран метод сортировки и направление, то программа предложит выбрать. Отсортированный массив отобразиться во второй полосе.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

 

 

В данном курсовом проекте при разработке программы были закреплены навыки объектно-ориентированного программирования на языке С++. Среды разработки программы Borland C++  и  Embarcadero RAD Studio XE2. Освоены алгоритмы пяти основных сортировок:

    • Линейный выбор;
    • Метод мин и макс;
    • Метод «Пузырька»;
    • Челночная сортировка;
    • Сортировка вставки.

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СПИСОК ЛИТЕРАТУРЫ

 

  1. Шолмов Л.И. Руководство по турбо Си. М.: Наука, 1994. - 94-98с.
  2. Уинер Р. Язык Турбо Си : Пер. с англ. -М.:: Мир, 1991. - 384 с.
  3. Керниган Б.В, Ричи Д.М. Си для профессионалов. М.: Энергия, 1996.- 213 с.

 

  1. Грейд Дж. Математическое программирование. М.: Наука, 1987. - 241 с.
  2. Либерман М. Алгоритмы сортировки массивов. М.: Наука, 1997. - 43-81с.

 


Информация о работе Сортировка массивов данных