70980

Исследование методов сортировки массивов

Курсовая

Информатика, кибернетика и программирование

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

Русский

2014-10-30

175.5 KB

16 чел.

Министерство образования Республики Башкортостан

Уфимский Государственный Авиационный Технический Университет

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

Курсовой проект.

«Исследование методов сортировки массивов»

Выполнил: студент

Факультета АД

гр. Т10 АД-123

Петров А.Н..

Приняла: Рамбургер О.Л.

г. Уфа, 2005г.

Содержание:

1. О рабочей среде Visual Basic.

2.Блок-схемы и описание методов.

2.1.Метод простых вставок.

2.2.Метод пузырька.

3.Описание всех окон программы.

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

5. список литературы
1. О рабочей среде
Visual Basic

Язык программирования BASIC – Beginner's All purpose Symbolic Instruction Code (универсальный символьный программный код для начинающих) был разработан сотрудниками Дартмутского колледжа (США) в 1964 г. Первоначальная его версия включала всего 14 служебных слов и предназначалась для обучения программированию. С тех пор было создано более 100 версий этого языка, реализованных на различных ЭВМ.

Первый персональный компьютер IBM PC имел 16-разрядный BASIC, разработанный корпорацией IBM. Позже его сменил GW-BASIC и QUICK-BASIC, разработанный корпорацией Microsoft. В QUICK-BASIC была убрана нумерация строк и добавлен компилятор, превращающий BASIC-программу в полноценный исполняемый (.exe) файл. Не оставила без внимания язык BASIC и корпорация Borland, разработавшая в 1987 г. интегрированную среду программирования Turbo-Basic.

Интегрированная среда разработки приложений Visual Basic

Visual Basic развился из первоначального языка Basic и в настоящее время содержит несколько сотен команд, функций и ключевых слов, многие из которых связаны непосредственно с графическим интерфейсом пользователя GUI (Graphical User Interface) операционной системы Windows. Используя Visual Basic даже начинающие программисты могут создавать полезные программы, зная лишь несколько ключевых слов. При этом профессиональные программисты имеют все необходимые средства для разработки сложных приложений, функционирующих под управлением Windows.

В 1992 г. корпорацией Microsoft был разработан и выпущен Visual Basic 1.0 - относительно простой язык программирования для Windows 3.1. Затем были выпущены Visual Basic 3.0, 4.0, 5.0 и наконец Visual Basic 6.0. Версии 5.0 и 6.0 отличаются незначительно: в шестой версии улучшено ядро и добавлен ряд новых функций. ПомимоVisual Basic существует еще язык макросов для приложений Microsoft Office (Word, Excel и т.п.). Он называется VBA (Visual Basic for Application). С его помощью можно разрабатывать макрокоманды для автоматизации работы с приложениями Microsoft Office.

Интегрированная среда разработки приложений Microsoft Visual Basic (в дальнейшем изложении Visual Basic), обладая простыми в обращении средствами визуального проектирования, позволяет в полной мере использовать преимущества графической среды

Windows и быстро конструировать эффективные приложения. Помимо Visual Basic существуют и другие языки визуального программирования с аналогичными возможностями: Borland Delphi, Borland C++ Builder.

Visual Basic – один из первых языков, поддерживающих событийно-управляемое программирование (event-driven programming). Этот стиль хорошо согласуется со стандартом графического пользовательского интерфейса. Традиционно программирование ориентировалось на поэтапное описание конкретного процесса. Однако современные компьютерные приложения слишком сложны и данный стиль программирования для них не подходит.

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

Программы, или как принято говорить - приложения, разрабатываемы для Windows, имеют, как правило, стандартный пользовательский интерфейс: окна-формы, на которых располагаются окна для текстов или рисунков, меню, кнопки управления и другие элементы. Каждый из этих объектов обладает определенными свойствами: цвет, размеры, надписи и другие. Кроме этого, каждое конкретное приложение в режиме взаимодействия с пользователем посредством вышеупомянутых объектов, выполняет те или иные действия, приводящие к получению определенного результата. Для получения какого-либо конкретного действия должна быть написана соответствующая команда в тексте программы на языке Visual Basic. Таким образом разработка приложения включает следующие этапы:

- создание интерфейса пользователя с использованием средств визуального программирования, в процессе которого на формах размещаются необходимые объекты из набора стандартных элементов интерфейса Windows;

- установка свойств для формы и размещенных на ней объектов (размеры, цвет, надписи и др.);

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

Разработанная корпорацией Microsoft интегрированная среда разработки приложений Visual Basic объединяет в себе множество функций, позволяющих выполнять визуальное проектирование интерфейса приложения, ввод и редактирование исходного текста программы, компиляцию и отладку приложений.

2.1.Метод простых вставок.

Допустим, что элементы a1,...,ai-1 уже упорядочены, тогда среди оставшихся (ai,...,an) находим минимальный элемент и меняем его местами с i-тым элементом. И т.д. пока массив не будет полностью упорядочен

Блок-схема 1. Метод простых встав

2.2.Метод пузырька.

Последовательно просматриваем числа a1,...,an находим наименьшее i такое, что a i > ai+1. Поменять ai и ai+1 местами, возобновить просмотр с элемента ai+1 и т.д. Тем самым наибольшее число передвинется на последнее место. Следующие просмотры начинать опять сначала, уменьшая на единицу количество просматриваемых элементов. Массив будет упорядочен после просмотра в котором участвовали только первый и второй элементы.

Блок-Схема 2.Метод пузырька

   

.

3.Описание всех окон программы.

Form1.

Form1 главное окно программы. Отсюда запускаются все остальные окна.

Программа данного окна:

Private Sub Isl_b_Click()

Form5.Show

End Sub

Private Sub viv_a_Click()

Form6.Show

Form1.Hide

End Sub

Private Sub Isl_a_Click()

Form4.Show

End Sub

Private Sub Help_a_Click()

Form2.Show

End Sub

Private Sub Help_b_Click()

Form3.Show

End Sub

Private Sub Input_a_Click()

filepath = "1.txt"

Open filepath For Input As #1

Do While Not EOF(1)  

   

For i = 1 To 10

     Line Input #1, current_string     

     A(i) = current_string + vbCrLf

  Next i

  Loop

Close #1

End Sub

Private Sub viv_b_Click()

Form8.Show

Form1.Hide

End Sub

 

Form2.

Form2 содержит справку об авторе.

Form3.

Form3 содержит справку о программе.

Form4.

Form4 содержит визуализацию методов

Private Sub Command1_Click()

Randomize

CommonDialog1.ShowOpen

f = CommonDialog1.FileName

Open f For Output As #1

l = 0

Print #1, "Метод пузырька"

Print #1, ""

For i = 500 To 5000 Step 100

For j = 1 To i

V(j) = Rnd * 200 - 200

Next j

Sk = Timer

For k = 1 To i

For j = i To k + 1 Step -1

If V(j - 1) > V(j) Then

p = V(j - 1)

V(j - 1) = V(j)

V(j) = p

End If

Next j

Next k

Sn = Timer

l = l + 1

U(l) = Sn - Sk

Print #1, "Количество элементов в массиве = ", i

Print #1, "Время сортировки = ", U(l)

Print #1, ""

Next i

l = 0

Print #1, "Метод простых вставок."

Print #1, ""

For i = 500 To 5000 Step 100

For j = 1 To i

G(j) = Rnd * 200 - 200

Next j

Sk = Timer

For k = 2 To i

W = G(k): j = 1

Do While W > G(j)

j = j + 1

Loop

For q = k To j + 1 Step -1

G(q) = G(q - 1)

Next q

G(j) = W

Next k

Sn = Timer

l = l + 1

H(l) = Sn - Sk

Print #1, "Количество элементов в массиве = ", i

Print #1, "Время сортировки = ", H(l)

Print #1, ""

Next i

Close #1

End Sub

Private Sub Command3_Click()

Form4.Hide

Form1.Show

End Sub

Private Sub Command2_Click()

Randomize

m = 0

For i = 500 To 5000 Step 100

For j = 1 To i

V(j) = Rnd * 200 - 200

Next j

Sk = Timer

For k = 1 To i

For j = i To k + 1 Step -1

If V(j - 1) > V(j) Then

p = V(j - 1)

V(j - 1) = V(j)

V(j) = p

End If

Next j

Next k

Sn = Timer

m = m + 1

U(m) = Sn - Sk

T = U(m)

Next i

Picture1.Scale (500, T)-(5000, U(1))

m = 0

For i = 500 To 4900 Step 100

m = m + 1

Picture1.Line (i, U(m))-(i + 100, U(m + 1)), QBColor(5)

Next i

For i = 500 To 5000 Step 100

Picture1.Line (i, 0)-(i, 0.5), QBColor(4)

If i Mod 500 = 0 Then Picture1.Print i

If i = 4900 Then Picture1.Print i

Next i

End Sub

Private Sub Command4_Click()

Randomize

