Встроенная функция вывода данных MsgBox



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Встроенная функция вывода данных MsgBox



Используется для вывода информации в специальном окне. Данную функцию можно использовать следующим образом:

 

MsgBox Текст[,Кнопки],[Заголовок]

или:

MyVar = MsgBox (Текст[, Кнопки],[ Заголовок])

Текстобязательный параметр, определяющий текст, который будет показан в диалоговом окне. Для перевода выводимого текста на новую строку в параметр можно вставить константу VBScript vbCrLf

КнопкиНеобязательный целочисленный параметр, определяющий набор кнопок и вид значка диалогового окна. Если его опустить или установить равным «0», VBScript покажет в окне единственную кнопку – ОК.

Заголовок– Необязательный параметр, определяющий текст заголовка диалогового окна. Если он не задан, Windows выводит в заголовке название приложения.

Замечание: Если необязательный параметр не задан, VBScript использует значение по умолчанию. Чтобы опустить необязательный параметр, надо оставить его место между двумя запятыми пустым.

Посмотрим, что будет, если опустить необязательные параметры. Вот две программы, иллюстрирующие работу функции MsgBox с минимальным набором параметров:

Программа 1: MsgBox “Hello, World!”

Данная программа выводит в специальном окне строчку “Hello, World!”, а также кнопку ОК.

Программа 2: number = 123,09

MsgBox number

 

Данная программа выводит в специальном окне число 123,09, а также кнопку ОК.

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

В Таблице 3 представлены некоторые константы, сумма которых определят вид «значка», а также наличие кнопки диалогового окна, создаваемого с помощью MsgBox.

Таблица 3 – Перечень констант

Константа Значение Описание
Группа 1   Появляющиеся кнопки
VbOkOnly Кнопка Ok
VbOkCancel Кнопки Ok и Cancel
VbAbortRetryIgnore Кнопки Abort, Retry и Ignore
VbYesNoCancel Кнопки Yes, No и Cancel
   
Группа 2   Появляющийся значок
VbCritical Критический значок
   
Группа 3   Кнопка выбранная по умолчанию
VbDefaultButton2 Вторая кнопка
   
Группа 3   Вывод на экран
VbSystemModal Окно выводится поверх всех открытых окон

 

Полный список параметров доступен в Visual Basic Script Reference.Сумма значений констант может быть введена следующим образом:

VbYesNoCancel+VbCritical+VbDefaultButton2+VbSystemModal

Или 3+16+256+4096

Или просто 4371

Все эти способы ввода означают одно и тоже.Проиллюстрируем данный пример следующей программой:

 

MsgBox "Запустить отладку?",VbYesNoCancel+VbCritical+VbDefaultButton2+VbSystemModal

 

После запуска программы, на экран будет выведено окно с тремя кнопками (Yes , No, Cancel), со значком критического сообщения, причём активной будет вторая кнопка, окно выводится поверх всех окон.

Если вам необходимо оставить значение по умолчанию введите 0:

 

MsgBox "Произошла ошибка!"&vbCrLf&"Код ошибки: 120002129",0, "Окно ошибки"

MyVar - означает переменную где будет сохранено возвращаемая функцией информация о нажатой кнопке.

В Таблице 4 представлены некоторые из возвращаемых значений.

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

Пример:

K=MsgBox( "Ответ", vbYesNoCancel+vbcritical+vbDefaultButton2+vbSystemModal, "привет")

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

Msgbox "Ответ",vbyesnocancel+vbcritical+vbdefaultbutton2+vbSystemmodal,"привет"

То есть нужно опустить скобки.

 

Таблица 4 – Перечень возвращаемых значений

Константа Значение Нажатая кнопка
VbOk Ok
VbCancel Cancel
vbAbort Abort
vbRetry Retry
vbIgnore Ignore
vbYes Yes
vbNo No

Встроенная функция ввода данных InputBox

Используется для ввода данных пользователем.

Синтаксис:

 

MyVar=InputBox(Текст [,Заголовок] [,Умолчание][,поз- X] [,поз- Y])

 

Текст– Необходимый параметр, определяющий сообщение, которое выводится в диалоговом окне.

