- •Лабораторный практикум
- •5 Часть
- •Visual Basic. Основы программирования
- •Дмитров 2012
- •Содержание
- •Предисловие
- •Массивы данных
- •Статические массивы
- •Динамические массивы
- •Массивы объектов
- •Создание и использование вызываемых процедур и функций
- •ПроцедурыSub
- •Функции
- •Рекурсивные процедуры и функции
- •Лабораторно-практические работы лабораторно-практическая работа № 1
- •Лабораторно-практическая работа № 2
- •Лабораторно-практическая работа № 3
- •Лабораторно-практическая работа № 4
- •Лабораторно-практическая работа № 5
- •Лабораторно-практическая работа № 6
- •Лабораторно-практическая работа № 7
- •Лабораторно-практическая работа № 8
- •Лабораторно-практическая работа № 9
- •1 Часть
- •2 Часть
- •Лабораторно-практическая работа № 10
- •Лабораторно-практическая работа № 11
- •1 Часть
- •2 Часть
- •Задания для самостоятельного выполнения
Лабораторно-практическая работа № 4
Тема: Массивы объектов.
Цель: Получить навыки использования массива объектов
Порядок выполнения
Установите на форме следующие объекты и измените им свойства:
-
Объект
Свойство
Значение
Свойство
Значение
Командная кнопка
Name
Cmd
Caption
Нажми
Массив меток
Index
1
Caption
Точка, точка
NameLabel1
Index
2
Caption
Два крючочка
Index
3
Caption
Носик, ротик
Index
4
Caption
Оборотик
Index
5
Caption
Ручки
Index
6
Caption
Ножки
Index
7
Caption
Огуречик
Index
8
Caption
Вот и вышел человечек
Массив фигур
Index
0
Глаз
Shape1
Index
1
Глаз
Index
2
Нос
Index
3
Рот
Index
4
Голова
Index
5
Рука
Index
6
рука
Index
7
Нога
Index
8
Нога
Index
9
Туловище
Линии
Name
Line1
Брови
Name
Line2
Таймер
Name
Timer1
Приведите свою форму в соответствие с образцом
В разделе общих объявлений набрать
Dim k As Integer
В окне кода процедуры обработки события Loadдля объектаFormнабрать:
'количество щелчков по кнопке
k = 0
В окне кода процедуры обработки события Clickдля объектаCmdнабрать:
k = k + 1
If k < 9 Then
Label1(k).Visible = True
If k = 1 Then Shape1(0).Visible = True : Shape1(1).Visible = True
If k = 2 Then Line1.Visible = True : Line2.Visible = True
If k = 3 Then Shape1(2).Visible = True : Shape1(3).Visible = True
If k = 4 Then Shape1(4).Visible = True
If k = 5 Then Shape1(5).Visible = True : Shape1(6).Visible = True
If k = 6 Then Shape1(7).Visible = True : Shape1(8).Visible = True
If k = 7 Then Shape1(9).Visible = True
If k = 8 Then MsgBox "Здравствуй, дружок", , "Привет"
Else
MsgBox "До свидания, дружок", , "Я ушел"
Timer1.Interval = 1
End If
В окне кода процедуры обработки события Timerдля объектаTimer1набрать:
'движение человечка по "частям"
For i = 0 To 9
Shape1(i).Left = Shape1(i).Left + 50
Next i
If Shape1(1).Left > 9000 Then End
Проверьте работу программы
Измените программу так, чтобы «брови» двигались вместе с «человечком»
Лабораторно-практическая работа № 5
Тема: Массивы объектов.
Цель: Закрепить навыки использования массива объектов
Постановка задачи: разработать приложение, реализующую принцип игры в «Пятнашки»
Порядок выполнения
Установите на форме следующие объекты и измените им свойства:
-
Объект
Свойство
Значение
Командная кнопка
Name
CmdGame
Caption
Игра
Массив командных кнопок
Name
Cmd
Index
От 0 до 8
Font
Размер 18 полужирный
Caption
(отсутствует)
Таймер
Name
Timer1
В разделе общих объявлений набрать:
Dim KN(8, 2) 'для координат кнопок
В окне кода процедуры обработки события Loadдля объектаFormнабрать
'установим размеры и заголовки кнопок
For I = 0 To 8
cmd(I).Height = 1000
cmd(I).Width = 1000
cmd(I).Caption = I
Next I
cmd(0).Caption = ""
c = 0
'взаимное положение кнопок
For I = 0 To 8 Step 3
cmd(I).Left = 1000: cmd(I).Top = 1000 + c * 1000
cmd(I + 1).Left = 2000: cmd(I + 1).Top = 1000 + c * 1000
cmd(I + 2).Left = 3000: cmd(I + 2).Top = 1000 + c * 1000
c = c + 1
Next I
'запомним координаты упорядоченных кнопок
For I = 0 To 8
KN(I, 1) = cmd(I).Left
KN(I, 2) = cmd(I).Top
Next I
В окне кода процедуры обработки события Clickдля объектаCmdнабрать
'координаты "пустышки"
x0 = cmd(0).Left
y0 = cmd(0).Top
'координаты выбранной кнопки
x = cmd(Index).Left
y = cmd(Index).Top
If x0 = x And Abs(y - y0) = 1000 Then
'соседи по столбцу
cmd(0).Move x, y
cmd(Index).Move x0, y0
End If
If y0 = y And Abs(x - x0) = 1000 Then
'соседи по строке
cmd(0).Move x, y
cmd(Index).Move x0, y0
End If
В окне кода процедуры обработки события Clickдля объектаCmdGameнабрать
'перемешаем кнопки
Randomize Timer
For I = 1 To 20
K = Int(Rnd * 9)
cmd_Click (K)
Next I
' включим таймер
Timer1.Interval = 1
В окне кода процедуры обработки события Timerдля объектаTimer1набрать
For I = 0 To 8
If KN(I, 1) <> cmd(I).Left Then Exit Sub
If KN(I, 2) <> cmd(I).Top Then Exit Sub
Next I
MsgBox "Вы справились!", , "Поздравляю"
Timer1.Interval = 0
Проверьте работу программы
Измените стиль у кнопок на графический и добавьте в начало программы Timer1_Timer
f = Int(Rnd * 9)
cmd(f).BackColor = QBColor(Int(Rnd * 16))
Проверьте работу программы
Измените программу, увеличив количество кнопок ( 4 х 4 )
Проверьте работу программы
Измените программу так, чтобы упорядочивание выполнять по цвету кнопок, для этого:
уберите нумерацию кнопок (Captionотсутствует)
заблокируйте первые две строки в программе Timer1_Timer
установите различный цвет фона для каждой кнопки
Результат показать преподавателю.