Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Степанова Т.И. и др. Информатика.pdf
Скачиваний:
239
Добавлен:
31.03.2015
Размер:
1.3 Mб
Скачать

2. Тело цикла будет выполняться до тех пор, пока значение условия ложно. DO UNTIL <условие>

<оператор 1>

<оператор n>

LOOP

Чтобы прервать цикл до его завершения и передать управление первому оператору, следующему за LOOP, используют оператор EXIT DO.

2.2.10.3.Операторы циклов с постусловием

1.Тело цикла будет выполняться до тех пор, пока значение условия ложно.

DO

<оператор 1>

<оператор n>

LOOP UNTIL <условие>

2.Тело цикла будет выполняться до тех пор, пока значение условия истинно.

DO

<оператор 1>

<оператор n>

LOOP WHILE <условие>

2.2.11.МАССИВЫ

ÂVisual Basic различают два вида переменных — простые переменные и переменные структурного типа. Переменные структурного типа предназначены для идентификации нескольких данных. Частным случаем переменной структурного типа является массив.

Массив — это упорядоченный набор однотипных значений — элементов массива.

Массив имеет имя, размер и базовый тип, которые задаются при описании массива. Тип элементов массива определяет тип самого массива и называется базовым типом.

Имя массива записывается по тем же правилам, что и имена переменных. Имя массива задает имя каждому элементу массива: каждый элемент массива обозначается этим именем и индексом, который определяет номер (место) этого элемента в массиве.

Размер (или размерность) массива — это количество элементов в массиве.

Массивы могут быть одномерными и многомерными. Но мы ограничимся рассмотрением только одномерных и двумерных массивов.

Одномерные массивы — массивы, в которых элементы пронумерованы последовательно по порядку: первый элемент, второй, третий и т.д. Для обозначения элементов одномерного массива используется один индекс.

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

Значения индексов можно задать непосредственно числом (прямая адресация) — a(1), a(4,2) или косвенно, указав в индексе идентификатор переменной, которая позволит вычислить индекс (косвенная адресация) — a(i), a(i, j+2).

При работе с массивами в программе они должны быть объявлены (описаны), т.е. указаны имя массива, тип элементов массива, его размерность.

При обращении к элементу массива, значение индекса которого выходит за допустимые границы, появляется сообщение об ошибке.

Синтаксис оператора описания массива:

[Public/Private] DIM <ИмяМассива>(<размерность>) AS <ТипДанных>

113

Âкачестве размерности указывается либо верхняя граница изменения индекса, либо конкретный диапазон изменения значений индексов: Iн TO Iê.

Пример:

DIM s1 (15), s2 (15) AS STRING DIM c (9,11) AS INTEGER

Нижняя граница изменения индексов по умолчанию равна 0. То есть если описан массив: DIM a(15) AS INTEGER

это значит, что можно обращаться к элементам: a(0), a(1), a(2), a(3), …, a(15).

Для изменения начала отсчета индексов служит специальный оператор, который устанавливает начало отсчета либо с 0, либо с 1:

OPTION BASE 1

Âэтом случае:

DIM a(15) AS INTEGER описывает массив a(1), a(2), …, a(15).

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

Количество элементов в динамическом массиве и его размерность в процессе выполнения программы можно переопределить с помощью оператора ReDim. Например:

Dim s ( ) As String

n = 15 ReDim s (n)

2.2.12. ПРОЦЕДУРЫ И ФУНКЦИИ

Рассмотрим элементы, которые могут входить в состав проекта.

Процедура представляет собой поименованную последовательность совместно выполняемых инструкций (операторов).

Различают следующие типы процедур:

процедуры обработки событий;

процедуры макросов;

процедуры пользователя.

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

Private Sub <ИмяОбъекта_Событие( )>

<Код обработки события>

End Sub

ãäå ИмяОбъекта — имя объекта, с которым связывается процедура; Событие — вид обрабатываемого события.

Например, процедура обработки события Click (щелчок) для объекта CommandButton1 (кнопка) имеет вид:

Private Sub CommandButton1_Click( )

<Код обработки события>

End Sub

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

Sub <Имя макроса( )>

<Программный код макроса>

End Sub

114

Процедура пользователя создается им для выполнения каких-либо типовых действий в рамках разрабатываемой программы. Синтаксис процедуры пользователя:

[Private/Public] Sub <ИмяПроцедуры [(СписокПараметров)]>

<Тело подпрограммы (строки кода)>

End Sub

Необязательный элемент <СписокПараметров> программы служит для передачи процедуре исходных данных для вычислений и состоит из элементов списка, разделенных запятыми. Элемент списка параметров имеет синтаксис:

<ИмяЭлемента> As <ТипДанных>

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

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

Visual Basic позволяет пользователю создавать собственные функции — функции пользователя.

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

[Private/Public] Function <ИмяФункции [(СписокПараметров)]>_As<Тип данных>

<Тело функции (строки кода)> <ИмяФункции> = <ВозвращаемоеЗначение>

End Function

ãäå <Тип данных> — тип данных возвращаемого значения; <ВозвращаемоеЗначение> — значение, возвращаемое функцией.

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

При обращении к функции в программном операторе указывается имя функции и передаваемые ей параметры.

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

âзависимости от особенностей решаемой задачи в одном или нескольких модулях. Число модулей

âсоставе проекта зависит от сложности проекта.

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

2.2.13. ОТЛАДКА ПРОГРАММ

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

При разработке приложений на Visual Basic также возможны ошибки. Их можно разделить на три вида: синтаксические, ошибки при выполнении программы и логические ошибки.

Синтаксические ошибки связаны с опечатками при вводе текста программ или с недостаточным знанием правил языка программирования. Такие ошибки система выявляет либо при вводе текста программы, либо при попытке выполнения программы.

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

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

Устранение ошибок программирования — это отладка. А доказательство того, что программа работает «правильно», — верификация. При отладке и верификации программы необходимо

115

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

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

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

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

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

выполняют программу в пошаговом режиме для проверки каждой строки кода программы в порядке ее выполнения;

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

создаются специальные процедуры — обработчики ошибок, которые вызываются в случае

возникновения ошибок при выполнении программы.

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

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

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

Контрольные вопросы

1.Какие языки относятся к языкам высокого уровня?

2.Чем отличается интерпретация от компиляции?

3.Дайте определение объекта, свойства, класса объектов.

4.Что такое метод обработки объекта?

5.Что такое событийное программирование?

6.Как представляется в памяти компьютера числовая, текстовая информация?

7.Что такое программа?

8.Какие два этапа включает в себя создание программы на VB?

9.Перечислите типы переменных, используемые в Visual Basic.

10.Что такое пользовательский тип?

11.Для чего объявляют переменные?

12.Как работает оператор присваивания?

13.Назовите правила записи арифметических выражений.

14.Как записываются простые и сложные логические выражения?

15.Сформулируйте правила записи оператора IF.

16.Что такое вложенный оператор IF?

17.Какие операторы используются для программирования циклических процессов?

18.В чем различие модулей-процедур и модулей-функций?

19.Что такое массив? Как описываются массивы?

20.Что значит отладить программу?

116