ЗаголовокНеобязательный параметр, определяющий текст заголовка диалогового окна.

Умолчание – Необязательный параметр, задающий значение по умолчанию для текстового поля.

Поз-Х и поз-Y – Необязательные параметры, определяющие положение верхнего левого угла диалогового окна.

MyVar– переменная, в которую передается введённая пользователем строка.

Пример:

User_Input = InputBox (“Введите имя файла: ”, “Создать файл”, “NewFile”,100,200)

Замечание: Если необязательный параметр не задан, VBScript использует значение по умолчанию. Чтобы опустить необязательный параметр, надо оставить его место между двумя запятыми пустым.

Комментарии

Добавление комментариев к сценариям считается хорошим тоном. Действительно, с комментариями написанная программа становится более понятной и удобной, другими словами, более читабельной. Кроме того, если вы хотите заставить VBScript проигнорировать строку или часть оператора, можно просто закомментировать этот оператор. На VBScript комментарии помечаются одинарной кавычкой (‘) или оператором REM. Обнаружив этот символ, интерпретатор VBScript игнорирует остаток строки. Обе приведённые ниже строки содержат комментарии:

‘ Эта строка состоит из одного лишь комментария

MsgBox “Hello, World!” ‘ Комментарий в конце строки

 

 

Непрерывные строки

Длинные операторы снижают читабельность сценариев. Длина следующего оператора, который выводит сообщение, превышает ширину этой страницы:

 

MsgBox “Вы ввели не тот тип переменной в текстовое окно предыдущей формы. Пожалуйста, введите значение переменной типа Integer, то есть такое, которое изменяется в пределах от 0 до 255”

Если в программе слишком много длинных строк, при редактировании вы потеряете много времени на горизонтальную прокрутку текста. Лучше переносить операторы на следующую строку с помощью пробелов и символа подчёркивания (_) в конце строки:

 

MsgBox “Вы ввели не тот тип переменной в текстовое окно предыдущей формы.”&_ “Пожалуйста, введите значение переменной типа Integer, то есть такое, которое ”&_

“изменяется в пределах от 0 до 255”

 

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

Операторы и операции

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

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

Операции определяют действия, выполняемые над операндами. Возвращают некоторое значение.

Оператор -это некоторая конструкция, присущая данному конкретному языку, изменяющая состояние памяти компьютера, но ничего не возвращающая.

 

Замечание: Не стоит путать два таких понятия как оператор и операция. Главное их отличие состоит в том, что операция возвращает значение, а оператор нет.

Оператор присваивания предписывает вычисление выражения, находящегося правее знака (=) и присвоение полученного значения переменной, находящейся левее оператора присваивания. Пример:

 

‘ Вычисляется значение арифметического выражения a+b и результат помещается в x

x=a+b

Переменная и выражение должны быть совместимы по типу. В данном примере, переменные x, a и b должны быть числами, в противном случае при исполнении данного оператора возникнет ошибка о несоответствии типа.

 

Замечание: В одной строке можно вводить несколько операторов подряд, разделяя их двоеточиями (:). Однако не злоупотребляйте этой возможностью, иначе ваши программы станут нечитабельными.

 

Операции конкатенации:

В VBScript используются такие операции конкатенации строк, как + и &

Пример использования:

 

n=300 ‘ присваиваем переменной значение 300

‘ Функция CStr преобразует числовое значение переменной n в строковое, которое

‘можно сложить с другой строкой, а результат присвоить переменной s

s=CStr(n)+" лет Санкт-Петербургу!!!"

msgbox s ‘ выводим в диалоговом окне значение строки s

Конкатенация строк при помощи операции + не самая хорошая практика. Операция + складывает два операнда (если последние – строки, происходит операция конкатенации). Лучший подход – объединить строки при помощи операции &, так как при объединении операцией & двух значений разного формата VBScript автоматически преобразует типы без использования функции CSrc. Пример:

 

n=300

s=n&" лет Санкт-Петербургу!!!" ‘ Ошибка типов в данном примере не возникнет

msgbox s

Арифметические операции возвращают переменной числовое значение. Примеры арифметических операций приведены в Таблице 5:

