Массив целых чисел тремя методами

Автор работы: Пользователь скрыл имя, 07 Апреля 2011 в 17:06, курсовая работа

Описание работы

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

Содержание работы

Введение
1 Разработка эскизного и технического проектов программы
Назначение и область применения
1.2 Техническая характеристика
1.2.1 Постановка задачи
1.2.2 Описание алгоритма
1.2.3 Организация входных и выходных данных
1.2.4 Выбор среды разработки программных средств
2. Методы сортировки массивов
2.1 Метод «Пузырька» или Метод Обмена
2.2 Метод прямого выбора
2.3 Метод Шелла
3 Проектирование и разработка проекта
3.1 Проектирование программы
3.2 Текст программы
3.3 Спецификация программы
3.4 Тестирование
3.5 Использование созданного приложени
Заключение
Глоссарий
Список использованных источников
Приложение А
Приложение Б

Файлы: 1 файл

пример курсовой работы.doc

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

                 begin // обменяем k-й и k+1-й элементы

                   buf := a[k];

                   a[k]:=a[k+1];

                   a[k+1]:=buf;

                   ch:=true;

                 end; 

           for i:=1 to size do

             label2.Caption:=label2.Caption+' '+IntToStr(a[i]);

             label2.Caption:=label2.Caption+#13; 

         until not ch; // если не было обменов, значит отсортирован 

       //по убыванию

       if (RadioButton1.Checked=true) and (RadioButton5.Checked=true)then

         repeat

           ch:=false; // пусть в текущем цикле нет обменов

           for k:=1 to size-1 do

             if a[k] < a[k+1]

               then

                 begin // обменяем k-й и k+1-й элементы

                   buf := a[k];

                   a[k]:=a[k+1];

                   a[k+1]:=buf;

                   ch:=true;

                 end; 

            for i:=1 to size do

              label2.Caption:=label2.Caption+' '+IntToStr(a[i]);

              label2.Caption:=label2.Caption+#13; 

         until not ch; // если не было обменов, значит отсортирован 

       // метод прямого выбора

       // по возрастанию 

       if (RadioButton2.Checked=true) and (RadioButton7.Checked=true)then

         for i:=1 to size-1 do

           begin

             //поиск минимальн эл-та в части массива от a[1] до a[size]

             min:=i;

             for j:=i+1 to size do

               if a[j] < a[min]

                 then min:=j;

                 //меняем местами a[min] и a[i]

                 buf:=a[i];

                 a[i]:=a[min];

                 a[min]:=buf; 

             for k:=1 to size do

               label2.Caption:=label2.Caption+' '+IntToStr(a[k]);

               label2.Caption:=label2.Caption+#13;

           end; 

       // по убыванию

       min:=i;

       if (RadioButton2.Checked=true) and (RadioButton6.Checked=true)then

         for i:=1 to size-1 do

           begin

             //поиск минимальн эл-та в части массива от a[1] до a[size]

             min:=i;

             for j:=i+1 to size do

               if a[j] > a[min]

                 then min:=j;

                 //меняем местами a[min] и a[i]

                 buf:=a[i];

                 a[i]:=a[min];

                 a[min]:=buf; 

             for k:=1 to size do

               label2.Caption:=label2.Caption+' '+IntToStr(a[k]);

               label2.Caption:=label2.Caption+#13;

           end; 

       // МЕТОД ШЕЛЛА

       // по возрастанию

       if (RadioButton3.Checked=true) and (RadioButton8.Checked=true)then

         d:=Size div 2; // начальное значение интервала

         While d>0 do

           begin // цикл с уменьшением интервала  до 1

             //пузырьковая сортировка с интервалом d

             ch:=true;

             While ch do

               begin // цикл, пока есть перестановки

                 ch:=false; i:=1;

                 for i:=1 to Size-d do

                   begin

                     //сравнение эл-тов на интервале  d

                     if a[i]>a[i+d]

                       then

                         begin

                           buf:=a[i];

                           a[i]:=a[i+d];

                           a[i+d]:=buf; //перестановка

                           ch:=true; //признак перестановки

                         end;

                   end;

               end;

             d:=d div 2; // уменьшение интервала 

             for i:=1 to size do

               label2.Caption:=label2.Caption+' '+IntToStr(a[i]);

               label2.Caption:=label2.Caption+#13; 

           end; //пока d>0 
 

       // по убыванию

       if (RadioButton3.Checked=true) and (RadioButton9.Checked=true)then

         d:=Size div 2; // начальное значение интервала

         While d>0 do

           begin // цикл с уменьшением интервала  до 1

             //пузырьковая сортировка с интервалом d

             ch:=true;

             While ch do

               begin // цикл, пока есть перестановки

                 ch:=false; i:=1;

                 for i:=1 to Size-d do

                   begin

                     //сравнение эл-тов на интервале  d

                     if a[i]<a[i+d]

                       then

                         begin

                           buf:=a[i];

                           a[i]:=a[i+d];

                           a[i+d]:=buf; //перестановка

                           ch:=true; //признак перестановки

                         end;

                   end;

               end;

             d:=d div 2; // уменьшение интервала 

       Label2.Caption:=Label2.Caption+#13+'Массив отсортирован.'; 

     end; 

     end. 

     3.3 Спецификация программы 

     Исполняемый файл программы «Сортировка линейного массива» имеет название Project1.exe и расположен на диске в Приложении А.

     Приложение включает следующие файлы приведенные в таблице 1. 

