Программная реализация алгоритма 


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



ЗНАЕТЕ ЛИ ВЫ?

Программная реализация алгоритма



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

I f условие Then оператор1 Else оператор2

Параметр условие – логическое выражение, которое возвращает одно из двух возможных значений:

True – если условие верно (истинно);

False – если условие не выполняется (ложно).

Если условие истинно, то выполняется оператор или группа операторов, находящиеся после ключевого слова Then, а операторы, стоящие после ключевого слова Else, игнорируются. И наоборот, если условие ложно, то выполняются операторы, находящиеся после ключевого слова Else, а остальные операторы игнорируются.

Логическое выражение, используемое в качестве условия, может быть простым и сложным. При записи простых условий могут использоваться все возможные операции отношения. Сложные условия образуются из простых путем применения логических операций (and, or, not) и круглых скобок.

Для описания алгоритма неполной развилки (если условие Р истинно, то выполняется действие S) применяется следующий синтаксис:

If условие Then оператор

В этом варианте синтаксиса, называемом однострочным, ключевое слово Else отсутствует. Если логическое условие ложно, то оператор, находящийся после ключевого слова Then не выполнится, и управление будет передано следующей строке программы.

Рассмотрим применение этого синтаксиса при решении следующей задачи.

Задача. Пусть даны два числа. Если первое больше второго по абсолютной величине, то необходимо уменьшить первое в пять раз. Иначе оставить числа без изменений.

Решение (язык VBA):

Sub primer ()

Dim x,y

x=InputBox(“x=”)

y=InputBox(“y=”)

If abs(x) > abs(y) Then x=x/5

MsgBox x

End Sub

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

If условие Then

Инструкция 1

Инструкция 2

........

Инструкция N

End If

Ключевое слово Else также отсутствует, но появляется инструкция end if, которая завершает оператор условия. Синтаксические правила при описании неполной развилки достаточно строги, и, если, допустим, опустить завершающую инструкцию при применении многострочного синтаксиса, появится следующая ошибка, приведенная на рис. 11.

Рис. 11. Синтаксическая ошибка при записи оператора условия

Рассмотрим решение задачи о максимуме из двух чисел, объявленной выше, программным алгоритмом неполной развилки, используя синтаксис:

  If условие Then оператор

Решение.

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

1. Однострочный синтаксис имеет вид:

If условие Then инструкция1 Else инструкция2

2) многострочный синтаксис (применяется в основном тогда, когда после ключевых слов Then и Else используется более одной инструкции):

If условие Then

Инструкция 1

Инструкция 1 n

Else

Инструкция 2

Инструкция 2n

End if

При использовании этого вида синтаксиса решение задачи о максимуме из двух чисел будет выглядеть следующим образом:

Программа (полная развилка) (однострочный синтаксис) .... if a>b then max= a else max=b  msgbox “ максимум =” & max .... Программа (полная развилка) (многострочный синтаксис) ....  if a>b then max= a else max=b end if msgbox “ максимум =” & max ....

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

If условие1 then

Блок операторов1

Elseif условие2 then

Блок операторов2

..........

Elseif условие N then

Блок операторов N

Else

Блок операторов N +1

End if

Применяя этот синтаксис оператора условия, нельзя располагать блок операторов на той же строке, что и ключевое слово Then, так как возникнет синтаксическая ошибка на стадии компиляции программы (рис. 12).

Рис. 12. Ошибка компиляции программы при неправильном написании многострочного синтаксиса оператора условия

При выполнении блока I f проверяется первое условие. Если условие выполняется (условие=истина), тогда выполняются инструкции, следующие за ключевым словом T hen. Если условие1 не выполняется (имеет значение f alse (условие=ложь)), то по очереди оценивается каждое условие E lseIf. При обнаружении условия со значением t rue (условие=истина) выполняются инструкции, непосредственно следующие за соответствующим предложением T hen. Если ни одно из условий E lseIf не выполняется (или предложения E lseIf отсутствуют), тогда выполняются инструкции, следующие за инструкцией E lse.

После выполнения операторов, следующих за ключевыми словами T hen или E lse, выполнение программы продолжается с инструкции, следующей за инструкцией End If.


 

ЗАДАЧИ НА САМОСТОЯТЕЛЬНУЮ РАБОТУ

1. Даны два числа А и В. Если А>В, то А присвоить значение В, а В - значение А. Вывести прежние и полученные значения А и В.

2. Даны две пары чисел А, В и С, Д. Если А*В>С*Д, то вывести среднее арифметическое этих чисел, в противном случае среднее геометрическое.

3. Даны три числа: a, b, c. Определить, можно ли построить треугольник, если интерпретировать a, b, c как длины сторон треугольника

4. Найти максимумы из 3, 4, 5 чисел. Числа для сравнения вводить как с клавиатуры, так и с помощью функции RND (функция для получения случайного числа).

Функция RND возвращает случайное число в диапазоне от 0 до 1 с точностью 12 знаков после запятой. Для того, чтобы комфортно можно было использовать случайные числа в программах, следует умножать функцию на 10, 100, 1000 и т.д. Для отбрасывания дробной части используйте функции INT или FIX.

Например: x = Int (Rnd *100)

5. Даны три числа А, В, С. Найти и вывести наименьшую по абсолютной величине разность из трех возможных.

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

7. Предлагаются две, три, четыре, пять точек. Написать программу, которая по количеству точек определяет возможные фигуры, которые получаются при их соединении. Для решения задачи использовать случайное число и функцию MOD (остаток от деления).

8. Определить высоту треугольника, если его площадь равна S, а основание больше высоты на величину А.


БАЗОВАЯ СТРУКТУРА ВЫБОР

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

Структура ВЫБОР

Если истинно условие Р1, то выполняется действие S1; Если истинно условие Р2, то выполняется действие S2; ………………… Если истинно условие Р n, то выполняется действие Sn; Если не выполняется ни одно из условий, управление передается оператору, следующему за структу-рой.

 

Структура ВЫБОР-ИНАЧЕ

Если истинно условие Р1, то выполняется действие S1;

Если истинно условие Р2, то выполняется действие S2;

…………………

Если истинно условие Р n, то выполняется действие Sn;

Если не выполняется ни одно из условий, то выполняется Sn+1 действие.



Поделиться:


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

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