Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторные_VB

.pdf
Скачиваний:
26
Добавлен:
22.03.2016
Размер:
3.48 Mб
Скачать

MsgBox bv x = 1

bv = (x < 1) And (x >= -2) MsgBox bv

End Sub

 

 

 

 

 

Таблица 6

 

 

 

Текстовые операторы и функции

 

 

 

 

Функция/

Назначение

 

Синтаксис. Использование

оператор

 

 

 

 

 

 

 

 

&

Слияние (соединение)

<строка>&<строка>...&<строка>

оператор

строк

 

 

 

 

 

 

 

 

UCase

Изменение

регистра

UCase(<строка>)

 

букв строки на верхний

 

 

 

 

 

LCase

Изменение

регистра

LCase(<строка>)

 

букв строки на нижний

 

 

 

 

InStr

Поиск одной строки в

InStr([<начало>, ]<строка1>, <строка2>[,

 

другой с начала строки

 

<тип сравнения>]). Функция возвращает

 

 

 

 

 

позицию первого вхождения строки2 в

 

 

 

 

 

строку 1 (при отсутствии вхождения

 

 

 

 

 

возвращается 0);<начало> определяет

 

 

 

 

 

начальную позицию поиска в строке1;

 

 

 

 

 

<тип сравнения> = 1 указывает на

 

 

 

 

 

посимвольное сравнение

 

 

 

 

Left

Возврат

определенного

Left(<строка>,<количество символов>)

 

числа

символов

с

 

 

начала строки

 

 

 

 

 

 

 

 

91

Right

Возврат определенного

Right(<строка>,<количество символов>)

 

 

числа символов с конца

 

 

 

 

 

 

 

 

 

строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mid

Возврат определенного

Mid(<строка>, <начало>[, длина])

 

 

 

числа

символов

с

или для замены части строки другой

 

определенного места в

строкой:

 

 

 

 

 

 

 

 

строке

 

 

 

Mid(<строка1>, <начало>[,

длина])

=

 

 

 

 

 

<строка2>.

 

 

 

 

 

 

 

 

 

 

 

Число замененных символов не должно

 

 

 

 

 

приводить

к

превышению длины

 

 

 

 

 

исходной строки.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

LTrim

Удаление

пробелов

в

LTrim(<строка>)

 

 

 

 

 

 

начале строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RTrim

Удаление

пробелов

в

RTrim(<строка>)

 

 

 

 

 

 

конце строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Trim

Удаление

пробелов

с

Trim(<строка>)

 

 

 

 

 

 

обеих сторон строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Len

Определение

длины

Len(<строка>)

 

 

 

 

 

 

строки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Chr

ПреобразованиеASCII-

Chr(<кодСимвола>).

Коды

0–31

 

кода в символ

 

 

соответствуют управляющим

символам

 

 

 

 

 

ASCII.

Например, Chr(10)

возвращает

 

 

 

 

 

символ перевода строки, а Chr(13) –

 

 

 

 

 

возврат каретки

 

 

 

 

 

 

 

 

 

 

Asc

Преобразование

 

 

Asc(<символ>). Возвращаемые значения

 

символа в ASCII-код

 

лежат

в

диапазоне

0–255

для

 

 

 

 

 

однобайтовых символьных наборов

 

 

 

 

 

 

StrConv

Изменение регистра

в

StrConv(<строка>, <условие>). Параметр

 

строке символов

 

 

<условие>

задает

тип

обращения:

1

 

 

 

 

 

 

 

 

 

 

 

 

 

92

преобразование всех символов к верхнему регистру, 2 – преобразование всех символов к нижнему регистру, 3 –

преобразование к верхнему регистру первых символов строк и т.д.

Пример использования текстовых операторов и функций:

Вернуть из строки предпоследний символ в верхнем регистре.

Sub primer() Dim s As String

' Объявление переменной s для хранения строк s = "Пример строки"

'Запись в переменную s строки s = Mid(s, Len(s) - 1, 1)