Таблица 1

Наименование
Обозначение
Примечание
Project1.dof Файл параметров проекта Содержит текущие  установки проекта: настройки компилятора  и компоновщика, имена служебных  каталогов, условные директивы
Project1.dpr Файл проекта Связывает все  файлы из которых состоит приложение
Unit1.pas Файл программного модуля для формы № 1 Определяет  функциональность формы №1
Unit1.dfm
Файл  формы №1
Содержит список свойств всех компонентов, включенных в форму №1
Unit1.dcu Объектный файл для Unit1.pas Откомпилированная версия Unit1.pas
Project1.cfg Файл конфигурации проекта содержит конфигурацию всего проекта
Unit1.ddp Файлы модуля Содержит вспомогательные  файлы модуля, формируется автоматически
 
 

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

     При разработке программы «Сортировка линейного массива» в качестве контрольного примера может быть использован следующий пример:

     5 8 -4 0 7 3 9

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

         Результаты выполнения программы в ходе тестирования отображены в Приложении Б. 

   
    1.   Использование созданного приложения
 

      Минимальные требования для полноценной работы созданного приложения:

  • процессор Pentium 100 и выше;
  • объем оперативной памяти не менее 8 мб;
  • жесткий диск не менее 500 мб;

  Для запуска приложения использовать файл Project1.exe.    
 

 

      Заключение

     При выполнении данного курсового проекта  мною были приобретены навыки работы в среде разработки приложений Delphi 7.0, сформированы знания по формированию и обработке массивов. Результатом моих знаний и умений служит разработанное приложение «Сортировка линейных массивов», которая может быть использована преподавателем на уроках при объяснении темы «Методы Сортировки линейных массивов».

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

     Результаты  тестирования проекта имеются в  Приложении Б.

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

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

  

 

     Глоссарий

№ п/п Понятие Определение
1 Delphi одна из самых  мощных систем, позволяющих на самом  современном уровне создавать как  отдельные прикладные программы  Windows, так и разветвленные комплексы предназначенные для работы в корпоративных сетях и в Интернет.
2 Object Pascal язык программирования высокого уровня, позволяющий использовать такие объектно-ориентированные  языковые средства, как динамические массивы, перегрузка методов, параметры, заданные по умолчанию, файловые потоки и многое другое. 
3 Алгоритм это описание последовательности действий (план), строгое исполнение которых приводит к решению поставленной задачи за конечное число шагов.
4 Визуальные  компоненты компоненты, видимые  при работе приложения
5 Компилятор программа, которая  переводит исходный код на машинный язык и создает выполняемую программу.
6 Компиляция  программы перевод исходного  кода на машинный язык и компоновку выполняемого файла из файлов, составляющих проект.
7 Массив это однородная структура   однотипных  данных, одновременно хранящихся в последовательных ячейках оперативной памяти. Эта структура должна иметь имя и определять заданное количество данных (элементов).
8 Проект совокупность  файлов разных форматов, из которых  строится программа.
9 Сортировка  массива процесс  перестановки значений данного массива в определенном порядке.
10 Форма окно  приложения на этапе разработки

Информация о работе Массив целых чисел тремя методами