Основные приемы построения классов и разработка программного интерфейса для работы с базами данных с помощью языка Visual Basic 6,0, страница 4

 Private Sub cmdSelect_Click() 'сортировка методом выбора

Dim i, j, intMax, intlndcks As Integer

 For j = 1 To intN

' j- порядковый номер элемента уже отсортированного массива. ' Сохраним его значение и номер в качестве «целевых».

intMax = A(j):

 intlndeks = j

' цикл перебора остатка массива для поиска максимального элемента и его индекса

For i = j To intN

If A(i)> intMax Then

intMax = A(i)

intlndeks = i

End If

Nexti

' перестановка j-го элемента с найденным максимальным. A(intlndeks) = A(j): A(j) = intMax ' промежуточная итерационная печать на форму For i = 1 То intN

frmMethodssort.Print A(i); Next i

frmMethods_sort.Print Next j

frmMethods_sort.Print "Массив отсортирован методом выбора." End Sub

7. Запрограммируем событие Click для элемента cmdExchange. Private Sub cmdExchange_Click() Dim i, j, Tern As Integer For i = 1 To intN -1 For j = 1 To intN -1

IfA(j)<=A(j + l)Then Tem = A(j)

A(j +1) ■ Tem End If Next j

1 промежуточная итерационная печать Forj = lTointN

frmMethodssort.Print A(j); Next j

frmMethodssort.Print Next I

frmMethods_sort.Print "Массив отсортирован методом обменов." End Sub

8. Запрограммируем событие Click для элемента cmdWrSelect. Private Sub cmdWrSelect_Click() Dim i, fileno2 As Integer Dim strPath2 As String Filcno2 = FrceFilc comFilcs.ShovvSavc strPath2 = comFiles.FileNamc Open strPath2 For Output As fileno2

Print #fileno2, "Массив, отсортированный методом выбора:" For i = 1 То intN

Print #fileno2, A(i); Nexti

Close #fileno2

frmMethods_sort.Print "Записан массив, отсортированный выбором" End Sub

 Методы сортировки


Из Файла считано 10 чисел. Сформирован массив из 10 элементов. 10 20 40 80 30 50 70 100 60 90

100 20 40 80 30 50 70         10 G0 90

100 30 40 80 30 50 70         10 60 20

100 90 80 40 30 50 70         10 60 20

100 90 80 70 30 50 40         10 60 20

100 90 80 70 60 50 40         10 30 20

100 90 80 70 60 50 40         10 30 20

100 90 80 70 60 50 40         10 30 20

100 90 30 70 60 50 40         30 10 20

100 90 80 70 60 50 40         30 20 10

100 90 80 70 60 50 40         30^20 10
Записан массив, отсортированный выбором


Exchange Method


Write

EXCHANGE



Read


Select Method


IWrite SELECT



Рис.2



9. Запрограммируем событие Click для элемента cmdWrExchange. Private Sub cmdExchange_Click() Dim i, fileno2 As Integer Dim strPath2 As String Fileno2 = FreeFile comFiles.ShowSave strPath2 = comFiles.FileName Open strPath2 For Output As fileno2

Print #Шепо2, "Массив, отсортированный методом обмена:" For i = 1 To intN

Print #fileno2, A(i); Nexti

Close #fileno2

frmMethods_sort.Print "Записан массив, отсортированный методом обмена" End Sub

 Методы сортировки


Из Файла считано 10 чисел.

Сформирован массив из 10 элементов.

10 20 40 80 30 50 70 100 60 90

20 40 80 30 50 70 100 60 90 10

40 80 30 50 70 100 60 90 20 10

80 40 50 70 100 60 90 30 20 10

80 50 70 100 60 90 40 30 20 10

80 70 100 60 90 50 40 30 20 10

80 100 70 90 60 50 40 30 20 10

100 80 90 70 60 50 40 30 20 10

100 90 80 70 60 50 40 30 20 10

100 90 80 70 60 50 40 30 20 10

100 90 80 70 60 50 40 30 20 10

Записан массив, отсортированный обменами




Exchange Method


... Write.

EXCHANGE



Read


Select Method


V/rite SELECT


Рис. 3

Практические упражнения

1.  Усовершенствуйте программу подсчетом для каждого из методов количества
реальных    перестановок,    приводящих    к    отсортированному    массиву    и
количества операций сравнения.

2.  Измените программный код так, чтобы сортировка осуществлялась в порядке
возрастания значений элементов.

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

1.  Можно   ли    использовать   метод   сортировки   обменами   для   сортировки
нечисловых массивов, например массив, состоящий из слов? Если возможно,
то как нужно записать условие и каков будет результат

2.  В каких задачах возникает необходимость сортировки массивов?

Самостоятельное задание 4

Напишите программу, реализующую алгоритм сортировки методом вставки. Исходный массив сформировать чтением из файла. Исходный массив, этапы сортировки и окончательно отсортированный массив вывести в другой файл.

Самостоятельное задание 5

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

Самостоятельное задание 6

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