m = 0

For i = 500 To 5000 Step 100

For j = 1 To i

G(j) = Rnd * 200 - 200

Next j

Sk = Timer

For k = 2 To i

W = G(k): j = 1

Do While W > G(j)

j = j + 1

Loop

For q = k To j + 1 Step -1

G(q) = G(q - 1)

Next q

G(j) = W

Next k

Sn = Timer

m = m + 1

H(m) = Sn - Sk

R = H(m)

Next i

Picture1.Scale (500, R)-(5000, H(1))

m = 0

For i = 500 To 4900 Step 100

m = m + 1

Picture1.Line (i, H(m))-(i + 100, H(m + 1)), QBColor(7)

Next i

For i = 500 To 5000 Step 100

Picture1.Line (i, 0)-(i, 0.5), QBColor(6)

If i Mod 500 = 0 Then Picture1.Print i

If i = 4900 Then Picture1.Print i

Next i

End Sub

Form6.

 На данной форме содержиться сортировка методом пузырька.

Порграмма сортировки массива методом пузыпька представленная на Form6:

Private Sub Command1_Click()

Picture1.Cls

For i = 1 To 10

B(i) = A(i)

Next i

For i = 1 To 9

For j = 10 To i + 1 Step -1

If B(j - 1) > B(j) Then

p = B(j - 1)

B(j - 1) = B(j)

B(j) = p

End If

Next j

Next i

For j = 1 To 10

Z(j) = B(11 - j)

Picture1.Print Z(j);

Next j

End Sub

Private Sub Command2_Click()

Form6.Hide

Form1.Show

End Sub

Form8.

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

Порграмма визуализация сортировки массива представленная на Form8:

Private Sub Command1_Click()

Picture1.Cls

Amax = A(1)

For i = 1 To 10

If Amax < A(i) Then Amax = A(i)

Next i

For i = 1 To 10

If Amin > A(i) Then Amin = A(i)

Next i

Picture1.Scale (1, Amax)-(100, Amin)

d = 0

k = 0

For n = 1 To 10

Z(n) = A(11 - n)

k = Z(n)

f = n * 10

Picture1.Line (d, k)-(f, 0), QBColor(n), BF

d = n * 10

Picture2.Print Z(n);

Next n

For l = 1 To 10000 Step 0.001

Next l

For i = 1 To 9

d = 0

k = 0

For j = 10 To i + 1 Step -1

If A(j - 1) > A(j) Then

p = A(j - 1)

A(j - 1) = A(j)

A(j) = p

End If

Next j

 Picture1.Cls

 Picture2.Cls

 For n = 1 To 10

 Z(n) = A(11 - n)

 k = Z(n)

 f = n * 10

 Picture1.Line (d, k)-(f, 0), QBColor(n), BF

 d = n * 10

 Picture2.Print Z(n);

 Next n

For l = 1 To 1000 Step 0.001

Next l

Next i

End Sub

Private Sub Command2_Click()

Form8.Hide

Form1.Show

End Sub

Module.

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

В данном случае в Module описанны два линейных массива:

Public A(1 To 10) As Double, B(1 To 10) As Double

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

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

Сначала надо нажать «ввод данных, с клавиатуры» в открывшемся окне ввести поэлементно каждый элемент массива, т.е. нужно в открывшемся окне набрать только первый элемент массива затем нажать кнопку «ОК», в новом открывшемся окне набрать второй элемент массива и снова нажать кнопку «ОК» и так до тех пор пока не будет введен десятый элемент массива. Затем можно просмотреть упорядоченный массив по возрастанию нажав кнопку «вывод результата, упорядоченный массив» в открывшемся окне нажать «вывод упорядоченного массива по возрастанию» или просмотреть как происходит сортировка визуально, на гистограмме, нажав сначала «вывод результата, гистограмма, гистограмма упорядоченного массива» затем в появившемся окне нажать «для просмотра гистограммы, нажать сюда».

В данной программе можно получить справку об авторе нажав кнопку «справка, автор» затем в появившемся окне нажать «для получения справки об авторе, нажать сюда» или получить справку о программе нажав сначала «справка, о программе», а затем в появившемся окне нажать «для получения справки о программе, нажать сюда».

Также в данной программе можно изменять цвет главного окна. Сначала надо нажать «настройка, цвета», а затем выбрать более понравившейся цвет.

В данной программе происходит исследование двух методов сортировки массива: 1.Метод пузырька. 2.Метод простых вставок. Здесь представлена зависимость количества элементов в массиве от времени сортировки этого массива. Массив заполняется случайными числами через генератор случайных чисел. Данные выводятся на графиках, по каждому методу отдельно. Данную зависимость можно сохранить.

Список литературы.

1. Алиев В.К. Visual Basic - М.:СОЛОН-Р. - 2002 г. - 384 с.

2. Есипов А.С., Паньгина Н.Н., Громада М.И. Информатика. Сборник задач и рещений для общеобразовательных учебных заведений. - СПб.: Наука и Техника, 2001 г. - 368 с.

3. Кузьменко В.Г. Visual Basic 6. Самоучитель. - М.: ООО "Бином-Пресс", 2003г. - 432 с.


 

А также другие работы, которые могут Вас заинтересовать

26405. Зубы — dentes 24.5 KB
  В короткокоронковых зубах обозначают следующие части: а коронку возвышающуюся над десной. Эмаль самая твердая ткань зуба содержит 95 минеральных веществ устойчива к воздействию химических веществ корма и к механическим воздействиям. Под эмалью находится дентин костная ткань зуба с канальцами. Цвет дентина темноватый; б шейка зуба на месте перехода коронки в корень зуба.
26406. Классификация, строение, топография мышц 20.5 KB
  пластинчатые в области туловища шеи прикрепляют грудную конечность к туловищу брюшные стенки; 2. В их составе тонкие и длинные мышечные волокна область туловища и поясов конечностей; 2. В области туловища на поверхности блестящее сухожильное зеркало; 3.
26407. Кожный покров: строение, назначение, классификация производных 20.5 KB
  В общий кожный покров integumentum communis входят кожа cutis и её производные. Эпидермис образует производные кожи является многослойным плоским ороговевающим эпителием выполняет защитную и нейросенсорную функции. Дерма содержит производные эпидермиса выполняет опорную трофическую и иммунологическую функции. Производные кожного покрова: роговые волосы рога мякиши копыто копытце коготь и железистые обычные: потовые сальные; молочные: вымя множественное вымя специфические: пахучие защитные сигнальные параанальные и др.
26408. Концевой мозг (telencephalon) 21.5 KB
  В ней заложены центры НД. Кора гирифицирована и условно делится на доли: затылочные высшие зрительные центры лобные высшие двигательные центры теменные чувствительные центры височные слуховые центры. Под корой белое вещество плаща который образует проводящие пути 3 типов: коммисуральные полушария между собой мозолистое тело ассоциативные центры в 1 полушарии проекционные кора с подкоркой и спинным мозгом.
26409. Круп 20 KB
  Крестцовоподвздошный сустав: тугой капсула вентральная связка дорсальная коротная и длинная крестцовоседалищная связка широкая тазовая. ТБС:: простой многоосный чашеобразный; по краю суставной впадины хрящевая губа над вырезкой впадины поперечная связка впадины помимо капсулы круглая связка у лошадей добавочная связка.
26410. Лёгкие (pulmones, pneumones) 24.5 KB
  На каждом легком различают поверхности: латеральную реберную медиальную средостенную каудовентральную диафрагмальную а также междолевые. На средостенной поверхности заметны вдавления: сердечное аортальное пищеводное и желоб задней полой вены как отпечатки расположенных между легкими соответствующих органов. На правом легком со стороны средостенной поверхности имеется добавочная доля. На средостенной поверхности имеется углубление ворота легкого.
26411. Лимфатическая система 22 KB
  проток правый непарный проток правый и левый трахеальный стволы кишечный ствол чревный ствол у КРС правый и левый поясничные стволы. В неё открывается правый и левый поясничные стволы несущие лимфу с каудальных отрезков туловища и тазовых конечностей. С правой стороны головы шеи грудной конечности лимфа оттекает в непарный правый проток который принимает лимфу из правого трахеального протока и впадает в краниальную полую вену.
26412. Матка uterus 23 KB
  Полость матки каудально переходит в узкий канал шейки открывающейся во влагалище. У КРС матки изогнуты спирально заострены имеют форму бараньего рога. Тело матки снаружи длинное но внутри в большей своей части разделено срединной перегородкой. У свиньи рога матки очень длинные до 140 см извиты наподобие кишечных петель.
26413. Межчелюстное пространство 21.5 KB
  Служит опорой для закрепления мышц языка язычная мышца m. linqualis proprius подъязычноязычная мышца m. hyoglossus сокращаясь она притягивает язык вниз и шилоязычная парная мышца m. Мышца вытягивающая язык в сторону ротовой щели подбородочноязычная мышца m.