Таблица 5 – Примеры арифметических операций

Операция Описание Пример
^ Возведение в степень x=y^показатель
+ Сложение x=a+b
- Вычитание или знак отрицательного числа x=-30 или x=a-50
* Умножение x=a*40
/ Деление x=a/b
\ Целочисленное деление x=a\b
Mod Остаток от деления x=a Mod b

Логические операции возвращают переменной значение типа Bool. Примеры логических операций приведены в Таблице 6:

 

 

Таблица 6 – Примеры логических операций

Операция Описание Пример
Not НЕ x=Not y
And И x=a And b
Or ИЛИ x=a Or b
Xor Исключающее ИЛИ x=a Xor b
Eqv Эквивалентность x=a Eqv b
Imp Импликация x=a Imp b

Операции сравнения служат для сравнения выражений (в которых могут быть числа, строки и т.д.). Смотри Таблицу 7.

 

Таблица 7 – Перечень операций сравнения

Операция Описание Пример
= Равно a=b
<= Меньше или равно a<=b
>= Больше или равно a>=b
<> Не равно a<>b

Приоритет операций:

При вычислении значений выражений, состоящих из нескольких операций, синтаксический анализатор VBScript использует старшинство операций, которое приведено в Таблице 8. Чем меньше номер, тем больше приоритет.

 

Таблица 8 – Старшинство операций

Операторы Номер
^ (возведение в степень)
- (знак отрицательного числа)
*
/
\
Mod (остаток от деления)
+ (сложение)
- (вычитание)
+ (конкатенация)
& (конкатенация)
=, >,<, >=, <=, <>
And
Or
Xor
Eqv
Imp

 

Замечание: приоритет у операций одинаков, они выполняются по порядку слева направо.

 

Некоторые встроенные функции приведены в таблице 9:

Таблица 9 – Некоторые встроенные функции

Функция Пример использования Возвращённое значение Описание
Abs(x) a= Abs(-12,08) 12,08 Абсолютное значение числа
Asc(x) a= Asc(“s”) ASCI код символа
Chr(x) a=Chr(115) s Символ, соответствующий коду
Fix(x) a= Fix(-2.9) -2 Округление до целого
Int(x) a=Int(-3.1) -4 Округление до целого
Hex(x) a=Hex(543) 21F Шестнадцатеричное представление
Oct(x) a=Oct(543) Восьмеричное представление
Sgn(x) a=Sgn(-1.5) -1 Знак числа
Date a=Date 11.04.2003 Текущая дата
Time a=Time 14:03:42 Текущее время
Now a=Now 11.04.2003 14:03:42 Текущие дата и время
Atn(x) a=Atn(0.5) 0,463647… Арктангенс числа
Tan(x) a=Tan(0.5) 0,5463024… Тангенс числа
Cos(x) a=Cos(15) -0,759687… Косинус числа
Sin(x) a=Sin(15) 0,6502878… Синус числа
Exp(x) a= Exp(0.37) 1,447734 Экспонента
Log(x) a= Log(2.7) 0,993251… Натуральный логарифм
Sqr(x) a= Sqr(1024) Квадратный корень
Rnd(x) a= Rnd(1) 0,34800238… Случайное число 0..1
Randomize Randomize   Установка генератора случайных чисел в новое исходное положен ие состояние в зависимости от текущего времени

Замечание: если аргументом функции является десятичное число, то десятичная часть отделяется от целой при помощи символа точка (.)

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 1

‘Имя файла MsgBox.vbs

‘Вывод строчки в окне вывода

k=msgbox "Hello, World!"

msgbox k

Пример 2

‘Имя файла Error.vbs

‘Вывод окна, содержащего сообщение об ошибке

MsgBox "Произошла ошибка выполнения программы! "&VbCrLf&_

"Код ошибки 434335001 "&VbCrLf&_

"Запустить отладку?",VbYesNoCancel+VbCritical+VbDefaultButton2+_

VbSystemModal,"Окно сообщения об ошибке"

Пример 3

‘Имя файла Byte.vbs

‘Программа вычисляет сумму, разность, произведение, частное и остаток от деления двух ‘введённых чисел типа Byte

option explicit 'запрет на использование необъявленных переменных

dim n,m 'две рабочие переменные

' вводим переменные

n=Inputbox("Введите целочисленное значение переменной n:",_

"Окно ввода значения переменной типа Byte")

m=Inputbox("Введите целочисленное значение переменной m:",_

"Окно ввода значения переменной типа Byte")

'преводим n и m к типу byte

n=CByte(n)

m=CByte(m)

msgbox "Сумма "&n&" и "&m&" = "&(n+m)&vbcrlf&_

"Разность "&n&" и "&m&" = "&(n-m)&vbcrlf&_

"Произведение "&n&" и "&m&" = "&(n*m)&vbcrlf&_

"Частное "&n&" и "&m&" = "&(n \ m)&vbcrlf&_

"Остаток от деления "&n&" на "&m&" = "&(n mod m)

Пример 4

‘Имя файла Integer.vbs

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

option explicit 'запрет на использование необъявленных переменных

dim n,m 'две рабочие переменные

' вводим переменные

n=Inputbox("Введите целочисленное значение переменной n:",_

"Окно ввода значения переменной типа Integer")

m=Inputbox("Введите целочисленное значение переменной m:",_

"Окно ввода значения переменной типа Integer")

'преводим n и m к типу Integer

n=CInt(n)

m=CInt(m)

 

msgbox "Сумма "&n&" и "&m&" = "&(n+m)&vbcrlf&_

"Разность "&n&" и "&m&" = "&(n-m)&vbcrlf&_

"Произведение "&n&" и "&m&" = "&(n*m)&vbcrlf&_

"Частное "&n&" и "&m&" = "&(n \ m)&vbcrlf&_

"Остаток от деления "&n&" на "&m&" = "&(n mod m)

Пример 5

‘Имя файла Long.vbs

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

option explicit 'запрет на использование необъявленных переменных

dim n,m 'две рабочие переменные

' вводим переменные

n=Inputbox("Введите целочисленное значение переменной n:",_

"Окно ввода значения переменной типа Long")

m=Inputbox("Введите целочисленное значение переменной m:",_

"Окно ввода значения переменной типа Long")

'преводим n и m к типу Long

n=CLng(n)

m=CLng(m)

 

msgbox "Сумма "&n&" и "&m&" = "&(n+m)&vbcrlf&_

"Разность "&n&" и "&m&" = "&(n-m)&vbcrlf&_

"Произведение "&n&" и "&m&" = "&(n*m)&vbcrlf&_

"Частное "&n&" и "&m&" = "&(n \ m)&vbcrlf&_

"Остаток от деления "&n&" на "&m&" = "&(n mod m)

Пример 6

‘Имя файла Double_1.vbs

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

option explicit 'запрет на использование необъявленных переменных

dim n,m 'две рабочие переменные

' вводим переменные

n=Inputbox("Введите значение переменной n:",_

"Окно ввода значения переменной типа Double")

m=Inputbox("Введите значение переменной m:",_

"Окно ввода значения переменной типа Double")

'преводим n и m к типу Double

n=CDbl(n)

m=CDbl(m)

 

msgbox "Сумма "&n&" и "&m&" = "&(n+m)&vbcrlf&_

"Разность "&n&" и "&m&" = "&(n-m)&vbcrlf&_

"Произведение "&n&" и "&m&" = "&(n*m)&vbcrlf&_

"Частное "&n&" и "&m&" = "&(n \ m)&vbcrlf

Пример 7

‘Имя файла Single.vbs.

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

option explicit 'запрет на использование необъявленных переменных

dim n,m 'две рабочие переменные

' вводим переменные

n=Inputbox("Введите значение переменной n:",_

"Окно ввода значения переменной типа Single")

m=Inputbox("Введите значение переменной m:",_

"Окно ввода значения переменной типа Single")

'преводим n и m к типу Single

n=CSng(n)

m=CSng(m)

 

msgbox "Сумма "&n&" и "&m&" = "&(n+m)&vbcrlf&_

"Разность "&n&" и "&m&" = "&(n-m)&vbcrlf&_

"Произведение "&n&" и "&m&" = "&(n*m)&vbcrlf&_

"Частное "&n&" и "&m&" = "&(n \ m)&vbcrlf

Пример 8

‘Имя файла Boll.vbs

‘Над двумя введёнными переменными типа Bool программа возвращает результат логических операций Not, And, Or, Xor и операций сравнения.

option explicit 'запрет на использование необъявленных переменных

dim x,y 'две рабочие переменные

' вводим переменные

x=Inputbox("Введите значение переменной x:",_

"Окно ввода значения переменной типа Bool")

y=Inputbox("Введите значение переменной y:",_

"Окно ввода значения переменной типа Bool")

'преводим x и y к типу Bool

x=CBool(x)

y=CBool(y)

 

msgbox "x = "&x&" ; "&"y = "&y&vbcrlf&_

"Not x --> "&(Not x)&vbcrlf&_

"x And y --> "&(x And y)&vbcrlf&_

"x Or y --> "&(x Or y)&vbcrlf&_

"x Xor y --> "&(x xor y)

msgbox "x = "&x&" ; "&"y = "&y&vbcrlf&_

"x = y --> "&(x=y)&vbcrlf&_

"x <> y --> "&(x<>y)&vbcrlf&_

"x > y --> "&(x>y)&vbcrlf

Пример 9

‘Имя файла Double_2.vbs

‘Программа возвращает значение некоторых функций.

option explicit 'запрет на использование необъявленных переменных

dim x,y ' рабочие переменные

' вводим переменные

x=Inputbox("Введите значение переменной x:",_

"Окно ввода значения переменной типа Double")

y=Inputbox("Введите положительное значение переменной y:",_

"Окно ввода значения переменной типа Double")

'преводим x и y к типу Double

x=CDbl(x)

y=CDbl(y)

 

msgbox "x="&x&" ; "&"y="&y&vbcrlf&_

"Абсолютное значение числа x: "&Abs(x)&vbcrlf&_

"Число E в степени x: "&Exp(x)&vbcrlf&_

"Целая часть числа x: "&Int(x)&vbcrlf&_

"Натуральный логарифм числа y "&Log(y)&vbcrlf&_

"Квадратный корень числа y: "&Sqr(y)&vbcrlf&_

"Синус числа x: "&Sin(x)&vbcrlf&_

"Косинус числа x: "&Cos(x)&vbcrlf&_

"Тангенс числа x: "&Tan(x)&vbcrlf&_

"Арктангенс числа x: "&Atn(x)&vbcrlf

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

1. Напишите программу, которая бы выводила в окне строчку: “Моя первая программа на VBScript!!!”, а ниже – кнопку ОК.

2. Создайте программу, которая "спрашивает" имя, а затем, используя это имя, приветствует программиста.

3. Создайте программу, которая запрашивает пароль, а потом его распечатывает.

4. Напишите программу, которая “спрашивает” пароль для входа в систему, а после введения пользователем пароля и нажатия кнопки ОК выводит окно со значком критической ошибки и сообщением о том, что был введён неправильный пароль.

5. Напишите программу, в которой бы пользователь мог ввести название города-юбиляра (N) и количество исполнившихся ему лет (Х). После нажатия кнопки ОК должно выйти окно с поздравлением: “Поздравляем жителей города N с Х-летием!!!”.

6. Посчитайте среднее арифметическое трёх натуральных чисел.

7. Напишите программу, которая находит квадратный корень произведения двух вещественных чисел одинакового знака.

8. Уберите лишние скобки у данного логического выражения:

y eqv (((x and y) or y)xor (x imp (x xor y)))

а затем напишите программу, которая по введённым значениям x и y типа Bool, вычисляла бы истинно или ложно данное логическое выражение.

9. Уберите лишние скобки у данного арифметического выражения:

(x-y)+23*(y/20)+((x\(2^3)) Mod 2)

а затем напишите программу, которая по введённым значениям x и y типа Integer, вычисляла бы данное арифметическое выражение.

10. Напишите программу, которая вычисляет сумму двух введённых чисел типа Integer и переводит её в шестнадцатеричную систему.

11. Вычислите диагональ квадрата со стороной a.

12. Дан радиус круга. Напишите программу, которая вычисляет площадь этого круга.

13. Дан радиус окружности. Напишите программу, которая вычисляет длину этой окружности.

14. Известны диагонали ромба. Создайте программу, вычисляющую площадь ромба.

15. Создайте программу, которая находит площадь трапеции по ее основаниям и высоте.

16. Вычислите (а) площадь прямоугольного треугольника, (б)­длину гипотенузы по двум его катетам; (в) длину одного из его катетов по гипотенузе и второму катету.

17. Вычислите объём цилиндра с радиусом основания R и высотой h. Известны длины сторон прямоугольника. Вычислите его периметр, площадь и длину диагонали.

18. Определите координату середины отрезка (x,y), если известны координаты концов отрезка: (2, 6 ) и (8, 10).

19. Даны декартовы координаты вершин треугольника (в плоскости). Напишите программу, вычисляющую площадь и периметр этого треугольника.

20. Определите расстояние, пройденное физическим телом за время t, если тело движется с постоянным ускорением а и имеет в начальный момент времени скорость v.

21. Определите время свободного падения физического тела с высоты h.


ЛАБОРАТОРНАЯ РАБОТА 2.
ОПЕРАТОРЫ ВЫБОРА И ОРГАНИЗАЦИИ ВЕТВЛЕНИЯ В ПРОГРАММАХ НА VBSCRIPT

2.1 ЦЕЛЬ РАБОТЫ

Познакомиться с конструкциями:

  • If…Then…End If
  • If…Then…Else… End If
  • If…Then…ElseIf … End If
  • Select Case…End Select

понять специфику их использования, научиться использовать данные конструкции в программах на VBScript.

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

Понятие оператора

Оператор - это единица исполнения программы. Программы состоят из последовательности операторов.

Операции сравнения

Возвращает true тогда и только тогда, когда оба аргумента равны =
Возвращает true тогда и только тогда, когда оба аргумента неравны <>
Возвращает true тогда и только тогда, когда левый аргумент меньше правого <
Возвращает true тогда и только тогда, когда левый аргумент больше правого >
Возвращает true тогда и только тогда, когда левый аргумент меньше или равен правому <=
Возвращает true тогда и только тогда, когда левый аргумент больше или равен правому >=

Логические операции

Логическими операциями называют операции над элементами множества {true, false}, такие как or, and , xor, not. Первые три операции бинарные, последняя унарная.

Not возвращает инвертированное значение аргумента (false вместо true, true вместо false)

And возвращает true тогда и только тогда, когда оба аргумента true.

Or возвращает false тогда и только тогда, когда оба аргумента false.

Xor возвращает true тогда и только тогда, когда оба аргумента имеют разные значения.

Значения true и false при приводятся к целочисленному типу следующим образом: false – 0, true любое число неравное нулю, по умолчанию 1.

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

Оператор условного перехода: If … Then

Общий вид данной конструкции выглядит следующим образом:

If <логическое выражение> Then

<список операторов>

End If

<логическое выражение> - это простое или сложное условие, или логическая константа {true , false}.

Простое условие имеет следующий вид: <выражение1><операция сравнения><выражение2>.

Например: a>=b.

Сложное условие состоит из простых условий, соединённых логическими операциями.

Например: (a<b) and (c>=d).

Алгоритм выполнения данной конструкции:

1. вычисляется значение логического выражения;

2. если значение логического выражения true, то выполняется список операторов;

3. если значение логического выражения false, то ничего не выполняется.

 

Замечание: Операторы If и Then обязательно должны находиться на одной строке.

 

Пример использования:

If x>100 Then

a=100

b=20

End if

If … Then …Else

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

If <логическое выражение> Then

<список операторов1>

Else <список операторов2>

End If

Алгоритм выполнения данной конструкции:

1. вычисляется значение логического выражения;

2. если значение логического выражения true, то выполняется список операторов1;

3. если значение логического выражения false, то выполняется список операторов2.

 

Пример использования:

If x>100 Then

a=100

b=20

Else

a=a+20

b=a/20

End if

If … Then …ElseIf

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

If <логическое выражение1> Then <список операторов1>

