Виды обходов и их программная реализация




ЛАБОРАТОРНАЯ РАБОТА №2

ПРОГРАММИРОВАНИЕ ЗАДАЧ С РАЗВЕТВЛЯЮЩИМСЯ АЛГОРИТМОМ

Цель работы:

1. Изучение операторов условного перехода.

2. Получение навыков решения задач с разветвляющимся алгоритмом.

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Изучить методические указания к лабораторной работе.

2. Подготовить задачу для решения на ПК (постановка задачи, алгоритм, код программы).

3. Запустить Microsoft Excel и подготовить макет таблицы для вывода исходных данных и результата.

4. Запустить редактор VBA.

5. Создать модуль и процедуру для решения поставленной задачи.

6. Запустить процедуру.

7. Распечатать полученные результаты и код программы.

ЛОГИЧЕСКИЕ КОНСТРУКЦИИ

Данная лабораторная работа посвящена изучению способов решения задач с разветвляющейся структурой. Разветвляющаяся структура обычно содержит блок проверки некоторого логического условия, например, X>0; X<A; X≠ 0 и т.п. По результатам проверки выполняется та или иная последовательность действий, называемая ветвью. В дальнейшем под ветвью будем подразумевать один оператор или группу операторов. Разветвляющийся вычислительный процесс, включающий две ветви, называется простым; более двух ветвей – сложным.

Разветвляющийся вычислительный процесс основывается на трех базовых структурах:

1. Развилка;

2. Обход;

3. Многозначное ветвление.

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

Для реализации данных структур используются условные операторы IfThenElse, IfThen, Select Case и Оператор ElseifThenElse.

Развилка

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

Рис. 5. Развилка

Для реализации развилки служит оператор IfThenElse, при этом используется две формы синтаксиса: строчная и блочная.

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

If условие Then ветвь 1 Else ветвь 2.

Блочная форма синтаксиса имеет следующий вид:

If условие Then

ветвь 1

Else

ветвь 2

End if.

Если условие имеет значение истинно, VBA выполняет первый блок операторов (ветвь 1) и, пропустив, все остальные операторы структуры, переходит к строке программного кода, следующей сразу же за ключевым словом End If. А если условие имеет значение ложно, то выполняются операторы (ветвь 2), следующие за ключевым словом Else.

Обход

Обход – частный случай развилки, когда одна ветвь не содержит операторов. В таблице 6 представлены виды обходов и их программная реализация условным оператором, в строчной и блочной форме синтаксиса.

Таблица 6

Виды обходов и их программная реализация

№ п\п Вид обхода Форма синтаксиса Программная реализация
  Строчная If условие Then оператор 1
Блочная If условие Then оператор 1 . . . оператор N End if
  Строчная If условие Then Else оператор 1
Блочная If условие Then Else оператор 1 . . . оператор N End if

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

Как видно, из таблицы данный вид обхода реализуется оператором IfThen. При этом оператор IfThen выполняет некоторую группу операторов, если условие в рассматриваемом операторе истинно, и не выполняет ничего, если условие принимает значение ложно.

Многозначное ветвление

Многозначное ветвление (рис. 6) – структура, позволяющая, в зависимости от признака I, выполнить одну ветвь из множества предложенных.

Рис. 6. Многозначное ветвление

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

Синтаксис этого оператора следующий:

Select Case значение

Case условие 1

ветвь1

Case условие 2

ветвь 2

.

.

.

Case условие N

ветвь N

[Case Else]

[ ветвь N+1 ]

End Select.

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

Рассмотрим принцип работы оператора Select Case. В случае если в качестве параметра «значение » указано выражение, сначала оно вычисляется, а затем полученный результат последовательно сравнивается с каждым из условий в операторе Case, начиная с первого условия. Если «значение » удовлетворяет условию, тогда будут выполняться операторы, соответствующей ветви, после чего выполнение программы продолжится, начиная с оператора, следующего за оператором End Select. Если «значение » не удовлетворяет ни одному из условий, начиная с «условие 1 » и заканчивая «условие N », будут выполнены операторы, следующие за ключевым словом Case Else.

В операторе Case, в качестве условия, можно использовать как, проверку с одной переменной, так и проверку на вхождение в определенный ряд. В первом случае необходимо использовать синтаксис:

Case Is « знак проверки» выражение.

Например: Case Is =5 (Case 5), Case Is <15, Case Is >=a+b и т.п..

Во втором случае:

Case начальное значение ряда To конечное значение ряда.

Например: Case 1 To 35 (числовой ряд), Case “ A” To “ F” (символьный ряд).

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

Например: Case 1 To 10, 15, Is >30.



Поделиться:




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

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


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