Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Исследование методов сортировки массивов (Visual Basic) - файл Пояснительная записка.doc


Исследование методов сортировки массивов (Visual Basic)
скачать (225.6 kb.)

Доступные файлы (22):

About.frm
About.frx
Dialog1.frm
Dialog1.frx
Dialog2.frm
Dialog2.frx
Dialog3.frm
Dialog3.log
Dialog.frm
Dialog.frx
Form1.frm
Form1.log
FOXUSER.DBF
FOXUSER.FPT
log.txt1kb.12.06.2008 14:25скачать
Module1.bas
MSSCCPRJ.SCC
Project1.vbp
Project1.vbw
Пояснительная записка.doc126kb.12.06.2008 14:27скачать
Презентация1.ppt83kb.16.05.2007 18:15скачать
Пояснительная записка.doc127kb.26.03.2007 21:28скачать

содержание

Пояснительная записка.doc

Министерство образования и науки Российской Федерации
Уфимский государственный авиационный технический университет

Кафедра информатики

Пояснительная записка
К курсовой работе:

Исследование методов сортировки массивов
Выполнила: студент гр.

Проверил: преподаватель


УФА 2007

Задание

на курсовую работу по дисциплине информатика.

Факультет: АП группа: ТКС-106

Студент: Сайфулин А..

Срок сдачи работы – 15 неделя.
Тема 4 “Решение линейных уравнений”
Вариант 12 Задание выполнить в Visual Basic
Задание:
Методы: метод Халецкого.

Основные данные

Данные задаются из файла.


Преподаватель: _______________ Пархоменко Л.В.

Дата выдачи задания: <<___>> ___________ 2005 г.

Студент ________________ сайфулин А. Р.

Дополнительные условия и уточнения задания в процессе выполнения курсовой работы:
____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

____________________________________________________________________________

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

^

Сортировка массива по возрастанию (метод бинарных вставок)


Public Sub BinaryInsertionSort(ByRef Arr() As Double, ByVal N As Long)

Dim B As Long

Dim C As Long

Dim E As Long

Dim I As Long

Dim J As Long

Dim K As Long

Dim Tmp As Double
i = 2

Do

b = 1

e = i-1

c = (b+e)\2

Do While b<>c

If Arr(c-1)>Arr(i-1) then

e = c

Else

b = c

End If

c = (b+e)\2

Loop

If Arr(b-1)<Arr(i-1) then

If Arr(i-1)>Arr(e-1) then

b = e+1

Else

b = e

End If

End If

k = i

Tmp = Arr(i-1)

Do While k>b

Arr(k-1) = Arr(k-1-1)

k = k-1

Loop

Arr(b-1) = Tmp

i = i+1

Loop Until Not i<=n

End Sub


метод Шелла

Public Sub ShellSort(ByRef Arr() As Double, ByVal N As Long)

Dim C As Boolean

Dim E As Long

Dim G As Long

Dim I As Long

Dim J As Long

Dim Tmp As Double
N = N-1

g = (n+1)\2

Do

i = g

Do

j = i-g

c = True

Do

If Arr(j)<=Arr(j+g) then

c = False

Else

Tmp = Arr(j)

Arr(j) = Arr(j+g)

Arr(j+g) = Tmp

End If

j = j-1

Loop Until Not (j>=0 And C)

i = i+1

Loop Until Not i<=n

g = g\2

Loop Until Not g>0

End Sub

^ Создание приложения
При запуске Microsoft Visual Basic 6.0 автоматически выскакивает окно с предложением создать новый проект Standard EXE. Нажимаем OK. Начнём создание проекта с титульного листа. Для этого в меню Project выберем команду Add Form. В появившемся диалоговом окне выберем Dialog и нажмем OK. В открывшейся форме расставим объекты: Label1, Label2, ... , Label8, Image1
Присвоим свойству Caption значение “Титульный лист”. На кнопку Вход напишем следующий программный код:

