Инструкция Select Case

 

Синтаксис

Select Case <выражение для проверки> Case <список 1>

<блок операторов 1>

Case <список 2>

<блок операторов 2>

………..

Case Else

<блок операторов п>

End Select

Параметр выражение для проверки — любое числовое или строковое выра­жение, в зависимости от значения которого выполняется соответствующий блок операторов. Параметры список 1, список 2 и т. д. — это списки вы­ражений, записанных в следующих формах:

выражение [, выражение. . . ], например Case 1, 3, 5, 7, 9;

Case a, b, с, d

выражение То выражение, например:Case 5 То 13; Case a To d

Is операция отношения, например:

Case Is<20; Case Is <>a В списках могут быть использованы различные формы записи, например:

Case 2, 5, 8 То 15. 18, 25 То 30, Is >50

 

 

Sub testsub1()

Dim sngналог As Single, intпараметр, sngсумма

intпараметр = Val(InputBox("введите целое число:"))

sngсумма = Val(InputBox("введите число:"))

Select Case intпараметр

Case 0

sngналог = sngсумма * 0

Case 1

sngналог = sngсумма * 0.05

Case 2

sngналог = sngсумма * 0.1

Case 3

sngналог = sngсумма * 0.15

Case 4

sngналог = sngсумма * 0.2

Case Else

sngналог = sngсумма * 0

End Select

MsgBox "sngналог=" & sngналог

End Sub

В этом примере осуществляется выбор ставки налога (0; 0,05; 0,10; 0,15; 0,20) в зависимости от значения выражения intпараметр. Предусмотрен также вариант

выбора, когда значения выражения intпараметр не совпадают ни с одним выражением в предложениях Case.

 

Инструкция Go to

Существует еще одна инструкция безусловного перехода Go to, которая в общем виде записывается так:

Go to Метка.

Метка это идентификатор с двоеточием, стоящий перед инструкцией, которая должна быть выполнена после инструкции Go to.

Пример 1 написать программу вычисления , если введен правильный пароль.

Sub pparol()

Dim parol, x, y

finish:

parol = (InputBox("введите пароль"))

If parol <> "nataly" Then 'nataly правильный пароль

MsgBox "неверный пароль, доступ запрещен"

GoTo finish

End If

x = Int(Rnd * 10 + 1): y = x ^ 0.5

MsgBox "x=" & x & "y=" & y

End Sub

 

Sub pr42()

'Ввести три любых числа, сумму двух чисел поделить на третье, сделать проверку, что в знаменателе число <>0.

Dim x, y, sum, z

x = Val(InputBox("введите x:"))

y = Val(InputBox("введите y:"))

1: z = Val(InputBox("введите z:"))

If z <> 0 Then

sum = (x + y) / z

ElseIf z = 0 Then

MsgBox "введен ноль"

GoTo 1

End If

MsgBox "sum=" & sum

End Sub

Лекция 3

 

Циклы

Циклы предназначены для многократного выполнения группы инструкций. В VBA для организаций циклов используются инструкции For…next, While…Wend, Do …Loop и For Each… Next.

Инструкция For…next

Эта инструкция повторяет выполнение группы инструкций указанное число раз.

Синтаксис инструкции For…next:

For Счетчик = Начало To Конец [Step Шаг]

[Инструкции]

[Exit For]

[Инструкции]

Next[Счетчик]

 

Синтаксис инструкции содержит For…next элементы, представленные в табл. 1.

 

Таблица Элементы синтаксиса инструкции For…next

Элемент Описание  
Счетчик Обязательный элемент. Числовая переменная (за исключением типа Boolean), используемая в качестве счетчика цикла. Эта переменная не может быть элементом массива
Начало Обязательный элемент — начальное значение переменной Счетчик
Конец Обязательный элемент конечное значение переменной Счетчик
Шаг Необязательный элемент — представляет собой значение, на которое изменяется счетчик при каждом выполнении тела цикла. По умолчанию шаг равен единице
Инструкции Необязательный элемент — одна или несколько инструкций. составляющих тело цикла

Аргумент Шаг может быть как положительным, так и отрицательным. Значение этого аргумента определяет выполнение цикла в соответствии с правилами, приведенными в табл. 2.

 

Таблица 2. Выполнение цикла в зависимости от значения аргумента Шаг

Значение Условие
Положительное или 0 Отрицательное Счетчик<= Конец Счетчик>= Конец

 

