- •Введение в «Программирование в среде Visual Basic»
- •Теоретическая часть
- •Последовательность выполнения работы
- •Лабораторная работа № 1
- •Основные положения
- •InputBox(сообщение[, заголовок окна])
- •Задание к лабораторной работе
- •Лабораторная работа №2
- •Основные положения
- •If условие Then операторы [Else операторы ]
- •If условие1 Then
- •Элементы формы.
- •Задание к лабораторной работе
- •Лабораторная работа № 3
- •Теоретические сведения
- •Задание к лабораторной работе
- •Лабораторная работа № 4
- •Теоретические сведения
Задание к лабораторной работе
Составить программу решения сложной функции (см. варианты задания, колонки "Функция" и "Условие") для различных значений аргумента при следующих условиях:
Вариант |
Реализация разветвляющей структуры |
Вывод результата |
Нечетные |
оператор IF... блочный |
в окно Отладки |
Четные |
оператор Select... |
в диалоговое окно |
(Результаты вывести отформатированными).
Лабораторная работа № 3
Тема "Программа циклической структуры"
Цель: приобретение навыков создания алгоритмов и программ циклической структуры и изучение необходимых для этого операторов и функций .
Теоретические сведения
Изучить:
Общий вид записи и назначение операторов:
цикла с известным числом повторений (For...Next) ;
для создания итерационных циклов (Do...Loop, While...Wend);
вывода по заданному формату (функция Format),
элементами формы: Флажок (CheckBox); Рамка (Frame),
свойства MultiLine, ScrolBars, TablIndex (новые свойства приведены ниже в таблице, выделены жирным шрифтом).
Оператор цикла с известным числом повторений For...Next повторяет выполнение группы операторов указанное число раз:
For счетчик = начало To конец [Step шаг]
блок операторов
[Exit For]
[блок операторов]
Next [счетчик]
где счетчик - числовая переменная, используемая в качестве счетчика цикла;
начало - начальное значение переменной счетчик;
конец - конечное значение переменной счетчик;
шаг - значение, на которое изменяется счетчик при каждом выполнении тела цикла, если это значение не задано, по умолчанию шаг равен единице, может быть как положительным, так и отрицательным;
блок операторов - одтн или несколько операторов между For и Next, которые выполняются указанное число раз.
Оператор итерационный Do...Loop повторяет выполнение набора инструкций, пока условие имеет значение истина:
Do [{While | Until} условие]
блок операторов
[Exit Do]
[блок операторов]
Loop[{While | Until} условие]
где условие - числовое выражение или строковое выражение, которое имеет значение True или False, предворяется одним из ключевых слов While или Until;
блок операторов - один или несколько операторов, выполнение которых повторяется, пока условие имеет значение True или пока оно не приобретет значение True.
Альтернативный способ выхода из цикла предоставляет инструкции Exit For и Exit For. В любых местах цикла может размещаться любое число таких инструкций.
Пример:
Написать программу решения задачи лаб.№2 при изменении х в диапазоне [0;2] с шагом 0,2.
1.Ввод значений границ диапазона и шага реализовать с помощью функции ввода. Найти минимальное и максимальное значение функции. Результаты поместить в окно Immediat.
Используя конструкцию For...Next |
Используя конструкцию Do...Loop |
Public Sub lab3() Dim x As Single, xn As Single, xk As Single, dx As Single Dim y As Single , min As Single, max As Single newline = Chr(13) 'ввод данных xn = Val(InputBox("Хначальное")) xk = Val(InputBox("Хконечное")) dx = Val(InputBox("шаг")) 'начальные значения мин и мах min = 10000: max = 0 'вывод заголовка таблицы Debug.Print " X " & " " & " Y " 'начало цикла For x = xn To xk Step dx Select Case x Case Is < -1 y = a * x Case -1 To 1 y = Abs(x) Case Else y = x ^ b End Select 'нахождение мин и мах If min > y Then min = y If max < y Then max = y Debug.Print Format(x, " 0.0") & _ " " & Format(y, " #.##") Next 'вывод мин и мах Debug.Print "min=" + Str(min) + newline + "max=" + Str(max) End Sub
|
‘ х = xn ‘ Do While x ≤ xk
‘ x = x + dx ‘ Loop |
2.Создать форму для решения вышеприведенной задачи. Результат табулирования вывести в многостроковое поле (TextBox). Предусмотреть возможность кроме вывода результатов нахождение и вывод в окно сообщения (функция MsgBox) минимального и максимального значений функции. Эту возможность задать с помощью флажков (CheckBox), размещенных в рамке (Frame).
Таблица элементов создаваемой формы и их свойств:
Элемент |
Свойства |
Описание |
Значение |
|
Form1 |
Name |
|
Form1 |
|
|
Caption |
|
Лабораторная … |
|
Label1 |
Name |
|
Lbl1 |
|
|
Caption |
|
Левая граница |
|
Label2 |
Name |
|
Lbl2 |
|
|
Caption |
|
Правая граница |
|
Label3 |
Name |
|
Lbl3 |
|
|
Caption |
|
Шаг |
|
Label4 |
Name |
|
Lbl4 |
|
|
Caption |
|
Задайте границы диапазона Х |
|
TextBox1 |
Name |
|
Txt1 |
|
|
MultiLine |
Поле содержит более одной строки |
True |
|
|
ScrollBars |
Наличие в поле линий прокруток |
2 3 |
|
TextBox2 |
Name |
|
Txt2 |
|
|
Text |
Значение левой границы |
0 |
|
|
TablIndex |
Порядок выбора объектов |
1 |
|
TextBox3 |
Name |
|
Txt3 |
|
|
Text |
Значение правой границы |
2 |
|
|
TablIndex |
|
2 |
|
TextBox4 |
Name |
|
Txt4 |
|
|
Text |
Значение шага |
0,2 |
|
|
TablIndex |
|
3 |
|
CommandButton1 |
Name |
|
Cmd1 |
|
|
Caption |
|
Вычислить |
|
CommandButton2 |
Name |
|
Cmd2 |
|
|
Caption |
|
Сброс |
|
CommandButton3 |
Name |
|
Cmd3 |
|
|
Caption |
|
Выход |
|
Frame |
Name |
|
Frm1 |
|
|
Caption |
|
Вывод: |
|
CheckBox1 |
Name |
|
Chk1 |
|
|
Value |
Есть флажок |
1 |
|
|
Caption |
|
Числа |
|
CheckBox2 |
Name |
|
Chk2 |
|
|
Value |
Флажок серый |
2 |
|
|
Caption |
|
Мин и мах |
|
Процедур нажатия кнопки Вывод (процедуры для кнопок Сброс и Выход см. Лаб.№3):
Private Sub Cmd1_Click()
Dim x As Single, y As Single
Dim min As Single, max As Single
Dim newline As String, space As String
newline = Chr(13) + Chr(10)
'начальные значения мин и мах
min = 1000: max =0
'вывод заголовка таблицы
Txt4.Text = " X " & " " & " Y " & newline
'начало цикла
x = Val(Txt1.Text)
Do While x <= Val(Txt2.Text)
Select Case x
Case Is < -1
y = a * x
Case -1 To 1
y = Abs(x)
Case Else
y = x ^ b
End Select
'нахождение мин и мах
If min > y Then min = y
If max < y Then max = y
'Вывод значений X и Y на форму
If Chk1.Value = 1 Then
Txt4.Text = Txt4.Text & Format(x, " 0.0") & " " & Format(y, " 0.00") & newline
End If
'изменение Х
x = x + Val(Txt3.Text)
Loop
'вывод мин и мах в окно сообщения
If Chk2.Value = 1 Then
MsgBox "min=" & Format(min, "0.00") & newline & _
"max=" & Format(max, "#.##"), vbOKCancel + vbInformation, "Сообщение"
End If
End Sub