Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания к ЛР5 (Программирование на VB).pdf
Скачиваний:
8
Добавлен:
15.03.2016
Размер:
399.21 Кб
Скачать

Методические указания к выполнению лабораторной работы по программированию в VB

менной i и нажать кнопку ОК. Аналогичным образом добавить переменные intSum, intPar.

2. Выполнить команду Debug, Step Into (Отладка, Пошаговый ввод) или нажмите кнопку F8. Далее, в открывшемся окне программы выбрать один из пунктов меню. После того как высветится строка программного кода, нажимать кнопку F8 (или выполнять команду Debug, Step Into (Отладка, Пошаговый ввод)) для перехода к следующему оператору и наблюдать, как изменяются значения переменных.

Самостоятельные упражнения

1. Модифицируйте программный код программы задания 5.1 , заменив оператор цикла DO.While...Loop на оператор DO.Until...Loop.

Контрольные вопросы

1.Какая команда используется для создания меню?

2.Чем отличается цикл For...Next от циклов Do...Loop и. While...Wend?

3.Что означает конструкция txtTextBox(i).Text'.' Чем она отличается от конструкции txtTextBoxl.Text?

4.Для чего используется сочетание функции Trim(Str(i))? Что произойдет если отказаться от функции Trim()?

5.Для чего используется сочетание функции UCase(Left(x.Name, 3)) Что произойдет, если отказаться от функции UCaseQ?

6.Для чего используется режим отладки?

Задание 6.2 (дополнительное)

Создайте форму, а на ней создайте меню "Циклы", в котором будет 3 пункта: &For... Next, &Do... Loop, &While... Wend. При выборе пунктов меню генерируются события, которым соответствуют подпрограмм ы-обработчики событий.

Событие For... Next

Данному событию соответствует подпрограмма, которая посчитает сумму всех натуральных чисел от начального значения (НачЗначения) до конечного значения. (КонечЗначения), которые задаются пользователем через текстовые окна.

Событие Do... Loop

Данному событию соответствует подпрограмма, которая вычисляет сумму всех квадратов четных чисел в диапазоне or начального значения (НачЗначения) до конечного значения (КонечЗначения), которые задаются пользователем через текстовые окна.

Событие While...Wend

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

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

Вычисление среднего значения осуществляется при нажатии кнопки Среднее число.

Усков Ю.И.

29

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

6.2. Циклы для графических методов

Задание 6.2

Необходимо запрограммировать вычерчивание нестандартной шахматной доски размером 12x12 клеток. Клетки шахматной доски должны быть поочерёдно раскрашены двумя разными цветами.

Идея алгоритма такая. Строки и столбцы клеточного поля нумеруются от 1 до 12. Поле доски просматривается слева направо и сверху вниз. Если сумма номеров строки и столбца для очередной клетки нечетная, клетка закрашивается одним цветом, а если эта сумма чётная, то клетка закрашивается другим цветом. Как нельзя

лучше для этой цели подходят вложенные циклы. Вид программы показан на рис 6.2.

Технология выполнения задания.

Рис.6.2.

Этап 1. Разработка программы.

1.Создайте новый проект File, New Project (Файл, Новый проект).

2.Задайте свойству Caption формы значение Шахмат-

ная доска. Задайте размеры формы 5400x4500 (Свойства Height =5400, Width =4500)

3.Поместите кнопку в нижней части формы. Задайте свойству Name кнопки значение cmdStart, свойству Caption присвойте значение Пуск.

4.Перейдем к созданию программного кода. Вставьте следующий фрагмент в сек-

цию (General)(Declarations):

Option Explicit

Const Num1 = 12, Num2 = 12, DX = 350, DY = 350 Const X0 = 100,Y0 = 100

5.Запрограммируем событие Click для элемента cmdStart (кнопка Пуск)

Private Sub cmdStart_Click() Dim xi1, xi2, yj1, yj2 As Long Dim i, j As Integer

Dim lngColor As Long For i = 0 To Num1 -1 xi1 = X0 + i * DX

xi2 = X0 + (i +1)* DX ' For j = 0 To Num2-1 yj1 = Y0+j*DY

yj2 = Y0 + (j + 1)*DY

If i+j-Int((i+j)/2)*2 = 0 Then lngColor = vbGreen

Else

IngColor = vbRed

Усков Ю.И.

30

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

End If

Line(xi1,yj1)-(xi2, yj2), lngColor, BF Next j

Next i End Sub

Закрашенный прямоугольник рисуется с помощью метода Line... BF. В программе на каждом шаге внутреннего цикла производится проверка на чётность суммы i + j. Для этой цели используется арифметическая операция

i + j - Int((i + j)/2)*2 — остаток от деления

(в данном случае остаток от деления i + j на 2). Если остаток равен 0, число четное, если нет, то нечетное.

6.Сохраните проект и форму под именем z5-2.

7.Результат работы программы будет виден после запуска программы и нажатия кнопки.

Этап 2. Освоение режима отладки

1.Добавьте в отладочное окно переменные, з значениями которых мы хотим наблюдать в режиме отладки. Дня этого выполните команду Debug, Add Watch (Отладка, Добавить наблюдателя). В открывшемся окне в поле Выражение ввести имя переменной i и нажать кнопку ОК. Аналогичным образом добавить перемен-

ную j, lngCol.

2.Поставиь курсор на строку программного кода:

For i = 0 To Num1 -1

и выполнить команду Debug, Run To Cursor (Отладка, Выполнить до курсора). Далее в открывшемся окне программы нажать кнопку ПУСК. После того как высветится строка программного кода, нажимать кнопку F8 (или выполнить команду Debug, Step Into (Отладка, Пошаговый ввод)) для перехода к следующему оператору и наблюдать, как изменяются значения переменных.

3. Повторить предыдущий пункт два раза.

Самостоятельные упражнения

1.Измените программу задания 6.2 так, чтобы она рисовала шахматную доску других размеров, например, 8x8 клеток.

2.Модифицируйте программный код программы задания 6.2 , заменив оператор цикла For...Next на оператор DO...Loop.

Контрольные вопросы

1.Что означает ключевое слово Const при описании величин Numl, Num2 и т.д.

2.Почему в программе мы используем цикл For...Next? Можно ли использовать другие циклы?

3.Как можно по-другому в задании 6.2 проверять на чётность сумму i+j . Попробуйте использовать операцию Mod, например,

 

 

(i+j) Mod 2 вместо i + j - Int((i + j) / 2) * 2.

 

5.

Что изменится если значение BF флага метода LINE изменить на В?

6.

Какие

рекомендации нарушены в данной программе

при описании пере-

 

 

 

 

 

 

Усков Ю.И.

31

каф. МиИТ,

2015

 

 

Методические указания к выполнению лабораторной работы по программированию в VB

менных?

7. Чем "Константа" отличается от переменных в смысле изменения значений по ходу выполнения программы?

Задание 6.3 (дополнительное)

Создать программу, которая вычисляет среднее арифметическое вводимых чисел, которое равно отношению суммы всех введенных чисел к количеству введенных чисел. Для этого программа должна иметь средство для ввода чисел (например, диалоговое Окно ввода InputBox). Так как оператор ввода чисел должен находиться в цикле, условием выхода из цикла является нулевое значение введенною числа. Полученное среднее число выводится в элемент-надпись.

Усков Ю.И.

32

каф. МиИТ,

2015