«Программирование в среде Visual Basic»

Вид материалаЛабораторная работа
Задание к лабораторной работе
Лабораторная работа № 3
Теоретические сведения
For счетчик = начало To конец [Step шаг]
Do [{While | Until} условие]
Пример: Написать программу решения задачи лаб.№2 при изменении х
Используя конструкцию
Левая граница
Правая граница
Задайте границы диапазона Х
Подобный материал:
1   2   3   4   5   6   7   8

Задание к лабораторной работе


Составить программу решения сложной функции (см. варианты задания, колонки "Функция" и "Условие") для различных значений аргумента при следующих условиях:

Вариант

Реализация разветвляющей структуры

Вывод результата

Нечетные

оператор 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