|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лабораторные работы по Visual Basic1Предлагаю коллегам несколько лабораторных работ по реализации учебных проектов в среде Visual Basic: — лабораторная работа № 1. Программа “Приветствие”; — лабораторная работа № 2. Программа “Вычисление с переключателями”; — лабораторная работа № 3. Программа “Перевод значения массы”; — лабораторная работа № 4: · программа “Алгоритм Евклида”;· программа “Бинарный алгоритм”;— лабораторная работа № 5. Программа “Решение квадратных уравнений”. Лабораторная работа № 1. Программа “Приветствие”Задание: разработать проект, в
котором на экран выводятся различные
приветствия в зависимости от введенного времени.
Время вводится в виде числа. Договоримся, что
утро длится с 8 до 12 часов, день — с 12 до 17 часов,
вечер — с 7 Рис. 1 Рис. 2 Указания по выполнению 1. Изменить заголовок формы (на панели свойств изменить значение свойства Captionформы на Приветствие). 2. Разместить на форме две надписи, текстовое поле и три кнопки (см. рис. 1). Значения свойств объектов установить в соответствии с таблицей:
3. В первой строке программного кода в разделе General Declarations записать оператор Option Explicit. Данный оператор контролирует использование только объявленных переменных, что позволяет избежать многих ошибок. 4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход” на завершение программы: Private Sub CmdВыход_Click() End End Sub 5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Показать” на появление приветствия (в зависимости от введенного времени): Private Sub CmdПоказать_Click() If Val(Txt1.Text) >= 8 And Val(Txt1.Text) < 12 Then Label2.Caption = "Доброе утро!" If Val(Txt1.Text) >= 12 And Val(Txt1.Text) < 17 Then Label2.Caption = "Добрый день!" If Val(Txt1.Text) >= 17 And Val(Txt1.Text) < 23 Then Label2.Caption = "Добрый вечер!" If Val(Txt1.Text) >= 0 And Val(Txt1.Text) < 8 Or Val(Txt1.Text) >= 23 And Val(Txt1.Text) <= 24 Then Label2.Caption = "Доброй ночи" If Val(Txt1.Text) > 24 Then Label2.Caption = "Введенное число выходит за рамки интервала [0:24]" End Sub 6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Очистить” на: 1) очистку текстового поля; 2) удаление текста приветствия; 3) перевод курсора в текстовое поле (метод SetFocus) — см. рис. 3. Соответствующая процедура имеет вид: Private Sub CmdОчистить_Click() Txt1.Text = "" Label2.Caption = "" Txt1.SetFocus End Sub Рис. 3 Задание для самостоятельной работы Разработайте проект, в котором компьютер исполняет роль электронной няньки, заботящейся о здоровье школьника. В нем вводится температура воздуха на улице. В зависимости от введенного значения выводятся сообщения “Можешь идти в школу. Желаю успехов!” или “Занятия в школе отменяются!”. Принять, что дети могут посещать школу при температуре воздуха не ниже минус 25°С. Для ввода значения температуры использовать сообщение: “Посмотри на термометр и укажи, какая сейчас температура воздуха”. 2. Лабораторная работа № 2.
|
Объект |
Свойство |
Значение |
Frame (Рамка) |
Name Caption Font |
Frame1 Операция Tahoma, 10 |
HScrollBar (Горизонтальная полоса прокрутки) |
Name Max
Min Value |
HScroll1 200 (максимальное значение) 1 (минимальное значение) 1 (начальное значение) |
HScrollBar (Горизонтальная полоса прокрутки) |
Name Max Min Value |
HScroll2 200 1 1 |
Label (Надпись) |
Name Caption Font |
Label1 “” (“пустое” значение) Tahoma, 12 |
Label (Надпись) |
Name Caption Font |
Label2 “” Tahoma, 12 |
Label (Надпись) |
Name Caption Font |
Label3 “” Tahoma, 12, Жирный |
Label (Надпись) |
Name Caption Font |
Label4 Результат: Tahoma, 12, Жирный |
CommandButton (Кнопка) |
Name Caption |
CmdВыход Выход |
Все переключатели
располагаются в рамке Frame1 |
||
OptionButton (Переключатель) |
Name Caption Font |
OptСложение Сложение Tahoma, 12, Жирный |
OptionButton (Переключатель) |
Name Caption Font |
OptВычитание Вычитание Tahoma, 12, Жирный |
OptionButton (Переключатель) |
Name Caption Font |
OptУмножение Умножение Tahoma, 12, Жирный |
3. Включить проверку переменных (Option Explicit).
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход” на завершение программы (cм. лабораторную работу № 1).
5. Запрограммировать процедуру обработки события “Перемещение бегунка (изменение) полосы прокрутки” (для каждой полосы). Соответствующий программный код для полосы прокрутки HScroll1:
Private Sub HScroll1_Change()
Label1.Caption = HScroll1.Value
End Sub
6. Для каждого переключателя запрограммировать процедуру обработки события “Щелчок на переключателе” (его выбор). При выборе того или иного переключателя производится одна из операций над числами: сложение, вычитание или умножение. Например, программный код для переключателя с надписью Сложение имеет вид:
Private Sub OptСложение_Click()
OptСложение.Value = True
Label3.Caption = Val(Label1.Caption) +
Val(Label2.Caption)
End Sub
Задание для самостоятельной работы
Разработать проект, в котором для заданного числа из определенного диапазона вычисляется квадрат или куб этого числа.
Лабораторная работа № 3.
Программа “Перевод значения массы”
Задание: разработать проект для перерасчета значения массы в граммах в значения в фунтах, пудах, унциях, драхмах или гранах (1 фунт = 454 г, 1 пуд = 16 380 г, 1 унция = 28,35 г, 1 драхма = 1,772 г, 1 гран = 0,0648 г). Выбор новой единицы измерения проводится с помощью элементов управления OptionButton (Переключатель) — см. рис. 5.
Рис. 5
Указания по выполнению
1. Изменить заголовок формы на Перевод значения массы.
2. Разместить на форме необходимые объекты. Значения свойств объектов установить в соответствии с таблицей:
Объект |
Свойство |
Значение |
Label (Надпись) |
Name Caption Font |
Label1 Масса в граммах Tahoma, 12 |
Label (Надпись) |
Name Caption Font |
Label2 Масса в новых единицах: Tahoma, 12 |
TextBox (Текстовое поле) |
Name Text
Font |
Txt1 “” (“пустое” значение) Tahoma, 12 |
TextBox (Текстовое поле) |
Name Text Font |
Txt2 “” Tahoma, 12 |
CommandButton (Кнопка) |
Name Caption |
CmdВыход Выход |
CommandButton (Кнопка) |
Name Caption |
CmdОчистить Очистить |
Frame (Рамка) |
Name Caption
Font |
Frame1 Выберите новую единицу Tahoma, 10 |
Все переключатели располагаются в рамке Frame1 |
||
OptionButton (Переключатель) |
Name Caption Font |
OptФунт Фунт Tahoma, 12 |
OptionButton (Переключатель) |
Name Caption Font |
OptПуд Пуд Tahoma, 12 |
OptionButton (Переключатель) |
Name Caption Font |
OptУнция Унция Tahoma, 12 |
OptionButton (Переключатель) |
Name Caption Font |
OptДрахма Драхма Tahoma, 12 |
OptionButton (Переключатель) |
Name Caption Font |
OptГран Гран Tahoma, 12 |
3. Включить проверку переменных.
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход” на завершение программы.
5. Для каждого переключателя запрограммировать процедуру обработки события “Щелчок на переключателе” (его выбор). Как указано в задании, при выборе того или иного переключателя должны рассчитывать и выводиться соответствующие значения массы. Например, программный код для переключателя с надписью “Фунт” имеет вид:
Private Sub OptФунт_Click()
OptФунт.Value = True
Txt2.Text = Format(Val(Txt1.Text)/454,
"##0.0##")End Sub
6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Очистить”:
Private Sub CmdОчистить_Click()
Txt1.Text = ""
Txt2.Text = ""
Txt1.SetFocus
OptФунт.Value = False
OptПуд.Value = False
OptУнция.Value = False
OptДрахма.Value = False
OptГран.Value = False
End Sub
Задание для самостоятельной работы
Разработать проект для перераcчета значения расстояния в сантиметрах в значения в дюймах, фунтах, ярдах или милях (1 дюйм = 2,54 см, 1 фут = 0,3048 м, 1 ярд = 91,44 см, 1 миля = 1,609 км).
Лабораторная работа № 4
1. Программа “Алгоритм Евклида”
Задание: разработать проект для определения наибольшего общего делителя (НОД) двух натуральных чисел с использованием алгоритма Евклида. Проект в работе показан на рис. 6.
Рис. 6
Указания по выполнению
1. Изменить заголовок формы на Алгоритм Евклида.
2. Разместить на форме необходимые объекты. Значения свойств объектов установить в соответствии с таблицей (вверху).
3. Включить проверку переменных.
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход”.
5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Рассчитать”:
Private Sub CmdРассчитать_Click()
Dim m, n As Integer
m = Val(Txt1.Text)
n = Val(Txt2.Text)
Do While m <> n
If m > n Then m = m - n
Else n = n - m
End If
Loop
Txt3.Enabled = True
Txt3.Text = m
End Sub
6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Очистить”.
Private Sub CmdОчистить_Click()
Txt1.Text = ""
Txt2.Text = ""
Txt3.Text = ""
Txt3.Enabled = False
Txt1.SetFocus
End Sub
2. Программа “Бинарный алгоритм”
Задание: разработать проект для определения наибольшего общего делителя (НОД) двух натуральных чисел с использованием так называемого “бинарного алгоритма” (“Информатика” № 3/2009). Проект в работе показан на рис. 7 на с. 35.
Указания по выполнению
1. Изменить заголовок формы на Бинарный алгоритм.
2. Разместить на форме необходимые объекты. Значения свойств объектов установить в соответствии с таблицей, приведенной в предыдущей работе.
3. Включить проверку переменных.
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход”.
5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Рассчитать”:
Private Sub CmdРассчитать_Click()
Dim m, n, r, s, k As Integer
m = Val(Txt1.Text)
n = Val(Txt2.Text)
Do While m <> n
r = 0
s = 0
Do While m Mod 2 = 0
m = Int(m/2)
r = r + 1
Loop
Do While n Mod 2 = 0
n = Int(n/2)
s = s + 1
Loop
If r <= s Then
k = r
Else
k = s
End If
Do While m > n
m = m - n
Loop
Do While n > m
n = n - m
Loop
Loop 'While m <> n
Txt3.Enabled = True
Txt3.Text = 2 ^ k * m
End Sub
6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Очистить”.
Лабораторная работа № 5.
Программа “Решение квадратных уравнений”
Задание: разработать проект для решения квадратных уравнений вида ах2 + bх + с = 0 (при а ? 0) — см. рис. 8.
Рис. 8
При вводе исходных данных форма должна иметь вид, показанный на рис. 9 (надпись “Корни уравнения” и текстовые поля для вывода значений корней уравнения не видны).
Рис. 9
В случае отсутствия корней должно выводиться соответствующее сообщение (см. рис. 10).
Рис. 10
Указания по выполнению
1. Изменить заголовок формы.
2. Разместить на форме необходимые объекты и установить соответствующие значения их свойств.
3. Включить проверку переменных.
4. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Выход”.
5. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Вычислить”:
Private Sub CmdВычислить_Click()
Dim D As Single
D = Val(Txt2.Text) ^ 2 - 4 *
Val(Txt1.Text) * Val(Txt3.Text)
If D < 0 Then
MsgBox "Уравнение не имеет корней",
vbOKOnly + vbInformation, "Проверка"
Else
Lbl5.Visible = True
Txt4.Visible = True
Txt5.Visible = True
Txt4.Text = Format((-Val(Txt2.Text) +
Sqr(D))/(2 * Val(Txt1.Text)),
"##0.0##")
Txt5.Text = Format((-Val(Txt2.Text) -
Sqr(D))/(2 * Val(Txt1.Text)),
"##0.0##")
End If
End Sub
6. Запрограммировать процедуру обработки события “Щелчок на кнопке с надписью Новое”.
Задание для самостоятельной работы
Изменить проект так, чтобы при вводе
значения
а = 0 выводилось соответствующее сообщение.
1
При изменении имен некоторых элементов управления и их свойств представленные работы могут быть использованы и при изучении среды Borland Delphi. — Прим. ред.