Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ПиОА_1 семестр_1 / ПОСОБИЕ_VB.Net

.pdf
Скачиваний:
658
Добавлен:
06.03.2016
Размер:
3.4 Mб
Скачать

TextBox5.Text = time.TotalSeconds.ToString("0.000000")

'Cортировка Sort 10000000 элементов списка целых числовых данных d.Reset()

d.Start()

a1.Sort()

d.Stop()

time = d.Elapsed

TextBox6.Text = time.TotalSeconds.ToString("0.000000")

'Формирование 10000 элементов массива с и списка a строковых данных

Dim c(10000) As String 'массив

Dim a As New ArrayList(10000) 'список

Dim f As New Random

Dim s As System.Text.StringBuilder

For i As Int32 = 0 To 10000 - 1

s = New System.Text.StringBuilder(5)

For j As Int32 = 1 To 5

s = s.Append(Chr(f.Next(65, 90)))

c(i) = Convert.ToString(s)

a.Add(s.ToString)

Next j

Next

'Сортировка Sort 10000 элементов массива строковых данных d.Reset()

d.Start()

Array.Sort(c)

d.Stop()

time = d.Elapsed

TextBox7.Text = time.TotalSeconds.ToString("0.000000")

'Сортировка Sort 10000 элементов списка строковых данных d.Reset()

d.Start()

a.Sort()

d.Stop()

time = d.Elapsed

TextBox8.Text = time.TotalSeconds.ToString("0.000000")

End Sub

End Class

Второй пункт меню позволяет открыть форму, связанную с исследованием времени сортировки массива методом Sort и пользова-

148

тельской процедурой, реализующей метод быстрой сортировки, quick_sort . Интерфейс формы представлен на рис. 10.16.

Рис. 10.16 Интерфейс второй формы проекта (Form3)

Ниже представлен программный код данной формы:

Public Class Form3

Sub quick_sort(ByVal i_n As Int32, _

ByVal i_k As Int32, ByRef a() As Int32) Dim i, j, k, x, p As Int32

i = i_n : j = i_k : k = (i + j + 1) \ 2 : x = a(k)

Do

While a(i) < x i = i + 1

149

End While While x < a(j)

j = j - 1

End While

If i <= j Then

p = a(i) : a(i) = a(j) : a(j) = p i = i + 1 : j = j - 1

End If

Loop Until i > j

If i_n < j Then quick_sort(i_n, j, a)

If i < i_k Then quick_sort(i, i_k, a)

End Sub

Private Sub Button1_Click(...) Handles Button1.Click Dim d As New Stopwatch()

Dim time As TimeSpan Dim a() As Int32 Dim b() As Int32 Dim n As Int32

n = 500000

While n <= 10000000

TextBox1.Text &= Convert.ToString(n) & _ Chr(13) & Chr(10)

ReDim a(n - 1) ReDim b(n - 1)

'*****Заполнение массива a целыми числами

For i As Int32 = 0 To n - 1 a(i) = i

Next i

'*****Перестановка элементов массива a в обратном порядке

Array.Reverse(a)

'*****Копирование элементов массива a в массив b

Array.Copy(a, b, n)

'*****Снятие времени сортировки массива a методом Sort d.Reset()

d.Start()

Array.Sort(a) 'вызов метода Sort d.Stop()

time = d.Elapsed

'метод TotalSeconds возвращает секунды из формата TimeSpan

TextBox2.Text &= time.TotalSeconds.ToString("0.000000") _ & Chr(13) & Chr(10)

'*****Снятие времени сортировки массива b процедурой quick_sort

150

d.Reset()

d.Start()

quick_sort(0, n - 1, b) 'вызов быстрой сортировки d.Stop()

time = d.Elapsed

TextBox3.Text &= time.TotalSeconds.ToString("0.000000") _ & Chr(13) & Chr(10)

n += 500000

End While End Sub End Class

10.4.Контрольные вопросы и задания

1.Какая команда используется для добавления новых форм в проект?

2.Какой метод используется для того, чтобы можно было открыть нужную форму?

3.Какой метод используется для того, чтобы скрыть форму?

4.Как создать главное меню?

5.Когда следует использовать Module?

6.Что означает оператор Public?

7.Создайте проект (многооконное приложение с пользовательским меню) для обработки двумерных массивов размером n*m:

-вставить после всех строк, содержащих минимальное значение строку 1, 2, 3,….;

-удалить все столбцы, в которых первый элемент четный.

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

Преобразованную матрицу записать в файл.

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

Все пользовательские процедуры и функции, а также описание необходимых глобальных переменных поместите в модуль.

151

8.Создайте проект для визуализации процесса сортировки одномерного массива (не менее двух методов). Метод сортировки выбирается пользователем.

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

Визуализировать пошаговое изменение сортируемого массива с помощью гистограммы;

Представить на графике зависимость времени сортировки от количества элементов в массиве. Использовать массивы с количеством элементов от 500 до 5000 с шагом 50.

Записать в один файл отсортированный массив, в другой – результаты исследования (зависимость времени сортировки от числа элементов).

152

СПИСОК ЛИТЕРАТУРЫ

1.Глушаков С. В., Клевцов А Л.. Visual Basic.NET 2008. М.: ACT, 2008. 160 с.

2.Зиборов В. В. Visual Basic 2010 на примерах. СПб.: БХВ-

Петербург, 2010. 336 c.

3. Л. Пауэрс Microsoft Visual Studio 2008 / Л. Пауэрс, М. Снелл: Пер.

с англ. СПб.: БХВ-Петербург, 2009. 1200 с.

4.Тони Нортрап, Шон Вилдермьюс, Билл Райан. Основы разработки приложений на платформе Microsoft .NET Framework. СПб.: Питер, Русская Редакция, 2007. 864 с.

5.Мэтью А. Стэкер, Стивен Дж. Стэйн, Тони Нортроп. Разработка клиентских Windows-приложений на платформе Microsoft .Net Framework. СПб.: Питер, Русская Редакция, 2008. 624 с.

6.Атли К. Visual Basic. NET для программистов [Электронный ресурс]: Пер. с англ. - М.: ДМК Пресс, 2008. 304 с.

153

Учебное издание

КАРЧЕВСКАЯ Маргарита Петровна РАМБУРГЕР Ольга Леонардовна

ТЕХНОЛОГИЯ ПРОГРАММИРОВАНИЯ НА VB.NET

Редактор Соколова О.А.

Подписано в печать 15.08.2014 Формат 60х84 1/16. Бумага офсетная. Печать плоская.. Гарнитура TimesNew Roman.

Усл. печ. л. 30,3. Усл. кр.-отт. 30,3. Уч.-изд. л. 30,2.

Тираж 100 экз. Заказ № ФГБОУ Уфимский государственный авиационный технический университет

Редакционно-издательский комплекс УГАТУ 450000, Уфа-центр, ул. К. Маркса, 12