Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamenVSYe_OTVYeT.docx
Скачиваний:
8
Добавлен:
13.04.2019
Размер:
278.81 Кб
Скачать

Условный оператор if

Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

а) Однострочный:

If условие Then операторы1 [Else операторы2]

б) Блочный:

If условие Then

блок операторов1

[Else

блок операторов2]

End If

в) Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор вида:

If условие 1 Then

блок операторов 1

ElseIf условие 2 Then

блок операторов 2

……………

ElseIf условие n Then

блок операторов n

[Else

блок операторов Else]

End If

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений – одно или несколько выражений, разделенных стандартным символом –разделителем(;).

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

  • выражение

  • выражение 1 To выражение 2

  • Is логический оператор(оператор сравнения) выражение

Например, Is >= 10

Программирование циклов

В VISAUL BASIC существуют три циклические конструкции операторов:

  1. For … Next

  2. While … Wend

  3. Do … Loop

Оператор цикла For … Next

Оператор цикла For…Next имеет формат:

For счетчик = начало To конец [Step приращение]

операторы

Next [счетчик]

Рассмотрим пример решения задачи, использующей цикл со счетчиком. Требуется найти сумму 10 чисел.

Private Sub Command1_Click()

Dim b(10) As Integer, s As Integer

s = 0

For i = 1 To 10

b(i) = Val(InputBox("Введите число"))

s = s + b(i)

Next

Print s

End Sub

Оператор цикла WHILE…WEND

Используется для организации циклов с предусловием и имеет следующий формат:

While условие продолжения цикла

операторы тела цикла

Wend

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

Private Sub Command1_Click()

Dim y As Single

y = InputBox("Введите число")

While y > 1

'MsgBox y

Print y

y = y / 2

Wend

End Sub

Оператор цикла DO…LOOP

Используется для организации циклов с неопределенным числом повторений (с предусловием и с постусловием).

Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:

а) Do While условие продолжения цикла

операторы тела цикла

Loop

б) Do Until условие прекращения цикла

операторы тела цикла

Loop

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

в) Do

операторы тела цикла

Loop While условие продолжения цикла

г) Do

операторы тела цикла

Loop Until условие прекращения цикла

42. Vb. Язык программирования visual basic. Понятие процедуры. Подпрограммы и функции. Модульный принцип построения программного кода

В Visual Basic весь программный код находится внутри процедур (подпрограмм). Общая структура описания подпрограммы Visual Basic:

Sub <имя_подпрограммы> [(<параметры>)] <операторы> End Sub

Такие процедуры могут вызываться или самим Visual Basic, или другими процедурами. Вызов подпрограммы выполняется с помощью следующих операторов:

  • Call <имя_подпрограммы> [(<параметры>)];

  • <имя_подпрограммы> [<параметры>]. Функция построена точно так же, как и процедура, однако результатом работы функции является возвращаемое значение (только одно).

Общая структура описания функции следующая:

Function <имя_функции> [(<аргументы>)] [As <Тип>] <операторы> <имя_функции> = <выражение> End Function

Вызов функции выполняется с помощью оператора; присваивания:

<переменная> = <имя_функции> {(<аргументы>)].

Использование принципов модульного программирования Windows-приложения в среде проектирования VB выражено в двух аспектах.

1. Разбиение программного кода на отдельные компактные модули.

В файле модуля формы (frm) содержится программный код, относящийся к форме и объектам этой формы. В стандартном (универсальном) модуле (bas) содержатся программные коды, которые могут использоваться не в одной, а в нескольких формах (и даже в нескольких проектах).

2. Разбиение программного кода уже внутри модуля на отдельные части — процедуры.

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

Общая процедура может входить в состав модуля экранной формы (в файл frm) или в состав стандартного модуля (в файл bas).

В Visual Basic есть три вида областей определения, характеризующих доступность переменной:

  • локальная: переменная доступна только в текущей процедуре;

  • контейнера: переменная доступна только в текущей форме, модуле или классе;

  • глобальная: переменная доступна во всем проекте. Локальными называются переменные, определяемые внутри процедуры или функции. Они доступны только внутри этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же именем. При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.

Переменные контейнера определяются в секции (General) (Declarations) с помощью оператора Dim и доступны только внутри соответствующего контейнера, т, е. формы, модуля или класса.

Глобальные переменные определяются в секции (General) (Declarations) модуля. При этом вместо оператора Dim используется Public. Глобальные переменные доступны во всех модулях и процедурах проекта.

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

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

Объявление переменной как статической производится оператором:

Static <Имя_переменной> [As <Тип_переменной>]

Чтобы объявить статическими все локальные переменные процедуры, следует записать ключевое слово Static в заголовке процедуры.

Полное описание общей процедуры выглядит следующим образом:

<ОбластьВидимости>] [Static] Sub <имяПроцедуры> (<Списокпараметров>) <Операторы> End Sub

Область видимости — это одно из двух ключевых слов Public или Private. Они устанавливают, к какому классу принадлежит процедура: к классу локальных или классу глобальных процедур. Процедура локальная (Private), если она доступна (видна) только внутри данного модуля и не может быть вызвана из других модулей. Процедура глобальная (Public), если она доступна (видна) из других модулей.

Наличие или отсутствие ключевого слова Static говорит о статусе локальных переменных, т. ё. переменных, объявленных внутри этой процедуры. При наличии этого слова локальные переменные будут сохранять свои значения между Последовательными вызовами этой процедуры. При отсутствии слова Static — не будут.

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

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

В Visual Basic параметры могут передаваться двумя способами:

  • как ссылки (ByRef);

  • как значение (ByVal).

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

По умолчанию параметры в Visual Basic передаются по ссылке, но можно указывать явно ключевое слово ByRef перед параметром в заголовке процедуры. Например,

Sub pr1(ByRef n As String)

При передаче параметра по значению Visual Basic передает копию содержимого переменной вместо ее адреса в памяти, и функция или процедура не сможет напрямую модифицировать исходное значение. Ключевое слово ByVal перед параметром должно указываться обязательно. Например, Function fkl (ByVal k As String) As Boolean.

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