'Определение номера позиции предпоследнего символа в строке

'Len(s)-1, извлечение одного этого символа из строки Mid(…),

'запись извлеченного символа в переменную s

s = UCase(s)

'Преобразование к верхнему регистру символа в переменной s

'и перезапись его в переменную

MsgBox s

' Отображение значения переменной s End Sub

93

Функция MsgBox

MsgBox выводит на экран диалоговое окно, содержащее сообщение,

устанавливает режим ожидания нажатия кнопки, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.

MsgBox(<Сообщение>[, <Кнопки>] [, <Заголовок>] [, Файл помощи, Раздел помощи])

Синтаксис функции MsgBox содержит именованные аргументы (табл. 7).

 

 

 

 

 

Таблица 7

 

Аргументы функции MsgBox

 

 

 

 

 

 

 

 

Аргумент

 

 

Описание

 

 

 

 

 

 

 

Сообщение

Строковое

выражение, отображаемое

как

сообщение в

 

диалоговом окне

 

 

 

 

 

Кнопки

Числовое выражение (код), которое указывает число и тип

 

отображаемых кнопок, тип используемого значка, основную

 

кнопку и модальность окна сообщения. Значение по умолчанию

 

этого аргумента равняется 0. Вместо чисел можно использовать

 

ключевые слова: н.п., vbOKOnly (или код 0) – окно будет

 

содержать только кнопку OK, vbOKCancel (или код 1) – окно

 

будет содержать кнопки OK и Cancel.

 

 

 

 

Заголовок

Строковое выражение, отображаемое в строке заголовка

 

диалогового

окна.

Если аргумент

опущен,

в заголовок

 

помещается имя приложения

 

 

 

 

Файл

Строковое выражение, определяющее имя файла справки,

помощи

содержащего справочные сведения о данном диалоговом окне

 

 

Раздел

Числовое выражение, определяющее номер соответствующего

помощи

раздела справочной системы

 

 

 

 

 

 

 

 

Пример использования функции MsgBox:

Sub primer()

94

Dim i As Integer

'Объявление переменной i для хранения кода нажатой кнопки i=Msgbox ("Программа началась",vbOKCancel,"Моя программа")

'Отображение окна-сообщения с текстом "Программа началась",

'кнопками OK и Cancel, заголовком "Моя программа".

'Считывание кода нажатой пользователем кнопки (OK или

'Cancel) в переменную i

MsgBox "Код нажатой кнопки = " & i,,"Моя программа"

'Отображение окна-сообщения с кодом нажатой кнопки

'из переменной i и заголовком "Моя программа"

End Sub

или

Функция InputBox

InputBox выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста или нажатия кнопки, а затем возвращает значение типа String, содержащее текст, введенный в поле. Синтаксис функции InputBox:

InputBox(<Пояснение>[, <Заголовок>] [, <Текст>] [, <Горизонталь>] [, <Вертикаль>] [, Файл помощи, Раздел помощи])

содержит именованные аргументы (табл. 8).

Таблица 8

Аргументы функции InputBox

95

Аргумент

Описание

 

 

Пояснение

Строка, отображаемая как сообщение в диалоговом окне

 

 

Заголовок

Строка, отображаемая в строке заголовка диалогового окна.

 

Если этот аргумент опущен, в строку заголовка помещается

 

имя приложения

 

 

Текст

Строка, отображаемая в поле ввода как используемое по

 

умолчанию, если пользователь не введет другую строку. Если

 

этот аргумент опущен, поле ввода изображается пустым

 

 

Горизонталь

Число, задающее расстояние по горизонтали между левой

 

границей диалогового окна и левым краем экрана (в твипах; 1

 

дюйм = 1440 твипов). Если этот аргумент опущен, диалоговое

 

окно выравнивается по центру экрана по горизонтали

 

 

Вертикаль

Число, задающее расстояние по вертикали между верхней

 

границей диалогового окна и верхним краем экрана (в твипах).

 

Если этот аргумент опущен, диалоговое окно помещается по

 

вертикали примерно на одну треть высоты экрана

 

 

Если пользователь нажимает кнопку OK или клавишу ENTER, функция

InputBox возвращает содержимое поля ввода. Если пользователь нажимает кнопку Отмена, функция возвратит пустую строку ("").

Пример использования функции InputBox:

Sub primer()

Dim perem As String

'Объявление переменной perem для хранения строк perem=InputBox("Как Вас зовут?", "Мой диалог")

'Отображение диалогового окна с полем ввода, текстом

'приглашения "Как Вас зовут?" и заголовком "Мой диалог".

'Запись в переменную perem текста введенного пользователем

'в поле после нажатия кнопки OK

MsgBox "Вас зовут " & perem,,"Мой диалог"

96

'Отображение окна-сообщения с введенным текстом

'из переменной perem и заголовком "Мой диалог" End sub

Пример

Написать программу для выполнения следующей последовательности

действий.

1) ввод …

… c использованием функции Inputbox текстовой строки (переменная S), … с использованием функции Inputbox двух чисел (переменные A и B),

… непосредственно в тексте программы двух чисел (переменные C и D);

2) определение значения выражения (F) и вывод его на экран;

 

 

 

 

 

 

 

 

 

остаток от деления (D /(3 sin(A )))

 

1 целая часть от деления

 

 

 

 

 

C

 

 

 

 

 

100 0,01 B

 

 

F

 

 

 

 

 

 

 

 

 

 

 

 

 

arctg( B)

3) построение и вывод на экран строки, состоящей из указанных частей:

а) строка S без второго и последнего символа; б) строка 1, первый символ,

которой заменяется символом с ASCII-кодом, равным 125; в) строка – текущее значение секунд.

97

Решение

Программа:

Sub My_programm() ' Объявление процедуры My_programm Dim S As String

'Объявление (создание) переменной по имени S

'для хранения строк

Dim A As Double

'Объявление (создание) переменной по имени A

'для хранения вещественных чисел

Dim B As Double

Dim C As Double

Dim D As Double

Dim F As Double

Dim S1 As String

Dim S2 As String

Dim S3 As String

S = InputBox("Введите строку (S):")

'Отображение диалогового окна с полем ввода, текстом

'приглашения " Введите строку (S):".

'Запись в переменную S текста введенного пользователем

'в поле после нажатия кнопки OK

98

A= InputBox("Введите число (А):")

B= InputBox("Введите число (B):")

C= 3.5 ' Запись в переменную C значения 3.5

D= 6

F = D Mod 3 + Sin(A * Excel.WorksheetFunction.Pi / 180)

'Запись в переменную F значения рассчитанного выражения.

'При вычислении Sin используется перевод в радианы

F = F \ (100 + 0.01 * (B ^ C))

'Расчет нового значения переменной F на основе предыдущего

F = 1 - F

F = F / (Atn(Sqr(B))) MsgBox "F = " & F

'Вывод в окне сообщения значения переменной F.

'Сообщение формируется соединением строки "F = "

'со значением переменной F

S1 = Mid(S, 1, 1) & Mid(S, 3, Len(S)-3)

'Запись в переменную S1 построенной строки

S2 = S1

Mid(S2, 1, 1) = Chr(125)

'Замена первого символа строки в переменной S2

'на символ, возвращаемый функцией Chr по его коду (125)

S3 =Second(Now)

'Запись в переменную S3 текущего значения секунд

S = S1 & S2 & S3

'Соединение строк-значений переменных S1, S2 и S3

'в переменную S

MsgBox "S_new = " & S

' Вывод в окне сообщения значения переменной S.

End Sub ' Завершение объявления процедуры My_programm

99

Результаты работы программы:

Задание

Написать программу для выполнения следующей последовательности

действий.

1) ввод …

c использованием функции Inputbox текстовой строки (переменная S),

с использованием функции Inputbox двух чисел (переменные A и B),

непосредственно в тексте программы двух чисел (переменные C и D);

100