__________

Private Sub EnterButton_Click()

Unload Dialog

Form1.Show

End Sub

__________

При щелчке на кнопке OK из памяти выгружается форма Dialog и загружается базовая форма, служащая начальной точкой для всех операций с программой, форма Form1. Для того, чтобы создать форму Form1, в меню Project выполним команду Add Form. В появившемся диалоговом окне выберем Form и нажмем OK. Присвоим свойству Caption формы Form1 значение “ Курсовой проект - Тема 1 вариант 8”.

рис. Главная форма
Создадим меню для проекта. Для этого в меню Tools выполним команду Menu Editor. В появившемся диалоговом окне напишем названия пунктов меню и названия процедур, которые будут запускаться при выполнении команд меню. Редактор меню с введёнными именами представлен на рисунке (см. рис. №4).

Рисунок №4
Опишем какие процедуры выполняются в каждом пункте меню.
1. MnuFileSave_rez – осуществляет сохранение результата эксперимента. Результат сохраняется в файле log.txt, куда записывается система линейных уравнений, полученные результаты.

__________

Private Sub MnuFileSave_rez_Click()

Open App.Path & "\log.txt" For Output As #1

Print #1, "Ðåçóëüòàòû ñîðòèðîâêè" & Chr(13) & Chr(10) & "(êîë-âî ýëåìåíòîâ - âðåìÿ)" & Chr(13) & Chr(10) & Text1.Text

Close #1

End Sub

__________
2. MnuFileLook_rez – осуществляет вывод на экран ранее сохранённого результата, если предварительно его сохранили.

___________

Private Sub MnuFileLook_rez_Click()

Load Dialog3

Dialog3.Show

End Sub

­­­­­­­­­­­­­­­­­­­­­­­____________

При выполнении этой процедуры загружается форма Dialog3, на которой находится объект Text1, в который выводится сохраненный отчет. Отчет загружается при загрузке формы. Программный код Dialog3:

__________
Private Sub Form_Load()

Open App.Path & "\log.txt" For Input As #2

Do Until EOF(2)

Line Input #2, LineOfText$

Text1.Text = Text1.Text & LineOfText$ & Chr(13) & Chr(10)

Loop

Close #2
End Sub
Private Sub OKButton_Click()

Dialog3.Hide

Unload Dialog3

End Sub

__________

В процедуре Form_Load (), открывает файл, производит построчное считывание из него и вывод в объект Text1. Готовая форма Dialog3 изображена на рисунке (см. рис. №8). При щелчке на кнопке OK происходит выгрузка формы Dialog3 из оперативной памяти.

Рисунок №8
3. MnuHelpAbout – выводит на экран информацию о программе. Вывод осуществляется с помощью формы Dialog2.

__________

Private Sub MnuHelpAbout_Click()

Dialog2.Show

End Sub

__________
При щелчке на кнопке OK (объект Command1) происходит выгрузка формы Dialog2 из оперативной памяти.

Программный код формы Dialog2:

__________

Private Sub OKButton_Click()

Unload Dialog2

End Sub

__________
4. MnuFileExit– производит выход из приложения.

__________

Private Sub MnuFileExit ()

End

End Sub

__________
В приложении используется модуль (Module1), в котором задаются глобальные переменные, и функции отвечающие за сортировку.

Код модуля:

Public countz

Public Sub ShellSort(ByRef Arr() As Double, ByVal N As Long)

Dim C As Boolean

Dim E As Long

Dim G As Long

Dim I As Long

Dim J As Long

Dim Tmp As Double

N = N - 1

G = (N + 1) \ 2

Do

I = G

Do

J = I - G

C = True

Do

If Arr(J) <= Arr(J + G) Then

C = False

Else

Tmp = Arr(J)

Arr(J) = Arr(J + G)

Arr(J + G) = Tmp

End If

J = J - 1

Loop Until Not (J >= 0 And C)

I = I + 1

