Автор работы: Пользователь скрыл имя, 02 Ноября 2011 в 21:39, реферат
описание прикладной информатики
[Операторы]
End Sub
Рассмотрим элементы, которые входят в описание заголовка процедуры.
Public — указывает, что данная процедура доступна для всех других процедур в модулях проекта (при отсутствии – принимается по умолчанию).
Private — указывает, что процедура доступна для других процедур только того модуля, в котором она описана.
Static — этот описатель указывает, что локальные переменные (т.е. описанные в этой процедуре) сохраняются между вызовами процедуры. В противном случае для них снова выделяется память.
Параметры в списке параметров в заголовке процедуры, называемые иначе формальными параметрами, разделяется запятыми. Формальный параметр имеет произвольное допустимое имя, необходимое только для описания алгоритма. Место в памяти для формального параметра не выделяется.
Формальный параметр имеет синтаксис:
[Optional][ByVal|ByRef] имяПеременной[()][As тип][=значение]
Optional — означает, что параметр необязательный, т.е. при вызове процедуры он может быть опущен, но тогда и все следующие за ним параметры также должны быть необязательными.
ByVal — этот описатель указывает, что параметр передается по значению (этот описатель используется по умолчанию); передача параметра по значению означает, что в процедуру передается не сама переменная, а ее копия. Поэтому изменение параметра в теле процедуры не изменяет саму переменную.
ByRef — указывает, что этот параметр передается по ссылке (по адресу). Передача по ссылке означает, что в этом случае вызываемая процедура получает доступ к области памяти вызывающей процедуры, в которой эта переменная хранится. Значит при изменении параметра в вызываемой процедуре, происходит изменение значения переменной–параметра.
Оператор Exit Sub приводит к немедленному выходу из процедуры. Выполнение программы продолжается с оператора, следующего за оператором, содержащим вызов процедуры. Допускается наличие любого числа операторов Exit Sub.
Не допускается описание процедуры Sub внутри другой процедуры Sub или Function. Допускаются рекурсивные процедуры Sub; т.е. они могут вызывать сами себя для выполнения определенных задач.
Вызов процедуры может выполняться двумя способами:
Call
имя(списокФактическихПараметро
или
имя(
Фактические параметры замещают соответствующие формальные. Они должны согласовываться с формальными параметрами по порядку, типу и количеству.
20
В разработке программ широко применяется принцип модульного конструирования. В этом случае программа разбивается на отдельные части (блоки или модули) и каждый такой модуль оформляется определенным образом. В программировании такие модули называются подпрограммами. Различают подпрограммы-процедуры и подпрограммы-функции.
Процедура или функция — это логически законченный блок кода, предназначенный для выполнения конкретной задачи.
Такие фрагменты кода оформляются определенным образом, чтобы их можно было использовать многократно в любой части программы, а также в других программах.
Перечислим преимущества, которые дает использование процедур и функций, определяемых пользователем:
Начальное разбиение на отдельные модули надо начинать еще на этапе разработки алгоритма — технология пошаговой детализации сверху вниз.
Для каждого модуля необходимо определить:
- какую задачу он решает,
- что является входными данными,
- что является результатом,
- какой
метод решения стоит
Схема взаимодействия основной программы и подпрограммы
Подчеркнем различие между процедурами и функциями. Кстати сказать, в Visual Basic нет понятия подпрограммы, а есть процедура Sub (в последующем изложении будем иногда называть ее просто процедурой) и процедура Function (иногда будем называть ее функцией).
В начале обучения программированию стоит подчеркнуть, что главное содержательное (семантическое) отличие между процедурой и функцией в том, что функция вычисляет только одно значение, которое возвращается в точку вызова, а процедура не возвращает значение в точку вызова, но при этом может вычислять одно, ни одного или много значений. (На самом деле в Visual Basic функция может вычислять значения, передаваемые через параметры, но мы пока такую ситуацию не будем рассматривать)
19
Цикл с постусловием
Цикл с постусловием также используется для организации циклов с неизвестным заранее числом повторений.
Синтаксис
оператора цикла с
Do
[операторы]
[Exit Do]
[операторы]
Loop[{While | Until} условие]
В данном цикле первая проверка условия выполняется уже после выполнения операторов, входящих в тело цикла, поэтому при использовании данного варианта цикла тело цикла выполняется хотя бы один раз (в этом состоит основное отличие цикла с постусловием от цикла с предусловием).
В операторе цикла с ключевыми словами Loop While, переход на новое повторение тела цикла происходит, если условие имеет значение True.
Если используется Loop Until, то переход на новое повторение тела цикла происходит до тех пор, пока условие не примет значение True, т.е. когда условие принимает значение True, происходит выход из цикла.
В операторе
цикла с постусловием также как
и в операторе цикла с
18
Цикл с предусловием
Цикл с предусловием является универсальной конструкцией для организации циклов с неизвестным заранее числом повторений.
Синтаксис
оператора цикла с
Do [{While | Until} условие]
[операторы]
[Exit Do]
[операторы]
Loop
В операторе цикла с ключевым словом While, тело цикла выполняется, если условие имеет значение True. Если при первой же проверке условие окажется ложным, то тело цикла не выполняется ни разу.
Если используется ключевое слово Until, то тело цикла выполняется до тех пор, пока условие не примет значение True, т.е. когда условие принимает значение True, происходит выход из цикла.
Без задания условий While или Until тело цикла повторяется бесконечно, в этом случае выход из цикла организуется с помощью условного оператора и оператора Exit Do.
После завершения цикла выполняется оператор, следующий за оператором Loop.
Прервать выполнение цикла до срабатывания условия можно, задав в теле цикла оператор Exit Do.
В теле цикла должны быть операторы, влияющие на условие и меняющие его для выхода из цикла.
17
Цикл с параметром
Для организации циклов, число повторений (шагов, итераций) которых известно, используются циклы с параметром.
Синтаксис оператора цикла с параметром:
For парамЦикла = начЗначение To конЗначение [Step шаг]
[операторы]
[Exit For]
[операторы]
Next [парамЦикла]
Параметр цикла — любая числовая переменная; начальное значение, конечное значение и шаг параметра цикла — арифметические выражения, причем начальное и конечное значения вычисляются один раз перед входом в цикл и не пересчитываются при каждом повторении цикла. Шаг изменения параметра цикла может быть как положительным, так и отрицательным; если шаг опущен, то он полагается равным нулю.
При положительном значении шага, тело цикла будет выполняться при условии, что значение параметра цикла меньше или равно конечному значению параметра; для отрицательного шага — при условии, что значение параметра цикла больше или равно конечному значению.
Цикл может ни разу не выполняться, если не выполняется соответствующее условие. Могут возникнуть ситуации (результат ошибки), когда цикл выполняется бесконечно, в этом случае программа как бы «зависает». Попытаться прервать бесконечный цикл можно, нажав комбинацию клавиш Ctrl+Break.
Прервать выполнение цикла до достижения конечного значения можно, задав внутри цикла оператор Exit For. В этом случае происходит переход на оператор, следующий за строкой с оператором Next. Количество операторов Exit For в теле цикла не ограничено. Обычно Exit For включают в условный оператор, чтобы обеспечить дополнительный выход из цикла при нештатной ситуации.
Количество повторений цикла, называемое кратностью цикла, вычисляется следующим образом: к частному от деления разности конечного и начального значений параметра цикла на шаг нужно прибавить единицу.
16
15
Оператор выбора
Если имеется несколько операторов (блоков операторов), которые необходимо исполнить в случае истинности некоторого условия, то конструкция условного оператора может быть очень громоздкой. Оператор выбора Select Case является альтернативой условному оператору и позволяет выполнить один из вариантов выбора. При этом выражение, на основе которого делается выбор, вычисляется только один раз — в начале управляющей структуры — и выполняется выбор ветви из набора условий. Синтаксис оператора выбора:
Select Case выражение-селектор
Case список-выражений-1
Блок операторов_1
[ Case список-выражений-2
Блок операторов_2 ] ...
[ Case Else
Блок операторов_N ]
End Select
В качестве списка выбора варианта можно указать не только одно значение, но и несколько, разделенных запятыми. Можно определять также области сравнения (например, 4 To 10 ) или воспользоваться относительным сравнением (например, Is >=15).
Блок Case Else выполняется, если ни одно из предыдущих условий не является истинным.
14
Оператор условного перехода, или условный оператор, есть во всех языках программирования, семантика его во всех языках одинакова, поэтому мы должны, в основном, остановиться на различиях в синтаксисе написания оператора. В Visual Basic существует несколько типов условного оператора.
Многоблочный условный оператор является расширением двублочного оператора, и в зависимости от выполнения одного из проверяемых условий происходит переход на соответствующую ветвь и выполнение операторов этой ветви. Оператор имеет синтаксис: