Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по информатике.docx
Скачиваний:
20
Добавлен:
14.04.2015
Размер:
325.87 Кб
Скачать

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

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

Select CaseТестируемое выражение

CaseУсловие выбора 1

Блок операторов 1

CaseУсловие выбора 2

Блок операторов 2

……………

CaseУсловие выбораn

Блок операторов n

Case Else

Блок операторов

End Select

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

Задача. Вычислить размер комиссионных в зависимости от объема продаж. Процент комиссионных приведен в табл. 17.

Таблица 17

Начисление комиссионных

Объем продаж, тыс. руб.

Комиссионные, %

От 0 до 9999

8

От 10000 до 39999

10

40000 и более

14

Программный код

Option Explicit

Sub PR6()

Dim opr As Double, prem As Double

opr = Val(InputBox("Введите объем продаж"))

Select Case opr

Case 0 To 9999

prem = 0.08 * opr

Case 10000 To 39999

prem = 0.1 * opr

Case Is >= 40000

prem = 0.14 * opr

End Select

MsgBox ("Комиссионные=" & prem)

End Sub

Слово Is, используемое в программе, является ключевым словомVBA, обозначающим тестируемое выражение в оператореCase.

В операторе Caseдопустимо использовать составные условия, подобно тому, как это делается в условном операторе.

Пример

Case5, 6, 9to10, 13, 14,Is>=16

В этом операторе проверяется, принадлежит ли тестируемое выражение отрезку от 9 до 10, или равняется одному из значений: 5, 6, 13, 14, или оно не меньше 16.

Оператор цикла с предусловием While – Wend

Оператор цикла While – Wendиспользуется для организации цикла с неизвестным заранее числом повторений тела цикла. Общий вид циклаWhile – Wend выглядит следующим образом:

WhileУсловие

Блок операторов

Wend

Цикл While – Wendобеспечивает многократное выполнение блока операторов, пока условие принимает значениеTrue(истина).

Задача 1. Вычислить и вывести значения функцииY приX, изменяющимся от –10 до 10 с шагом 2.

.

Программный код

Option Explicit

Sub PR9()

Dim X As Integer, Y As Double

X = –10

While X <= 10

If X <> 2 Then

Y = 1 / (X – 2) + X

MsgBox ("Y=" & Y)

Else

MsgBox("Функция не определена")

End If

X = X + 2

Wend

End Sub

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

Программный код

Option Explicit

Sub PR10()

Dim N As Integer, I As Integer, S As Double

N = Val(InputBox("Введите N"))

I = 2

S = 0

While I <= N

S = S + I

I = I + 2

Wend

MsgBox (S)

EndSub

Задача 3. Вкладчик положил на счет 1000 рублей. Через сколько дней вклад достигнет 20000 рублей, если начисляемый процент 0,6 % в день.

Программный код

Option Explicit

Sub PR11()

Dim V As Double, Pr As Double, Kol As Integer

V=Val(InputBox("Введите начальный взнос"))

Kol = 0

While V <= 20000

Pr = V * 0.6 / 100

V = V + Pr

Kol = Kol + 1

Wend

MsgBox ("20000 руб. вклад достигнет за " & Kol & " дней")

End Sub