- •Содержание
- •Лабораторна робота № 1. Оболонка системи програмування visual basic. Заняття 1
- •1. Запустите Visual Basic и произведите необходимую настройку.
- •2. Задайте различные свойства формы:
- •3. Запустите программу на выполнение.
- •17. Запустите программу на выполнение и проверьте ее работу.
- •20. Сохраните проект на рабочем диске.
- •Лабораторна робота № 1.Этапи розробки windows-додатків в середовищі програмування visual basic (на прикладі створення простого додатку). Заняття 2.
- •1. Постановка задачи
- •3. Напишите программные коды
- •4. Отладьте6 программу
- •Завдання до самостійної роботи № 1 (в,лс,вс).
- •I. Содержательная постановка задачи.
- •II. Математическая постановка задачи.
- •III. Разработка пользовательского интерфейса.
- •Лабораторна робота № 2. Дані в visual basic. Типи даних.
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота № 3. Область видимості змінної.
- •ИмяФормы. ИмяПеременной
- •Лабораторна робота № 4. Арифметичні вырази й вбудовані функції visual basic
- •Лабораторная работа № 5. Введення-виведення даних. Функція inputbox и msgbox. Вікно й функція inputbox.
- •Лабораторна робота №6. Проектування додатків vb6, що містять лінійні алгоритмічні структури
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота № 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 1
- •Завдання на самостійну (в) й практичну роботу (вс, лс)
- •Лабораторна робота 7. Проектування додатків vb6, що містять галужені алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 1. Цикли з лічильником
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №8. Проектування додатків vb6, що містять циклічні алгоритмічні структури. Заняття 2. Цикли з умовою
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №9. Проектування додатків vb6, що містять вкладені циклічні алгоритмічні структури. Заняття 2
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 1.
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 2
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №10. Проектування додатків vb6, у яких дані організовані у вигляді одновимірних масивів. Заняття 3. Сортування елементів масиву. Обмін значеннями.
- •Ilорядок действий
- •Завдання на самостійну роботу(в,вс,лс)
- •Завдання на практичну роботу(вс,лс)
- •Лабораторна робота №11. Проектування додатків vb6, у яких дані організовані у вигляді двовимірних масивів
- •Завдання на самостійну роботу(в, вс,лс)
- •Завдання на практичну роботу (вс,лс)
- •Завдання на самостійну роботу(вс,лс)
- •Лабораторна робота №12. Проектування додатків vb6, у яких дані організовані у вигляді структур. Користувальницький тип даних.
- •VbExclamation, "Столько друзей не бывает"
- •VbExclamation, "Поиск не дал результатов"
- •VbExclamation, "Поиск не дал результатов"
- •Мid(Друзья(j).BirthDay, 4, 2) завдання на самостійну роботу(в,вс,лс)
- •Лабораторна робота №13. Модульне програмування. Заняття 1.
- •Завдання на самостійну (в) та практичну роботу (вс,лс) завдання с13.4
- •Лабораторна робота №13. Модульне програмування. Заняття 2
- •InputВох("Задайте любой вопрос", "????")
- •Завдання на самостійну (в) й практичну роботу (вс,лс)
- •Лабораторна робота № 14. Налагодження програм
- •Лабораторна робота № 15. Обробка символьної інформації.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Лс,Вс).
- •Лабораторна робота № 16. Проектування додатків vb6, у яких дані організовані у вигляді файлів на магнітних носіях.
- •Завдання на самостійну роботу(в,вс,лс)
- •Контрольний опрос на практичному занятті (Вс, Лс)
- •Лабораторна робота № 17. Графіка
Ilорядок действий
1. Расположите на форме 5 кнопок.
2. Значения свойств объектов, которые определяют внешний вид приложения, установите по своему усмотрению.
3. Значения свойств Caption формы и кнопок установите в соответствии с рис.10.7.
4. Установите значения свойств Name формы и кнопок.
5.1. Проанализируйте приведенный ниже программный код, а затем наберите его.
Option Explicit
Dim A(1 To 10) As Integer ' массив
Dim i As Integer, j As Integer
Dim Amax As Integer
Dim imax As Integer
Dim H As Integer
Private Sub cmdФорм_Click()
Randomize Timer
Print "Вихідний масив"
For i = 1 To 10
A(i) = Int(100 * Rnd())
Print A(i);
Next i
End Sub
Private Sub cmdCls_Click()
Form1.Cls
Form1.Caption = " Сортування "
End Sub
Sub Print_Mas()
Print "Відсортований масив:"
For i = 1 To 10
Print A(i);
Next i
End Sub
5.2. Проанализируйте описанный метод сортировки "пузырьком". Добавьте приведенный программный код в проект.
Рис. 10.8 Схема алгоритма “ Метода пузырька".
Рассмотрим суть метода на примере. Пусть надо расставить по убыванию четыре числа:
2 |
10 |
5 |
6 |
Будем просматривать числа слева направо, очередное число будем сравнивать со следующим справа: если следующее число больше очередного, то поменяем их местами. Ниже для наглядности "очередное" число заключено в рамку.
Начинаем с самого левого числа:
2 |
10 |
5 |
6 |
Следующее число больше, значит, меняем их местами:
10 |
2 |
5 |
6 |
Переходим ко второму по счету числу:
10 |
2 |
5 |
6 |
Сравниваем его со следующим, оно больше, значит, меняем их местами:
10 |
5 |
2 |
6 |
Переходим к следующему, третьему, числу:
10 |
5 |
2 |
6 |
Сравниваем его со следующим, четвертым. Следующес больше, значит, меняем их местами:
10 |
5 |
6 |
2 |
На предпоследнем числе надо остановиться, так как если перейдем на последнее число, то его не с чем будет сравнивать — справа чисел нет.
Подведем итог: в результате одного просмотра самое маленькое число оказалась на последнем, своем законном, месте.
Самое большое число тоже находится на своем месте, где и положено быть. Однако это чистая случайность: результат того, что первоначально данное число стояло на втором месте; с любого другого места оно просто передвинулось бы на место левее. А вот самое маленькое число в конце просмотра обязательно окажется на последнем месте.
Повторим все сначала. Первое число сравниваем со вторым:
10 |
5 |
6 |
2 |
Второе не больше первого, поэтому их менять местами не будем, а просто переходим к следующему числу:
10 |
5 |
6 |
2 |
Сравниваем его со следующим; следующее больше предыдущего — значит, меняем их местами:
10 |
6 |
5 |
2 |
Переходим к следующему:
10 |
6 |
5 |
2 |
Сравниваем со следующим — менять не надо. Просмотр опять закончен, так как мы достигли предпоследнего числа. В результате второго просмотра второе по меньшинству число встало свое место — предпоследнее.
Нетрудно догадаться, что при третьем проходе третье по меньшинству число обязательно встанет на третье с конца место. То, что оно у нас встало на "свое" второе место уже при втором проходе, — тоже случайность, обусловленная первоначальным расположением чисел.
Четвертого прохода не требуется, так как если три числа встали на свое место, то четвертое окажется на своем месте автоматически.
Подведем итог: Если имеем массив из N элементов, то надо сделать N-1 проход по массиву от l-го до предпоследнего N-1– го элемента. При каждом проходе надо текущий i-й элемент сравнивать со следующим (i + l)-м элементом, и если текущий элемент меньше следующего, необходимо менять их местами. Наверное, вы поняли, почему метод носит название "пузырька" —наименьший элемент как бы "всплывает" на свое последнее место.
Private Sub CmdБуль_Click()
Form1.Caption = " Сортування "
Form1.Caption = Form1.Caption + " Бульбашка"
For i = 1 To 10
For j = i + 1 To 10
If A(i) < A(j) Then
Call Exchange(i, j)
End If
Next j
Next i
Call Print_Mas
End Sub
Private Sub Exchange(k As Integer, p As Integer)
Dim Вох As Integer
Вох = A(k)
A(k) = A(p)
A(p) = Вох
End Sub
5.3. Проанализируйте описанный "Улучшенный метод пузырька". Добавьте приведенный программный код в проект.
Рис. 10.9 Схема алгоритма "Улучшенного метода пузырька".
Рассмотрим суть метода на примере. Пусть надо расставить по убыванию четыре числа
2 |
10 |
5 |
6 |
Будем просматривать числа слева направо, очередное число будем сравнивать со следующим справа: если следующее число больше очередного, то поменяем их местами. Ниже для наглядности "очередное" число заключено в рамку.
Установили H=0
1-й просмотр. Начинаем с самого левого числа:
2 |
10 |
5 |
6 |
Следующее число больше, значит, меняем их местами:
10 |
2 |
5 |
6 |
Установили H=1 (перемещения были)
Переходим ко второму по счету числу:
10 |
2 |
5 |
6 |
Сравниваем его со следующим, оно больше, значит, меняем их местами:
10 |
5 |
2 |
6 |
Установили H=1
Переходим к следующему, третьему, числу:
10 |
5 |
2 |
6 |
Сравниваем его со следующим, четвертым. Следующее больше, значит, меняем их местами:
10 |
5 |
6 |
2 |
Установили H=1
На предпоследнем числе надо остановиться, так как если перейдем на последнее число, то его не с чем будет сравнивать — справа чисел нет.
Подведем итог: в результате одного просмотра самое маленькое число оказалась на последнем, своем законном, месте.
Проверяем значение H. Оно равно 1, перемещения были и поэтому повторим все сначала.
Установили H=0
2-й просмотр. Первое число сравниваем со вторым:
10 |
5 |
6 |
2 |
Второе не больше первого, поэтому их менять местами не будем, а просто переходим к следующему числу:
10 |
5 |
6 |
2 |
Сравниваем его со следующим; следующее больше предыдущего — значит, меняем их местами:
10 |
6 |
5 |
2 |
Установили H=1
Переходим к следующему:
10 |
6 |
5 |
2 |
Сравниваем со следующим — менять не надо. Просмотр опять закончен, так как мы достигли предпоследнего числа. В результате второго просмотра второе по меньшинству число встало свое место — предпоследнее.
Проверяем значение H. Оно равно 1, перемещения были и поэтому установили H=0
3-й просмотр. При третьем просмотре перемещений нет, т.к. все числа уже на своих местах. Проверяем значение H. Оно равно 0, и поэтому вычисления завершены.
Подведем итог: Если массив имеет “немного” неупорядоченностей, то по сравнению с методом "пузырька" уменьшается число просмотров — как только массив упорядочен, вычисления прекращаются, и холостых просмотров не будет.
Private Sub CmdПол_Буль_Click()
Form1.Caption = " Сортування "
Form1.Caption = Form1.Caption + " Бульбашка поліпшена "
Do
H = 0
For i = 1 To 9
If A(i) < A(i + 1) Then
Call Exchange(i, j)
H = 1
End If
Next i
Loop While H <> 0
Call Print_Mas
End Sub
5.4. Проанализируйте описанный "Метод выбора". Добавьте приведенный программный код в проект.
Рис. 10.10 Схема алгоритма “Метода выбора".
Суть метода состоит в следующем. Пусть надо по-прежнему отсортировать по убыванию массив из 10 элементов. Это можно выполнять за несколько шагов.
1-й шаг. Выполнить просмотр массива с l-го элемента по 10-й, найти наименьший элемент и поменять его местами с 10-м:
-
6
4
2
7
0
8
1
5
3
9
-
6
4
2
7
9
8
1
5
3
0
2-й шаг. Выполнить просмотр массива со 1-го элемента по 9-й (без 10-гo), найти наименьший элемент и поменять его местами с 9-м элементом массива:
-
6
4
2
7
9
8
1
5
3
0
-
6
4
2
7
9
4
3
5
1
0
3-й шаг. Выполнить просмотр массива со 1-го элемента по 8-й (без 9-гo), найти наименьший элемент и поменять его местами с 8-м элементом массива
-
6
4
2
7
9
4
3
5
1
0
-
6
4
5
7
9
4
3
2
1
0
и т.д.
Подведем итог. Должно быть выполнено 9(10-1) просмотров массива; j-й просмотр начинается с j-го элемента массива. Каждый просмотр состоит из двух действий:
найти наименьший элемент среди элементов с номерами j=1, 2,…,i;
поменять местами наибольший элемент с i-м.
Действиe 2 целесообразно оформить в виде отдельной процедуры.
Private Sub CmdВиб_Click()
Print 'Собственно сортировка
For i = 10 To 1 Step -1
Amax = A(i)
For j = 1 To i
If A(j) <= Amax Then
Amax = A(j)
imax = j
End If
Next j
Call Exchange(i, imax)
Next i
Call Print_Mas
End Sub
6. Проверьте правильность работы проекта.
Сохраните проект под именем Лр10_Зад11_Фамилия