ElseIf <логическое выражение2> Then <список операторов2>

...

ElseIf <логическое выражениеN> Then <список операторовN>

End If

Алгоритм выполнения данной конструкции:

1. вычисляется значение логического выражения 1;

2. если значение логического выражения 1 true, то выполняется список операторов1;

3. если значение логического выражения 1 false, то вычисляется значение логического выражения 2;

4. если значение логического выражения 2 true, то выполняется список операторов2;

5. если значение логического выражения 2 false, то вычисляется значение логического выражения 3;

n. если значение логического выражения N true, то выполняется список операторовN;

n+1 если значение логического выражения N false, то ничего не происходит;

 

Замечание: Операторы If и Then обязательно должны находиться на одной строке, и соответственно операторы ElseIf и Then также должны быть на одной строке.

 

Пример использования:

If a=1 Then

b=100

c=20

ElseIf a=2 Then

b=200

c=40

ElseIf a=3 Then

b=300

c=60

End if

Select Case

Для проверки переменной на соответствие нескольким условиям служит оператор Select Case. При этом в зависимости от значения переменной можно исполнить один из блоков кода. Общий вид данной конструкции выглядит следующим образом:

Select Case variant

Case varValue1

<список операторов 1>

Case varValue2

<список операторов 2>

...

Case varValueN

<список операторов N>

Case Else

<список операторов N+1>

End Select

Алгоритм выполнения данной конструкции:

1. значение переменной variant сравнивается со значением varValue1, если они равны, то выполняется список операторов 1;

2. в противном случае – значение переменной variant сравнивается со значением varValue2, если они равны, то выполняется список операторов 2;

...

n в противном случае – значение переменной variant сравнивается со значением varValueN, если они равны, то выполняется список операторов N;

n+1 в противном случае выполняется список операторов N+1

 

Пример использования:

Select Case x

Case 1

y=x+1

Case 2

y=x+2

Case 3

y=x+3

Case Else

y=0

End Select

 

В качестве параметра variant может использоваться переменная любого из подтипов типа Variant, например String, что делает этот оператор очень «удобным» в ситуациях выбора в зависимости от значения переменной с вариантами более двух!!!

Пример:

a=inputbox("Input")

Select Case a

Case "s1" msgbox("s1")

Case "s2" msgbox("s2")

Case "s3" msgbox("s3")

Case "s4" msgbox("s4")

Case Else msgbox("нет такого варианта")

 

End Select

ДЕМОНСТРАЦИОННЫЕ ПРИМЕРЫ

Пример 1

'Имя файла: If_Then.vbs

'программа, которая при x>0 вычисляет значение натурального логарифма Log(x), а в 'противном случае ничего не делает

 

x=CInt(inputbox("Введите параметр","вычисление натурального логарифма","1"))

If x>0 Then

Msgbox "Ответ: "&(log(x)),vbSystemModal,"Результат"

End If

Пример 2

'Имя файла: If_Then_Else.vbs

'программа, которая при x>0 вычисляет значение натурального логарифма Log(x), а в 'противном случае выдаёт сообщение об ошибке, в которой говорится, что вычислить 'логарифм невозможно, так как 'введённое значение x не входит в область определения 'данного логарифма.

 

x=CInt(inputbox("Введите параметр","вычисление натурального логарифма","1"))

If x>0 Then

Msgbox "Ответ: "&(log(x)),vbSystemModal,"Результат"

Else

Msgbox "x не входит в область определения данного логарифма",_

vbSystemModal+vbCritical,"ошибка ввода"

End If

Пример 3

'Имя файла: If_Then_ElseIf.vbs

'программа, иллюстрирующая конструкцию If...Then...ElseIf.

 

x=CInt(inputbox("Введите параметр","вычисление натурального логарифма","1"))

If x=0 Then

Msgbox "Вы ввели 0",vbSystemmodal+vbcritical,"ошибка ввода"

ElseIf x<0 Then

Msgbox "Значение меньше нуля",vbSystemmodal+vbcritical,"ошибка ввода"

Else Msgbox "Ответ: "&(log(k)),vbSystemModal,"Результат"

End If

Пример 4

'Имя файла Bolshee.vbs

'Программа вычисляет большее из двух чисел

option explicit 'запрет на использование необъявленных переменных

dim x,y,z 'три рабочие переменные

' вводим переменные

x=Inputbox("Введите значение переменной x:",_

"Окно ввода значения переменной типа Integer")

y=Inputbox("Введите значение переменной y:",_

"Окно ввода значения переменной типа Integer")

'преводим x и y к типу Integer

x=CInt(x)

y=CInt(y)

If x>y Then z=x Else z=y

Msgbox "x = "&x&" ; "&" y = "&y&vbcrlf&_

"Большее из двух чисел: "&z

Пример 5

'Имя файла: Select_Case.vbs

'программа, в которой по введённому номеру дня недели выводиться его название.

x=CByte(inputbox("Введите номер дня недели от 1 до 7: ","Окно ввода","1"))

Select Case x

Case 1

MsgBox "Понедельник"

Case 2

MsgBox "Вторник"

Case 3

MsgBox "Среда"

Case 4

MsgBox "Четверг"

Case 5

MsgBox "Пятница"

Case 6

MsgBox "Суббота"

Case 7

MsgBox "Воскресенье"

Case Else

MsgBox "Введенному числу не соответствует ни один из дней недели"

End Select


Пример 6

'Имя файла: Examen.vbs

'в зависимости от оценки, полученной на экзамене, программа выводит тот или иной комментарий

option explicit 'запрет на использование необъявленных переменных

dim ball 'три рабочая переменная

' вводим переменную

ball=Inputbox("Введите свою оценку за экзамен:",_

"Окно ввода значения переменной типа Integer")

'преводим ball к типу Integer

ball=CInt(ball)

Select Case ball

Case 1

Msgbox "Очень плохо!!!",,"реакция:"

Case 2

Msgbox "Плохо!!!",,"реакция:"

Case 3

Msgbox "Удовлетворительно!!!",,"реакция:"

Case 4

Msgbox "Хорошо!!!",,"реакция:"

Case 5

Msgbox "Отлично!!!",,"реакция:"

End Select

Пример 7

'Имя файла: Game.vbs

'программа, которая предлагает угадать число от 0 до 10 за 3 попытки.

Randomize

a= Rnd(1) 'переменной a присваивается случайное число от 0 до 1

a=Fix(a*10) 'переменной присваивается случайное число от 0 до 10

x=CInt(inputbox("Введите параметр","Угадайте число от 0 до 10 за 3 попытки!!!","5"))

If x>a Then

Msgbox "Загаданное число меньше! ",vbSystemModal,"результат: "

x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталось всего 2 попытки!!!","5"))

ElseIf x<a Then

Msgbox "Загаданное число больше! ",vbSystemModal,"результат: "

x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталось всего 2 попытки!!!","5"))

End If

If x<a Then

Msgbox "Загаданное число больше!",vbSystemModal,"результат: "

x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталась всего 1 попытка!!!","5"))

ElseIf x>a Then

Msgbox "Загаданное число меньше! ",vbSystemModal,"результат: "

x=CInt(inputbox("Попытайтесь угадать ещё раз: ","Осталась всего 1 попытка!!!","5"))

End If

If x=a Then

Msgbox "Вы угадали загаданное число!!! ",vbSystemModal,"результат: "

Else

Msgbox "Вам не удалось угадать загаданное число за 3 попытки!!! ", _ vbSystemModal,"результат: "

End If

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ

1. *Без использования операторов условного перехода написать программу, вычисляющую модуль числа.

2. *Без использования операторов условного перехода написать программу, находящую большее из двух чисел.

3. *Без использования операторов условного перехода написать программу, находящую меньшее из двух чисел.

4. *Без использования операторов условного перехода написать программу, находящую максимальное из трех чисел.

5. Даны два числа. Выведите на экран их значения и определите большее и меньшее из них.

6. Даны три числа. Выведите на экран их значения и определите большее и меньшее из них.

7. Найти сумму цифр для числа меньше 10000.

8. Вычис



Последнее изменение этой страницы: 2016-08-15; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 34.204.180.223 (0.085 с.)