Циклы с параметром

Операторы повтора

End Sub

End Select

End Sub

End Select

Вариант 2. Здесь Выражение имеет вещественный тип, а в Диапазоне значений используются операции отношения:

Private Sub Command1_Click()

Select Case b * b - 4 * a * c 'Вещественный тип

Case Is < 0 'Используется операция отношения >

Print "Уравнение не имеет корней"

Case Is = 0

x = -b / (2 * a)

Print "Уравнение имеет один корень"; x

Case Else

X1 = (-b + Sqr(d)) / (2 * a)

X2 = (-b - Sqr(d)) / (2 * a)

Print "Уравнение имеет два корня "; X1, X2

 

Циклические конструкции обеспечивают многократное выполнение одной и той же последовательности операторов для различных значений, входящих в них переменных.

Многократно выполняемые последовательности операторов называют циклами, а изменяющиеся в цикле переменные – переменными цикла.

Алгоритм циклической структуры должен содержать:

1. Подготовку цикла – задание начальных значений переменных цикла перед первым его выполнением;

2. Тело цикла – операторы, которые выполняются при различных значениях переменных цикла;

3. Изменение значений переменных цикла перед его новым повторением;

4. Управление циклом – проверку условия окончания цикла или перехода на начало тела цикла.

В VB для этой цели существуют два вида элементарных циклических структур:

- циклы с параметром;

- циклы с условием.

Если количество повторов тела цикла заранее известно, то обычно используют так называемые циклы с параметром. Схематично такой цикл может быть изображен следующим образом:

В языке VB циклы с параметром реализуются с помощью оператора For, который имеет следующий формат:

For Счетчик:=S1 To S2 [Step Шаг] Тело цикла Next [Счетчик]

где

Счетчик – параметр цикла порядкового типа;

S1 и S2 – выражения, определяющие начальное и конечное значение параметра цикла;

Шаг – шаг изменения значения счетчика;

Тело цикла – многократно выполняемые операторы.

Шаг может быть как положительным, так и отрицательным числом. Если Шаг равен единице, то конструкция Step Шаг может быть опущена. Если Шаг отрицателен, то начальное значение, естественно, должно быть больше конечного.

Цикл повторяется пока значение параметра цикла лежит в интервале [S1,S2], причем эти выражения S1 и S2 вычисляются только один раз в начале цикла. Необходимо, чтобы параметр цикла, начальное и конечное значения были одного типа.

В начале выполнения цикла значение Счетчик становится равным S1. При каждом проходе переменная Счетчик увеличивается на 1 или на величину Шаг. Если значение Счетчика становится больше конечного значения S2, то цикл завершается, после чего выполняются следующие за циклом операторы.

Примеры конструкций операторов цикла с параметром:

For i = 1 To 10 Print i * 100 Next i
For L = 100 To 5 Step -0.5 x = y * L Next
For i = 1 To 5 For j = 10 To 20 Print i + j Next j Next i

 

Из тела цикла с параметром можно выйти до окончания цикла с помощью оператора Exit For.

Пример 1. Напечатать 10 чисел ряда Фибоначчи (каждое последующее число равно сумме двух предыдущих), начиная с 11 числа.

Private Sub Command1_Click() Dim f1 As Integer, f2 As Integer Dim i As Byte f1 = 1: f2 = 1 For i = 1 To 20 If i > 10 Then Print f1 f2 = f1 + f2 f1 = f2 - f1 Next i End Sub

Пример 2. Вычислить сумму конечного ряда .

Private Sub Command1_Click()

n=Val(Text1.Text)

s=0

'Организация цикла по числу членов последовательности

For k=1 To n

'Вычисление очередного члена последовательности

y=(k+0.3)/(3*k*k+5)

s=s+y 'Вычисление суммы ряда

Next k

Text2.Text=Str(s) 'Вывод результирующей суммы

End;

Элемент управления Slider

Иногда для ввода данных удобно использовать элемент управления Slider (ползунок, движок), который позволяет вводить числовые данные путем перемещения указателя ползунка.

Свойства элемента управления Slider

Свойство Назначение
Value Хранится введенное посредством бегунка значение
Min Max Свойства задают диапазон значений ползунка (по умолчанию min=0, max =10)

Пример 3. Вычислить произведение

 

Private Sub Command1_Click() 'Ввод n и m с помощью движка n = Slider1.Value m = Slider2.Value p = 1 For i = 1 To n For j = 1 To m p = p * i / (1 + j ^ 2) Next j Next i Text1.Text = Str(p) End Sub   Private Sub Command2_Click() End 'Выход из приложения End Sub

Пример 3.Протабулировать функцию sin(x) на отрезке [–π, π] с шагом 0,1.

Private Sub Command1_Click() Const pi = 3.1415926 Dim n As Integer Dim h As Single Dim x As Single,y As Single Dim sa As Str,sf As String 'Переменная 'sa используется для формирования строки значений x, 'а переменная sf - для формирования строки значений y h = Val(Text1.Text) 'Ввод шага n = Int(2 * pi / h) + 1 'Количество точек x = -pi ‘Начальное значение x sa = "": sf = "" 'Инициализация sa и sf For i = 1 To n y = Sin(x)
'Формирование строки вывода значений x по формату sa = sa + Format(x, "0.000") + Chr(13)+Chr(10). 'Формирование строки вывода значений y по формату sf = sf + Format(y, "0.000")+ Chr(13) + Chr(10) x = x + h 'Новое значение x Nexti Text2.Text = sa 'Вывод значений x Text3.Text = sf 'Вывод значений y End Sub Private Sub Command2_Click() End End Sub

При проектировании данного проекта необходимо для элементов управления TextBox, предназначенных для вывода, установить следующие свойства:

Multiline = True, Scrollbars=Vertical.