<<
>>

Программирование ветвлений

В гл. 7 мы познакомились с разветвляющимися алгоритмами.

Для программирования логических выражений используют структуры ветвления. Напомним, что в алгоритмической структу- ре ветвления те или иные операторы выполняются в зависимости от истинности условия.

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

• многострочная форма;

• однострочная форма;

• функция Iif.

В многострочной форме этот оператор записывается с помо- щью следующей инструкции:

If Then

Else

End If

В этом случае второе ключевое слово «Then» размещается на той же строчке, что и условие, а последовательность команд (опе- раторы!) должна размещаться на следующей строчке. Третье клю- чевое слово «Else» размещается на третьей строчке, а последова- тельность команд (операторы2) — на четвертой. Конец инструк- ции ветвления «End If» размещается на пятой строчке.

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

If Then Else

Если инструкция не помещается на одной строке, то она мо- жет быть разбита на несколько строк.

Такое представление инст- рукции более наглядно для человека. Компьютер же должен знать, что разбитая на строки инструкция представляет единое целое. Это обеспечивает знак переноса, который задается символом «Под- черкивание» после пробела.

Третье ключевое слово «Else» в сокращенной форме инструк- ции может отсутствовать (необязательные части операторов запи- сываются в квадратных скобках). Если условие ложно, то выпол- нение оператора условного перехода заканчивается и выполняет- ся следующая строка программы.

Функция lif записывается с помощью инструкции

Iif (, , )

Функция возвращает значение 1, если условие истинно, и значение2, если условие ложно.

Пример 1. Ввести значения А и В, если Л> В, присвоить пере- менной С значение суммы квадратов чисел А и В, в противном случае — значение В. Алгоритм решения представлен на рис. 8.8, а. Разместим на форме следующие объекты:

Label 1 — со свойством Caption, имеющим значение «/1»; Label2 — со свойством Caption, имеющим значение «Л»;

Textl — для ввода значения А через свойство Text,

Text2 — для ввода значения В через свойство Text,

Command 1 — командная кнопка;

Label 3 — со свойством Caption, имеющим значение «С»;

Label 4 — для вывода значения переменной через свойство Caption.

Событийная процедура, которая выполняется при нажатии на кнопку Сравнить, выглядит следующим образом (результат рабо- ты приложения представлен на рис. 8.8, б):

Dim а, b, с As Integer Private Sub Command l_Click() a = Val(Textl.Text) b = Val(Text2.Text)

If a > b Then с = аЛ2+ЬЛ2 Else c = b Label4.Caption = c End Sub

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

Dim а, b, с as Integer Private Sub Command l_Click() a = Val(Textl.text) b = Val(Text2.text) c = Iif (a>b, аЛ2+ЬЛ2, b)

Label4. Caption = c End Sub

В примере показано использование объекта «Метка» для ввода результата через свойство Caption.

Пример 2 (ввод пароля). Исходная форма содержит три тексто- вых поля: фамилию, имя и пароль. Оригинал пароля (строка сим- волов) задается внутри событийной процедуры через перемен- ную paset. Пароль, введенный в текстовом поле Text3 (рис. 8.9, а), сравнивается с оригиналом. Если он верен, то выводится окно сообщения, представленное на рис. 8.9, б, в противном случае — окно сообщения, представленное на рис. 8.9, в.

Сама событийная процедура имеет следующий вид:

Dim fam, im, pas, paset As String

Private Sub Command l_CIick()

fam = Text 1.Text

im = Text2.Text

pas = Text3.Text

paset = "пароль"

If pas = paset Then

MsgBox ("Здравствуйте, " + fam + " " + im)

Else

MsgBox ("Пароль неверен!")

End If End Sub

В языке VBA есть еще один оператор, с помощью которого можно изменить последовательный ход выполнения программы. Это оператор безусловного перехода Go То («перейти к ...»).

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

Go То Метка