Loop Until Not I <= N

G = G \ 2

Loop Until Not G > 0

End Sub
Public Sub Binar(ByRef Arr() As Double, ByVal N As Long)

Dim C As Boolean

Dim E As Long

Dim G As Long

Dim I As Long

Dim J As Long

Dim Tmp As Double
N = N - 1

G = (N + 1) \ 2

Do

I = G

Do

J = I - G

C = True

Do

If Arr(J) <= Arr(J + G) Then

C = False

Else

Tmp = Arr(J)

Arr(J) = Arr(J + G)

Arr(J + G) = Tmp

End If

J = J - 1

Loop Until Not (J >= 0 And C)

I = I + 1

Loop Until Not I <= N

G = G \ 2

Loop Until Not G > 0

End Sub
Программный код формы Form1:

__________

Dim Arr() As Double

Dim arTime(100) As Double

Dim FRST

Dim p As Long

Private Sub Command1_Click()

Command3.Enabled = True

Text1.Text = ""

For I = 0 To 5000 Step 50
p = 5000 - I

ReDim Arr(p)

For J = 0 To p

Randomize

Arr(J) = Rnd(10) * 1000

Next J

c1 = Timer

If Option1.Value = True Then Call ShellSort(Arr, p) Else Call Binar(Arr, p)

c2 = Timer

tt = c2 - c1

arTime(I / 50) = tt

Text1.Text = Text1.Text & p & " - " & tt & Chr(13) & Chr(10)

Next I

End Sub
Private Sub Command2_Click()

End

End Sub
Private Sub Command3_Click()

Max = arTime(0)

For I = 1 To 100

If arTime(I) > Max Then Max = arTime(I)

Next

picG.Cls

Lgran = -50

Rgran = 5050

YY = Max + 0.1

XX = -0.05

picG.Scale (Lgran, YY)-(Rgran, XX)


picG.Line (Lgran, 0)-(Rgran, 0)

picG.Line (0, YY)-(0, XX)
picG.Line (0, YY)-(-20, YY - 0.01)

picG.Line (0, YY)-(20, YY - 0.01)
picG.Line (Rgran, 0)-(Rgran - 40, 0.01)

picG.Line (Rgran, 0)-(Rgran - 40, -0.01)
For I = 0 To 5000 Step 250

picG.Line (I, 0)-(I, -(YY - XX) * 0.008)

picG.CurrentX = I + 5

picG.CurrentY = -(YY - XX) * 0.012

picG.Print I

Next
For I = 1 To 50

II = I * 0.1

picG.Line (0, II)-(5, II)

picG.CurrentX = 6

picG.CurrentY = II

picG.Print II

Next
For J = 0 To 99

lin = arTime(100 - J)

lin2 = arTime(100 - J - 1)

picG.Line (J * 50, lin)-((J + 1) * 50, lin)

picG.Line ((J + 1) * 50, lin)-((J + 1) * 50, lin2)

Next

End Sub
Private Sub MnuFileExit_Click()

End

End Sub
Private Sub MnuFileLook_rez_Click()

Load Dialog3

Dialog3.Show

End Sub
Private Sub MnuFileSave_rez_Click()

Open App.Path & "\log.txt" For Output As #1

Print #1, "Ðåçóëüòàòû ñîðòèðîâêè" & Chr(13) & Chr(10) & "(êîë-âî ýëåìåíòîâ - âðåìÿ)" & Chr(13) & Chr(10) & Text1.Text

Close #1

End Sub

Список использованной литературы:
1. Мастер – Самоучитель по Visual Basic 6.0 AlexSoft 1997-2001 г.

2. Информатика. Высшая школа. Острейковский В. А. 2000 г.

3. www.informatic.ugatu.ic.ru – официальный сайт кафедры информатики УГАТУ, отдел дистанционной помощи студентам по написанию курсовых работ.
Содержание:





Скачать файл (225.6 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации