Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

End If



В том случае, если условие принимает значение True, то выполняется один блок программного кода, а если условие принимает значение False, то выполняется другой.

Если структура If...Then должна выполнить только один оператор, когда условие принимает значение True, всю структуру можно уместить в одну строку. В таком случае оператор End If не требуется – точнее, его быть не должно. Синтаксис записи линейной формы записи оператора:

If Цена > 20 Then (операторы, выполняющиеся, когда условие = True).

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

В зависимости от ситуации, при этом потребуется добавить в структуру If...Then ключевые слова Elself или вложенные структуры If...Then. С интаксис такой структуры:

If условие1 Then

(операторы, выполняющиеся, когда условие 1 = True)

Elself условие2 Then

(операторы, выполняющиеся, когда условие 1 = False, а условие 2 = True)

Elself условие З Then

(операторы, выполняющиеся, когда условие1и условие 2 = False, а условие З = True)

... (другие операторы Elself )

Else ' необязательное ключевое слово

(операторы, выполняющиеся, когда все условия = False)

End If

П р и м е р. Необходимо вычислить значение функции при любых значениях a и b. На первый взгляд решение этой задачи можно описать алгоритмом линейной структуры, но при ab = 0 задача не может быть решена, т.к. деление на нуль невозможно. Для корректного решения задачи необходимо предусмотреть вывод сообщения, если вычисление y невозможно. Тогда вычислительный процесс можно описать следующим образом: вычислить y, если ab ≠ 0 или вывести сообщение, если ab = 0

В ГСА (рис. 3.1) решения этой задачи используется блок проверки условия, имеющий один вход и два выхода по выполнению проверяемого условия – «да» и «нет». В примере это блок 2, в котором проверяется условие ab = 0. В зависимости от результата проверки условия возможны два пути продолжения решения задачи. Каждый из путей называется ветвью, а алгоритм – разветвляющимся.

Как и во всех разветвляющихся алгоритмах в данной задаче нарушается естественный порядок следования блоков. Так, за блоком 2 может выполняться блок 3, образуя ветвь 1, а может и блок 5, образуя ветвь 2; за блоком 4 всегда выполняется блок 6.

Любое изменение естественной (линейной) последовательности выполнения блоков называется переходом. Переходы бывают двух типов: условные и безусловные. Условный переход реализуются с помощью оператора условия (условного оператора).

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

Программный код

Sub V ()

Dim a As single, b As single, y As single

a=val(inputBox(“a=”))

b=val(inputBox(“b=”))

If a*b =0 Then

MsgBox (“ ab =0”)

Else y=1/ (a*b)

MsgBox (“ y=”& y)

End If

Если условие выполняется, т.е. ab =0, в окне вывода на экран монитора оператором MsgBox выводится сообщение “ ab =0”, в противном случае, когда произведение a и b не равно нулю, вычисляется значение y по формуле y= 1 /(a*b) и это значение выводится в стандартном окне вывода.

Вариант программы с линейной формой записи оператора:

Option Explicit

Sub V ()

Dim a As single, b As single, y As single

a=val(inputBox(“a=”))

b=val(inputBox(“b=”))

IF a*b=0 THEN MsgBox(“ab=0”) ELSE y=1/(a*b): MsgBox (“y=”& y) ‘вывод результата

End Sub

3.3.2. Приемы обеспечения технологичности программных продуктов. Модули, их свойства, «структурное» и неструктурное программирование.

При разработке программного модуля целесообразно придерживаться следующего порядка [8.1]:

· изучение и проверка спецификации модуля, выбор языка

программирования;

· выбор алгоритма и структуры данных;

· программирование модуля;

· шлифовка текста модуля;

· проверка модуля;

· компиляция модуля.

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

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

На третьем шаге осуществляется построение текста модуля на выбранном языке программирования. Обилие всевозможных деталей, которые должны быть учтены при реализации функций, указанных в спецификации модуля, легко могут привести к созданию весьма запутанного текста, содержащего массу ошибок и неточностей. Искать ошибки в таком модуле и вносить в него требуемые изменения может оказаться весьма трудоемкой задачей. Поэтому весьма важно для построения текста модуля пользоваться технологически обоснованной и практически проверенной дисциплиной программирования. Впервые на это обратил внимание Дейкстра [8.2], сформулировав и обосновав основные принципы структурного программирования. На этих принципах базируются многие дисциплины программирования, широко применяемые на практике [8.3-8.6]. Наиболее распространенной является дисциплина пошаговой детализации [8.3], которая подробно обсуждается в разделах 8.2 и 8.3.

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

Шаг проверки модуля представляет собой ручную проверку внутренней логики модуля до начала его отладки (использующей выполнение его на компьютере), реализует общий принцип, сформулированный для обсуждаемой технологии программирования, о необходимости контроля принимаемых решений на каждом этапе разработки ПС (см. лекцию 3). Методы проверки модуля обсуждаются разделе 8.4.

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





Дата публикования: 2014-11-29; Прочитано: 204 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.015 с)...