И примеры их программирование

 

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

· Вычисление значений сложных функций, зависящих от условий.

· Нахождение максимума и минимума среди нескольких переменных.

· Выбора различных путей вычислительного процессаи т.д.

 

В примерах 4.4.3-1 – 4.4.3-6 описаны алгоритмы и процедуры наиболее часто встречающихся задач, включающие базовые алгоритмы разветвляющих структур.

Ввиду сложности понимания и оформления процедур - Sub и процедур - Function необходимо сделать несколько замечаний.

Если процедура не содержит ни входных, ни выходных параметров (является автономной функционально полной функцией), то она может быть оформлена как процедура - Sub и как процедура - Function.

Если процедура содержит несколько входных параметров (с атрибутом ByVal) и несколько выходных параметров (с атрибутом ByRef), два и более, то эту процедуру следует оформлять как процедуру - Sub.

Если процедура содержит несколько входных параметров (с атрибутом ByVal) и один выходной параметр (с атрибутом ByRef), то она может быть оформлена и как процедура - Sub, и как процедура - Function.

Этими замечаниями воспользуемся при написании процедур следующих примеров.

 

Пример 4.4.3-1.Написать процедуру вычисления значения функции:

1, если x = 0;

y(x)=

Sin(x), если х > 0 или х < 0, где x – вводимое значение.

Схема алгоритма и программный код процедуры приведены на рис. 4.4.3-1. Процедуры vvodDbl2() и vivodDbl2() взяты из 4.3.4-2.

 

Function Pr431() As Double Dim x As Double Dim y As Double x = vvodDbl2("Ввод x = ",TextBox1) If x = 0 Then y = 1 Else y = Sin(x) vivodDbl2(у, " у= ",TextBox2) Return y End Function

Рис.4.4.3-1. Схема алгоритма и программный код процедуры Pr431()

проекта Пример 4.3-1

Процедура - Function Pr431() может быть вызвана, как на рис. 4.4.3-2.

 

Dim YY As Double YY=Pr431()

Рис.4.4.3-2. Пример вызова процедуры Pr431()

проекта Пример 4.3-1

Function Pr433(ByVal x As Double ) As Double Dim y As Double If x = 0 Then y = 1 Else y = Sin(x) Return y End Function

Рис.4.4.3-3. Схема алгоритма и программный код процедуры Pr433()
проекта Пример 4.3-1

Если процедура- Function не будет содержать ввода и вывода данных, то она будет выглядеть, как на рис. 4.4.3-3. В этом случае необходимо использование параметра функции для передачи значения x в вызываемую процедуру - Function Pr433().

Процедура - Function Pr433() может быть вызвана из любой другой процедуры или из модуля формы, например, как на рис. 4.4.3-4.

 

Dim YY, x As Double x = vvodDbl2("Ввод x=", TextBox1) YY = Pr433(x) vivodDbl2(YY," YY", TextBox2)

 

Рис.4.4.3-4. Пример вызова процедуры Pr433()

проекта Пример 4.3-1

Оформим решение примера как процедуру - Sub. Программный код процедуры- Sub и соответствующее обращение к ней приведены на рис. 4.4.3-5 и рис. 4.4.3-6 соответственно. При создании процедуры типа Sub необходимо ввести еще один параметр yy, который передает в процедуру значение параметра по ссылке (ByRef), так как именно через этот параметр происходит возврат результата работы процедуры- Sub в вызывающую процедуру. Здесь xx и yy – фактические параметры, на которые заменяются формальные параметры x и y при работе (вызове) процедуры Pr435().

Sub Pr435(ByVal x As Double, ByRef y As Double) If x = 0 Then y = 1 Else y = Sin(x) End Sub

Рис.4.4.3-5. Схема алгоритма и программный код процедуры Pr435()
проекта Примера 4.3-1

Dim XX, YY As Double XX=vvodDbl2("Ввод x=", TextBox1) Pr435(XX, YY) vivodDbl2(YY,"Значение функции YY", TextBox2)

 

Рис. 4.4.3-6. Схема алгоритма и программный код процедуры Pr435()
проекта Пример 4.3-1



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: