Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Використання ЭОМ (лабы 1-4).docx
Скачиваний:
0
Добавлен:
12.11.2019
Размер:
344.67 Кб
Скачать

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

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

Вариант

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

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

Нечетные

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