После выполнения всех инструкций цикла значение элемента Шаг добавляется к текущему значению переменной Счетчик. После этого инструкции цикла либо выполняются еще раз, либо цикл завершается (если значение счетчика сравниваетcя со значением элемента конец) и выполнение программы продолжается с инструкции, следующей за инструкцией Next.

Пример цикла For…Next

Подсчитать сумму четных чисел в диапазоне от 0 до 10 включительно.

Sub p1()

Dim i As Integer, sum As Integer

For i = 0 To 10 Step 2

sum = sum + i

Next i

MsgBox "sum=" & sum

End Sub

 

Подсчитать произведение четных чисел в диапазоне от 2 до 10 включительно.

 

Sub p2()

Dim i As Integer, pr As Integer

pr = 1

For i = 2 To 10 Step 2

pr = pr * i

Next i

MsgBox "pr=" & pr

End Sub

 

Допускается организация вложенных циклов For..Next. При этом счетчик каждого цикла должен иметь уникальное имя.

Пример вложенных циклов: создать таблицу умножения.

Sub p3()

Dim i, j As Integer

Dim a(2 To 9, 1 To 10), str_a

For i = 2 To 9

For j = 1 To 10

a(i, j) = i & "x" & j & "=" & (i * j)

str_a = str_a & " " & a(i, j) & " "

Next j, i

MsgBox str_a

End Sub

 

 

Инструкция Do…Loop

Инструкция Do…Loop имеет два варианта синтаксиса: в первом варианте условие проверяется в начале цикла, во втором условие проверяется после выполнения инструкций тела цикла.

При использовании ключевого слова While цикл будет выполняться, пока условие имеет значение True, со словом Until - пока условие не примет значение True.

 

Первый вариант синтаксиса инструкции Do…Loop:

Do [{While | Until} Условие]

[Инструкции]

[Exit Do]

[Инструкции]

loop

Пример. Даны два положительных целых числа найти их наибольший общий делитель (например 45 и 27 нод=9)

Sub nod()

Dim a, b, r, nod

a = Val(InputBox("введите a:"))

b = Val(InputBox("введите b:"))

Do While (a Mod b) <> 0

r = a Mod b

a = b

b = r

Loop

nod = b 'nod – наибольший общий делитель

MsgBox "a=" & a & " " & "b=" & b & Chr(10) & Chr(13) & _

"nod=" & nod

End Sub

Пример. Определение простого числа. Например 11 mod 2=1,

11 mod 3=2, 11 mod 4=2, 11 mod 5=1, 11 mod 6=5, 11 mod 7=4,

11 mod 8=3, 11 mod 9=2, 11 mod 10=1, 11 mod 11=0, 11 простое число.

Sub prostoe()

Dim n, d, r

n = Int(Rnd * 100) + 1

d = 2

Do While n Mod d <> 0

r = n Mod d

d = d + 1

Loop

If d = n Then

MsgBox "n простое число" & " " & "n=" & n

Else

MsgBox "n – непростое число" & " " & "n=" & n

End If

End Sub

Второй вариант синтаксиса инструкций Do… Loop

Do

[Инструкции]

[Exit Do]

[Инструкции]

Loop [{While | Until} Условие]

 

Пример. Определение простого числа.

Sub prostoe1()

Dim n, d, r

n = Int(Rnd * 100) + 1

d = 2

Do

r = n Mod d

d = d + 1

Loop While n Mod d <> 0

If d = n Then

MsgBox "n простое число " & "n=" & n

Else

MsgBox "n не простое число" & " " & "n=" & n

End If

End Sub

 

 

 

Таблица 3, Элементы синтаксиса инструкции Do Loop

 

Элемент Описание
Условие Необязательный элемент. Представляет числовое выражение или строковое выражение, которое имеет значение True или False. Если условие имеет значение Null, то оно рассматривается как значение False.
Инструкции Одна или несколько инструкций, выполнение которых повторяется до тех пор, пока условие имеет значение True или пока оно не приобретет значение True.

 

 

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

 

 

Лекция 4

Массивы

 

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

Одномерный массив можно представить как строку или столбец переменных, а двумерный – как таблицу или матрицу, в которой переменные расположены в m строках и n столбцах.

Определение массивов. Массивы в столбцах должны быть определены в операторе Dim.

Различают статические и динамические массивы.

 








Дата добавления: 2016-05-11; просмотров: 979;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.044 сек.