Демонстрационные примеры




Лабораторная работа № 2. Оператор условного перехода

Теоретические сведения

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

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

If <условие> Then

<инструкции_1>

[Else

<инструкции_2>

End If]

Здесь If, Then, Else, End If – зарезервированные слова VBA (если, то, иначе, конец ветвления);

<условие> – произвольное выражение логического типа;

< инструкции_1>, < инструкции_2> – любые операторы языка VBA.

Условный оператор работает по следующему алгоритму. Вначале вычисляется значение условного выражения <условие>. Если результат есть True (истина), то выполняются <инструкции_1>, а <инструкции_2> пропускаются. Если результат есть False (ложь), наоборот, <инструкции_1> пропускаются, а выполняются <инструкции_2>.

Часть условного оператора, начинающаяся со слова Else, может быть опущена, в этом случае имеет место неполная форма условного оператора. При этом, если условное выражение имеет значение True, выполняются инструкции, стоящие за Then; в противном случае весь оператор пропускается.

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

 
 

 

 

Начало или конец алгоритма
    Простая команда
      Ввод и вывод данных  
      Проверка условия  

 

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

Полная форма Неполная форма

Допустимо так же использование вложенных ветвлений. В этом случае синтаксис таков:

If <условие_1> Then

<инструкции_1>

ElseIf <условие_2> Then

<инструкции_2>

…………………………………

[Else

<инструкции_n>

End If]

Демонстрационные примеры

1. Даны значения двух величин. Выбрать большее из них.

Обозначим данные величины через А и В, результат – С.

Приведем блок-схему алгоритма решения этой задачи. Рассмотрим два способа: (a) с использованием полного ветвления; (б) с использованием неполного ветвления.

(а) (б)

 


Условием, по которому разветвляется алгоритм, является отношение неравенства – логическое выражение. Логические выражения описывают некоторые условия, которые могут выполняться или не выполняться. Логическое выражение может принимать только два значения True (истина) или False (ложь).

Если логическое условие справедливо, то результатом будет логическая величина True и выполнение алгоритма продолжится по стрелке “истина”; в противном случае логическое выражение примет значение False и выполнение алгоритма пойдет по ветви “ложь”.

Соответствующие программы на VBA имеют следующий вид.

(а)

Sub Большее_из_двух ()

End Sub

Правильность алгоритма можно проверить путем заполнения трассировочной таблицы. Вот так будет выглядеть трассировка алгоритма для исходных значений A=5, B=8.

Шаг Команда A B C Проверка условия
  A= Val (InputBox (“Введите число”, ”Ввод числа”))   - -  
  B= Val (InputBox (“Введите число”, ”Ввод числа”))     -  
  A>=B     - 5>=8, False (ложь)
  C=B        
  MsgBox “Наибольшее число ”& C, ”Вывод результата”        

(б) аналогично.

2. Найти наибольшее значение среди трех величин A, B и C.

Возникает следующая идея алгоритма решения этой задачи: сначала нужно найти большее значение среди A и B и присвоить его какой-то переменной, например, D. Затем наитии большее среди D и C. Это значение можно присвоить той же переменной D.

Решение задачи сводится к двукратному применению уже знакомого алгоритма нахождения большего из двух.

 
 

 

В структуре алгоритма содержится два последовательных ветвления: первое – полное, второе – неполное. Очевидно, что эту задачу можно решить с использованием алгоритма, содержащего только неполные ветвления. В последнем случае возможны так же несколько вариантов решения в зависимости от характера условия: с простыми условиями и со сложными условиями. Заметим, что сложными условиями называют условные выражения, содержащие логические операции And (и), Or (или). Xor (исключающее или), Not (отрицание).  

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-22 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: