Мегаобучалка Главная | О нас | Обратная связь


Управление ходом программы



2020-02-04 290 Обсуждений (0)
Управление ходом программы 0.00 из 5.00 0 оценок




Лабораторная работа № 7

 

Цель работы:

1. Изучить конструкции ветвления If…Then…ElseIf…EndIf

2. Изучить понятия: логические отношения, логические операции, логические операторы

3. Изучить виды логические отношений, логических операций, логических операторов

4. Изучить функцию InputBox

Конструкция ветвления If … Then … ElseIf … EndIf . Логические операции

 

Что же такое управление ходом программы? Чтобы это понять рассмотрим функцию:

 

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

Программа должна работать по следующему алгоритму:

 

Ввод числа x

Если x ≤ - 1 или x ≥ 1, то вычислить по формуле F(x) = x ­

Иначе если x > - 1 и x < 1, то вычислить по формуле F(x) = x ­ 2

Вывод результата F(x)

 

Для решения подобной задачи в языке Basic есть специальная конструкция:

 

If условие Then

[операторы]

[ElseIf условие-n Then

[операторы_elseif] ...

[Else

[операторы_else]]

End If

 

Рассмотрим как работает эта конструкция.

Оператор If должн быть первым оператором в строке. Блок If должен заканчиваться оператором End If.

Оба предложения Else и ElseIf являются необязательными. В блоке If допускается любое число предложений ElseIf, но ни одно такое предложение не может появляться после предложения Else. Допускаются вложенные блоки операторов If, например:

If условие Then

If условие Then

[операторы]

[ElseIf условие-n Then

[операторы_elseif] ...

[Else

[операторы_else]]

End If

 [ElseIf условие-n Then

[операторы_elseif] ...

[Else

[операторы_else]]

End If

 

При выполнении блока If, проверяется заданное в нем условие. Если условие имеет значение True (Истина), выполняются операторы, следующие за Then. Если же условие имеет значение False (Ложь), то по очереди оценивается каждое условие ElseIf (если такие имеются). При обнаружении условия со значением True выполняются операторы, непосредственно следующие за соответствующим предложением Then.

Если ни одно из условий ElseIf не имеет значение True (или предложения ElseIf отсутствуют), выполняются операторы, следующие за Else. После выполнения операторов, следующих за Then или Else, выполнение продолжается с оператора, следующего за End If.

Условие представляет собой логическое выражение, имеющее значение типа Boolean - True (Истина) или False (Ложь). Логическое выражение может состоять из логических отношений и логических операций.

Логические отношения - это сравнение двух выражений. Результат сравнения тоже имеет тип Boolean - True (Истина) или False (Ложь). Для сравнения двух выражений используются операторы сравнения табл. 1:

 

Таблица 1

 

Оператор True (Истина) False (Ложь)
< (Меньше) Вт < кВт кВт < Вт
<= (Меньше или равняется) Вт <= кВт кВт <= Вт
> (Больше) кВт > Вт Вт > кВт
>= (Больше или равняется) кВт >= Вт Вт >= кВт
= (Равняется) Вт = Вт Вт = кВт
<> (Не равняется) Вт <> кВт кВт <> кВт

 

Логические операции – это операции над логическими отношениями. Логические операция осуществляются с помощью логических операторов: Not (Нет) (логическое отрицание), And (И) (логическое умножение), Eqv (эквива­лентность), Or (Или) (логическое сложение) и Хо r (исключающее Или).

Рассмотрим подробнее каждый из них.

Логический оператор Not возвращает противоположное логическое значение.

 

Not(10 > 8)' Возвращает False, .т.к. 10 > 8

Not(8 > 10)' Возвращает True.

 

Логический оператор And используется для логического объединения двух логических отношений. Этот оператор проверяет, оба ли отношения одновременно истинны. Если оба отношения истинны (True), то и результат будет истинным (True); если же хотя бы одно из отношения ложно (False), то и результат тоже будет ложным.

 

10 > 8 And 8 > 6 ' Возвращает True. (True и True)

8 > 10 And 8 > 6 ' Возвращает False. (False и True)

8 > 10 And 6 > 8 ' Возвращает False. (False и False)

10 > 8 And 6 > 8 ' Возвращает False. (True и False)

 

Логический оператор Eqv используется для проверки эквивалентности двух логических отношений. Если их логические значения совпадают (оба рав­ны True или оба равны False), то результат будет истинным; если логические значения различаются, то результат будет ложным.

 

10 > 8 Eqv 8 > 6 ' Возвращает True. (True и True)

8 > 10 Eqv 8 > 6 ' Возвращает False. (False и True)

8 > 10 Eqv 6 > 8 ' Возвращает True. (False и False)

10 > 8 Eqv 6 > 8 ' Возвращает False. (True и False)

 

Для выяснения является ли хотя бы одно из отношений истинным, используется оператор Or. Если хотя бы одно из отношений истинно, то и ре­зультат будет истинным; если же оба отношения ложны, то результат будет лож­ным.

 

10 > 8 Or 8 > 6 ' Возвращает True. (True и True)

8 > 10 Or 8 > 6 ' Возвращает True. (False и True)

8 > 10 Or 6 > 8 ' Возвращает False. (False и False)

10 > 8 Or 6 > 8 ' Возвращает True. (True и False)

 

Если нужно выяснить, что истинно лишь одно из двух отношений, используется операция Хо r. В отличие от Or она дает истинный ре­зультат лишь в том случае, если истинно одно выражение, но не оба одновре­менно.

 

10 > 8 Xor 8 > 6 ' Возвращает False. (True и True)

8 > 10 Xor 8 > 6 ' Возвращает True. (False и True)

8 > 10 Xor 6 > 8 ' Возвращает False. (False и False)

10 > 8 Xor 6 > 8 ' Возвращает True. (True и False)

 

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

 

Sub Vetvl()

'объявляем переменные

Dim x, F As Single

'вводим значение x

x = CSng (InputBox("Введите x"))

'вычисляем значение F

If x <= -1 Or x >= 1 Then

F = x

ElseIf x > -1 And x < 1 Then

F = x ^ 2

End If

'Выводим значение F

MsgBox F

End Sub

 

В коде программы нам встречается новая функция InputBox, которая предназначена для ввода информации. Результатом работы этой функции является окно ввода информации на экране компьютера рис. 1.

 

 

Рис. 1 Окно ввода информации InputBox

 

Эта функция пришла на замену оператору INPUT, из среды программирования QuickBasic для операционной системы DOS. Ранее [1], для ввода информации, мы использовали текстовые поля на форме. Однако для того, чтобы понять принципы программирования, необязательно каждый раз проектировать новую форму. Поэтому для ввода информации мы будем использовать также функцию InputBox. Рассмотрим эту функцию подробнее.

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

Синтаксис.

 

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

 

Синтаксис функции InputBox содержит следующие именованные аргументы:

prompt (обязательный) - строковое выражение, отображаемое как сообщение в диалоговом окне («Введите х» на рис. 1). Максимальная длина строки prompt составляет приблизительно 1024 символов и зависит от ширины используемых символов. Строковое значение prompt может содержать нескольких физических строк. Для разделения строк допускается использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или комбинацию этих символов (Chr(13) & Chr(10)).

title (необязательный) - строковое выражение, отображаемое в строке заголовка диалогового окна. Если этот аргумент опущен, в строку заголовка помещается имя приложения («Microsoft Word» на рис. 1).

d efault (необязательный) - строковое выражение, отображаемое в поле ввода как используемое по умолчанию, если пользователь не введет другую строку. Если этот аргумент опущен, поле ввода изображается пустым как на рис. 1.

xpos (необязательный) - числовое выражение, задающее расстояние по горизонтали между левой границей диалогового окна и левым краем экрана (в твипах). Если этот аргумент опущен, диалоговое окно выравнивается по центру экрана по горизонтали.

ypos (необязательный) - числовое выражение, задающее расстояние по вертикали между верхней границей диалогового окна и верхним краем экрана (в твипах). Если этот аргумент опущен, диалоговое окно помещается по вертикали примерно на одну треть высоты экрана.

helpfile (необязательный) - строковое выражение, определяющее имя файла справки, содержащего справочные сведения о данном диалоговом окне. Если этот аргумент указан, необходимо указать также и аргумент context.

context (необязательный) - числовое выражение, определяющее номер соответствующего раздела справочной системы. Если этот аргумент указан, необходимо указать также аргумент helpfile.

Если указаны оба аргумента, helpfile и context, пользователь имеет возможность нажатием клавиши F1 вызвать контекстную справку. В некоторых приложениях, например, в Microsoft Excel, также автоматически добавляется в диалоговое окно кнопка "Справка".

Если пользователь нажимает кнопку "OK" или клавишу ENTER, функция InputBox возвращает содержимое поля ввода. Если пользователь нажимает кнопку "Отмена", функция InputBox возвратит пустую строку ("").

В следующем примере приведены различные способы получения сведений от пользователя с помощью функции InputBox. Если аргументы x и y опущены, окно диалога автоматически выравнивается по центру по соответствующим осям. Переменная MyValue содержит значение, введенное пользователем, если была нажата кнопка OK или клавиша ENTER. Если же пользователь нажмет кнопку Отмена, то функция возвратит пустую строку.

 

Dim Message, Title, Default, MyValue

Message = "Введите число от 1 до 3" ' Сообщение-подсказка.

Title = "Пример" ' Заголовок.

Default = "1" ' Значение по умолчанию.

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

MyValue = InputBox(Message, Title, Default)

 

' Получение справки. Кнопка "Справка" добавляется автоматически.

MyValue = InputBox(Message, Title, , , , "DEMO.HLP", 10)

 

' Размещение верхнего левого угла окна диалога в точке 100, 100.

MyValue = InputBox(Message, Title, Default, 100, 100)

 

Опять вернемся к программе вычисления функции. В рассмотренном ниже блоке в зависимости от введенного x вычисляется значение F, которое затем выводится на экран с помощью стандартного диалогового окна MsgBox.

If x <= -1 Or x >= 1 Then

F = x

ElseIf x > -1 And x < 1 Then

F = x ^ 2

End If

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

 

If x <= -1 Or x >= 1 Then

F = x

Else

F = x ^ 2

End If

 

Хотелось бы обратить ваше внимание на правила хорошего стиля программирования. Из текста программы видно, что операторы смещены на несколько пробелов вправо. На выполнение программы это никак не влияет, но улучшает «читаемость» программы. Все операторы If , Else If , Else , End If должны писаться на одном вертикальном уровне, а операторы внутри них должны писаться с отступом вправо. Если внутри операторов встречаются вложенные блоки If , Else If , Else , End If то они также должны писаться с отступом, а операторы внутри вложенных блоков смещаются вправо относительно уже вложенных блоков. Например,

 

If x <= -1 Or x >= 1 Then

IF x = 0

F= 5

Else

F = 3

Else

F = x ^ 2

End If

 

Это правило нужно соблюдать при написании ваших программ.

И последнее замечание. Для вывода формулы

 

 

 

в документ Word можно использовать код поля EQ [1]:

EQ \B\lc\{(\a\al(x, если x ≤ -1;x2, если -1 < x < 1; x, если x ≥ 1.))

 

Варианты заданий .

Использование конструкций ветвления If … Then … ElseIf … EndIf

 

Задача. Составьте программу, которая производит расчет предложенной вам функции (табл. 2).

Разработанная программа должна быть предоставлена в двух вариантах:

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

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

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

В программе нужно предусмотреть защиту от неверного ввода данных.

Сформировать отчет средствами VBA. Отчет должен содержать: условие задачи; формулу расчета с обозначениями и подставленными вместо них числами; полученный результат.

 

Таблица 2

Варианты заданий

 

1. 2.
3. 4.  
5. 6.
7. 8.
9. 10.
11. 12.
13. 14.
15. 16.
17. 18.
19. 20.
21. 22.
23. 24.
25.  

 



2020-02-04 290 Обсуждений (0)
Управление ходом программы 0.00 из 5.00 0 оценок









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

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (290)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.009 сек.)