Метка — символьная цепочка, которая может быть поставлена перед каким-либо оператором программы (с этого оператора про-

ШЗШИШ ' 12111

Пароль неверен!

г^1

в

а — ввод исходных данных; б — окно приветствия при правильном пароле; в — сообщение об ошибке

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

Пример 3. Даны три переменные а, Ь, с, которые являются длинами отрезков. Можно ли из этих отрезков построить тре- угольник? Задачу решим двумя способами: с использованием ус- ловного оператора и оператора безусловного перехода.

Для того чтобы из отрезков а, Ь и с можно было построить треугольник, необходимо выполнение (одновременное) трех не- равенств:

а + Ь>= с; Ь + с>= а; а + с>= Ъ.

Хорошим стилем программирования считается такой, в кото- ром при написании программы не используется оператор Go То. Действительно, в основном многие задачи программируются без использования безусловного оператора.

Еще одной инструкцией языка VB, предназначенной для ре- ализации сложных ветвлений, является инструкция выбора Select Case. Этот оператор удобно применять тогда, когда выполнение одного из многочисленных действий зависит от значения какой- нибудь переменной. После ключевого слова «Case» («Выбор»), которое повторяется столько раз, сколько различных действий может быть выполнено, записывается диапазон значений этой переменной. При попадании значения переменной в этот диапа- зон выполняется действие, которое записано вслед за ним.

Диапа- зон записывается с помощью ключевых слов «Is», «То» или про- стым перечислением значений.

Инструкция Select Case имеет следующий синтаксис:

Select Gase

Case

Case

< операторы( N -1) >

[Case Else 1 J End Select

В качестве значения для блока Case можно указывать не только одно значение (I), но и несколько значений, разделенных запя- той (2, 3). Можно определять также области сравнения (4 То 6) или воспользоваться относительным сравнением (Is >= 9). Вместо непосредственного значения проверочного выражения можно ис- пользовать ключевое слово «Is».

Блок Case Else выполняется, если ни одно из предыдущих ус- ловий не является истинным. Если условию Select Case соответ- ствует несколько блоков Case, то выполняется первый из них.

Пример 4. По номеру месяца определить, к какому времени года он относится. Использование оператора Select Case позволяет компактно записать программу этого приложения:

Dim A As Integer

Private Sub Commandl_Click()

A = Уа1(1пршВох("Введите месяц "Время года”))

Select Case A Case 12,1,2 Form 1. Print "Зима”

Case 3 To 5 Form 1. Print "Весна"

Case 6 To 8 Form 1.Print "Лето"

Case 9 To 11 Forml.Print "Осень"

Case Else

Forml.Print "Введено неверное значение"

End Select End Sub

1.4.1.

<< | >>
Источник: Калмыкова Е. А.. Информатика. 2012

Еще по теме Программирование ветвлений:

  1. Основной курс (Программирование)
  2. Иванова Г.С. Основы программирования, 2002
  3. Эстетика программирования
  4. Г.С.Иванова, Т.Н.Ничушкина, Е.К.Пугачев. Объектно- ориентированное программирование, 2001
  5. О. Л. Голицына, Т. Л. Партыка, И. И. Попов. ЯЗЫКИ ПРОГРАММИРОВАНИЯ, 2008
  6. Часть вторая Родительское программирование
  7. Программирование телевизионного вещания
  8. Часть вторая Родительское программирование СУДЬБА ЧЕЛОВЕКА
  9. Нейро-лингвистическое программирование
  10. Сергей Александрович Орлов. Теория и практика языков программирования: Учебник для вузов. Стандарт 3-го поколения, 2013
  11. ПРОГРАММИРОВАНИЕ НА УСПЕХ
  12. Научное программирование телевидения
  13. Программирования основные понятия
  14. Глава 2 Отрицательное и положительное программирование
  15. 3 Используйте активное программирование, «подключая» к работе голос и движение.
  16. 5 Лучшим временем для программирования является последний час перед сном.