Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Синтаксис оператора:

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

Это же имя должно стоять в начале строки, на которую будет осуществляться переход; при этом имя метки от оператора отделяется двоеточием.

Заметим, что этот оператор в языке программирования VBA является избыточным, поскольку его работа моделируется другими средствами. Кроме того, часто использование этого оператора свидетельствует о “плохом” стиле программирования.

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

Таблица 1 - Функции проверки типов.

Имя функции Выполняемая проверка
IsArray (<переменная>) Является ли <переменная> массивом
IsData (<переменная>) Является ли <переменная> датой
IsEmpty (<переменная>) Была ли <переменная> описана инструкцией Dim
IsError (<переменная>) Является ли <переменная> кодом ошибки
IsNull (<переменная>) Является ли <переменная> пустым значением
IsNumeric (<переменная>) Является ли <переменная> числовым значением
IsObject (<переменная>) Является ли <переменная> объектом

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

Некоторые функции обработки строк:

Len (<строка>)

Возвращает длину строки, т.е. количество символов в строке.

Например,

Len (“cat”) возвращает значение, равное 3;

Len (“3451787”) возвращает значение, равное 7;

Len (“Пример № 5”) возвращает значение, равное 10.

Mid (<строка>, <начальная позиция> [, <количество символов>])

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

Например, если

S = “весенний день”, то

Mid (S, 10, 4) возвращает значение, равное “день”;

Mid (S, 5, 3) возвращает значение, равное “нн”;

Mid (S, 3) возвращает значение, равное “сенний день”

Примеры:

1. Приведем пример программы, в которой оператор безусловного перехода используется в конструкции If – Them – Else. Требуется найти частное от деления числа a на число b, при этом, если водится b=0, должен быть предусмотрен повторный ввод.

Option Explicit

Sub Частное ()

Dim a As Integer, b As Integer

a = InputBox ("Введите делимое", "Ввод значений")

1: b = InputBox ("Введите делитетель", "Ввод значений")

If b = 0 Then

MsgBox "Делитель должен быть отличен от нуля," & Chr(13) & "повторите его ввод"

GoTo 1

End If

MsgBox "Частное от деления: " & a / b, vbExclamation, "Результат"

End Sub

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

Option Explicit

Sub Проверка ()

Dim x As Variant

Метка: x = InputBox("Введите любое число", "Ввод числа")

If IsNull(x) Then ‘проверка на пустое значение

GoTo Метка

ElseIf Not IsNumeric(x) Then ‘проверка на число

GoTo Метка

Else

MsgBox "Введенное число =" & x

End If

End Sub

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

Option Explicit

Sub Проверка ()

Dim x As Variant

Метка: x = InputBox("Введите любое число", "Ввод числа")

If IsNull(x) Or Not IsNumeric(x) Then 'использование сложного логического условия

GoTo Метка

Else

MsgBox "Введенное число =" & x

End If

End Sub

Задания для лабораторной работы:

Каждый студент должен решить обе задачи.

1. С клавиатуры вводятся числа a, b, c, d. Подсчитать значение выражения (a+b)/(c+d). Если c+d=0, заставить пользователя повторить ввод.

2. Написать программу, проверяющую правильность ввода даты (формат ввода: дд.мм.гг):

- введено нужное количество символов;

- дд и мм являются числами;

- 1 £ дд £ 31;

- 1£ мм £12.

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

День: дд;

Месяц: мм;

Год: гг.

Контрольные вопросы:

1. Что такое оператор безусловного перехода, и для чего он используется?

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

3. Какие бывают функции проверки типов, и что они проверяют?

4. Какие есть функции обработки строк, и как выглядит их синтаксис?

5. В чем преимущества перед оператором условного перехода?





Дата публикования: 2015-11-01; Прочитано: 270 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.009 с)...