Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Порядок выполнения




Пузырьковая сортировка (простой обмен)

Сортировка простым выбором

Пояснения к работе

ПРАКТИЧЕСКАЯ РАБОТА № 7

 

Тема Массивы

Цель работы Изучить различные алгоритмы сортировки списка.Закрепить навыки использования массивов данных и массивов объектов.

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

1. Начинаем сортировку с первого элемента i=1;

2. Найти максимальный элемент и его номер в массиве A1, A2,...An

3. Поменять местами A1 и максимальный элемент Ak;

4. перейти к следующему элементу i=i+1;

5. если рассмотрены не все N-1 элементы, то повторить с п. 2.

1. i=1;

2. Сравнить попарно и, при нарушении упорядоченности, поменять местами элементы Ai и Ai+1, Ai+1 и Ai+2,... An-1 и An

3. i=i+1

4. Если i<=N, то повторить с п.2.

Простые вставки ( добавление нового элемента в массив, не нарушая его упорядоченности )

1. Задать значение X;

2. i=1;

3. Найти место для Х, когда выполняется Ai<=X<= Ai+1;

4. Выполнить сдвиг элементов Ai+1 Ai+2 … An вправо;

5. Поставить значение Х на нужное место (Ai+1 =X).

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

1. Создать новый проект и установить на форме компоненты и изменить значения свойств в соответствии с таблицей:

Button1 Caption Изменить
Top  
Left  
Button1 Caption Сортировать
Top  
Left  
Timer1 Interval  
Label1 Top  
Left  
Color clBlue
Width  
Height  
Name Palka
Visible False

2. Объявить массив данных и массив объектов:

mas: Array[1..15] of Integer;

zabor: Array[1..15] of TLabel;

a,b, i: Integer;

3. Для формы выбрать событие Create и ввести код:

For i:=1 to 15 Do Begin

zabor[i]:= TLabel.Create(palka);

zabor[i].Parent:= Form1;

zabor[i].Left:=i*30;

zabor[i].Top:=palka.Top;

zabor[i].Visible:=true;

zabor[i].Width:=palka.Width;

zabor[i].Height:=palka.Height;

zabor[i].Color:=palka.Color;

end;

b:=0; //количество упорядоченных элементов

a:=1;//номер элемента, с которого начинается сравнение пар

4. Для кнопки Изменить ввести код:

Randomize;

For i:=1 To 15 Do

Begin

zabor[i].Height:=random(200)+10;

mas[i]:=zabor[i].Height;

end;

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

timer1.Interval:=1000;

6. Для таймера ввести код:

Var

c: integer;

Begin

For i:=a to 14 do

If mas[i]>mas[i+1] then

Begin

c:=mas[i];

mas[i]:=mas[i+1];

mas[i+1]:=c;

zabor[i].Height:=mas[i];

zabor[i+1].Height:=mas[i+1];

a:=i+1;

exit;

end;

a:=1;

b:=b+1;

if b>14 then timer1.Interval:=0;

End;

7. Проверить работу приложения.

8. Модернизировать приложение:

  • вывести сообщение об окончании сортировки;
  • создать еще один массив меток для вывода значений элементов массива;
  • добавить две радиокнопки и внести изменения в программу для выбора режима сортировки: по возрастанию и по убыванию.

9. Результат показать преподавателю.

 

Задания для самостоятельного выполнения

Задание №1

Модернизировать разработанное приложение: первую половину массива сортировать по возрастанию, а вторую половину массива по убыванию.

Задание №2

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

Задание №3

Разработать приложение, реализующее сортировку элементов одномерного массива простым выбором. Предусмотреть визуализацию алгоритма сортировки через использование массива объектов.

Задание №4

Разработать приложение, реализующее сортировку элементов массива объектов по цвету. Используйте функцию RGB(n1,n2,n3) для свойства Color, где n1, n2, n3 случайные числа от 0 до 255.

Кнопка Изменить должна переопределять цвет элементов массива объекта.

Задание №5

Разработать приложение, реализующее сортировку элементов массива объектов по алфавиту значений свойства Caption. Кнопка Изменить должна переопределять значение свойства Caption (случайный символ: буква русского алфавита).

 

Контрольные вопросы

1. Зачем нужна сортировка?

2. Какие виды сортировки бывают?

3. Какое основное требование предъявляется к сортировке?





Поделиться с друзьями:


Дата добавления: 2014-10-23; Просмотров: 544; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.