Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_7.doc
Скачиваний:
1
Добавлен:
07.12.2018
Размер:
2.79 Mб
Скачать

Правила записи условных операторов в языке программирования Visual Basic

Формат записи функций на языке программирования Visual Basic (VB) отличается от формата записи формул в программе Excel.

Для реализации логического условия "ЕСЛИ" в языке VB используется логический оператор

If <условие> Then <значение_функции_на_1-й_ветви>

Else <значение_функции_на_2-й_ветви>

(Перевод слов: If "Если", Then"Тогда", Else – "Иначе").

Для получения легко читаемого текста программы в языке программирования VB, также как и в других языках программирования прибегают к форматированию текста программы. Одним из средств форматирования программы является запись многострочных операторов.

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

Для определения того, что оператор является многострочным, в конце каждой строки оператора, кроме последней, записывается два символа: "<пробел>" и "_" ("подчёркивание").

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

В приводимом ниже тексте функции QRF перед каждым символом "_" должен быть введён один пробел.

Public Function QRF(x, a, b, alfa, betta)

'x - аргумент функции, a,b,alfa,betta - параметры

If (x < alfa) Then QRF = a + Exp(b * x) _

Else _

If (x <= betta) Then QRF = (a + b * x) / (1 + x) _

Else QRF = a / (b * x)

End Function

Возможен второй вариант реализации разветвляющейся функции, в котором используются обращения к уже созданным ранее функциям F1V, F2V и F3V. Ниже приводится текст функции QRF1, в котором использованы обращениями к этим функциям.

Public Function QRF1(x, a, b, alfa, betta)

'x - аргумент функции, a,b,alfa,betta - параметры

If (x < alfa) Then QRF1 = F1V(x, a, b) _

Else _

If (x <= betta) Then QRF1 = F2V(x, a, b) _

Else QRF1 = F3V(x, a, b)

End Function

На рис. 10 приведён фрагмент таблицы, в которую включены столбцы F(X) QRF(X) и QRF1(X). Числа в этой таблицы ещё не отформатированы.

Сравнивая столбцы F(X), QRF(X) и QRF1(X) таблицы, мы видим их полную идентичность.

Рис. 10. Таблица значений аргумента Х и функций F1V, F2V, F3V, F,QRF и QRF1

Перед построением графиков функций F1V, F2V, F3V и QRF1(X) обратим внимание на то, что в таблице значений функции F2V значение функции для аргумента Х = -1 равно 4,05Е+15. Это очень большое число получается из-за того, что знаменатель функции в этой точке становится очень маленьким, близким к 0 числом.

Аналогичная особая точка должна быть и в функции F3V при значении аргумента Х равном нулю. В таблице, приведенной на рис. 10, мы видим, что точка, в которой аргумент Х равен 0, отсутствует. Это определяется тем, что при последовательных вычислениях значений аргумента по формуле

Х:=Х + Dx

накапливается вычислительная погрешность, определяемая способом представления чисел в памяти ЭВМ. Вместо точки Х=0 в таблице получена точка, в которой Х= -2,8Е-16. Это значение очень мало и определяет наличие выброса в функции F3V. Если бы в этой точке было получено значение точного нуля, то в ячейке вместо значения функции было бы выведено сообщение об ошибке: #ЗНАЧ!.

Вид графиков, построенных по данным, приведенным в таблице рис. 10, показан на диаграмме рис. 11.

Рис. 11.

Следует отметить, что разветвляющиеся функции могут иметь разрывы в точках перехода от одной ветви к другой. Это объясняется тем, что при приближении значения аргумента Х к точке ветвления слева значение функции не обязательно совпадает со значением функции, определяемой справа от этой точки. При графическом отображении этих функций участок графика, соединяющий крайние точки смежных участков, следует сделать невидимым.

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

При подготовке документа к печати следует выполнить следующие операции:

  • выделить область документа, включаемую в документ, выводимый на печать;

  • в меню "Файл" выбрать команду "Область печати ►" и на втором уровне меню выбираем команду "Задать".

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

Рис. 12 Таблица значений и график разветвляющейся функции

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]