Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по курсу Информатика NEW.doc
Скачиваний:
94
Добавлен:
26.02.2016
Размер:
6.33 Mб
Скачать

6.2. Основные конструкции программирования

Язык программирования предоставляет программисту абстрактную модель, в которой объекты данных и операции специфицированы в проблемно-ориентированных терминах.

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

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

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

-литералы;

-именованные константы.

Литерал представляет собой буквальную запись значения константы. Например, 25 — это десятичная форма записи целочисленной константы, представляющей собой объект данных со значением 25. Форма записи значений литералов предопределенного типа задается в языке.

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

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

Основные понятия языка Visual Basic. Инструкции в Visual Basic.

Комментарии.

Существует два способа обозначения комментариев. Наиболее общий состоит в использовании символа одинарной кавычки.

Private Sub Commandl_Click() 'Комментарий к процедуре может находится здесь'

End Sub

Второй способ состоит в использовании зарезервированного слова Rem.

Private Sub Command l_Click()

Rem Комментарий к процедуре может находится здесь

End Sub

Присваивание и установка свойств.

Присваивание значений переменным и установка значений свойств представляет собой две основные операции в Visual Basic-Имя переменной всегда находится слева, а ее значение справа.

Оператор присваивания в Visual Basic можно рассматривать как способ присвоения переменной нового значения. Если необходимо установить новое значение, какого-либо свойства для объекта Visual Basic требуется разместить его название, за которым после точки следует название свойства с левой стороны- оператора присваивания, а значение с правой.

Объект.Свойство = Значение

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

Например: Изменение свойства Left при нажатии командной кнопки. При этом форма должна сдвинуться на 75 твипсов (twips).

Private Sub Command1_Click()

Form1.Left=Form1.Left - 75

End Sub

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

Переменные.

В Visual Basic переменные хранят информацию. При их использовании Visual Basic резервирует область памяти в компьютере. Имена переменных могут достигать 255 символов в длину. Начинаются они с буквы, за которой могут следовать другие буквы, цифры или символы подчеркивания. Регистр символов значения не имеет. В качестве имен новых переменных нельзя использовать зарезервированные слова. Например: Print. Однако такие слова могут присутствовать как часть имени переменной, например PrintIt.

Типы переменных.

Visual Basic работает с 14-стандартными типами переменных, кроме того программист может определить собственный тип данных. Основными из них являются:

String - строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа «$» к концу его имени. Например - АВС$.

Такая переменная может содержать до 2 млрд. символов. Одно из наиболее основных применений состоит в выборе информации из полей ввода. Например, если есть поле ввода с именем Text1, то тогда оператор присваивает строку из поля ввода переменной в левой части данного оператора.

A$=Text1.Text.

Integer - целочисленные переменные могут хранить только относительно небольшие целые числа в диапазоне от – 32768 до + 32767. Арифметические операции над такими числами выполняются очень быстро. Для обозначения такого типа используется символ «%».

Например: А%=5.

Long Integer - в таких переменных хранятся целые значения от – 2,15*109 до +2,15*109. Обозначается символом «&». Например: В&=1234567

Single Precision - идентификатор для данных чисел является символ «!». Данный тип позволяет хранить дробные числа с точностью до 7 знаков. Это означает, что если получается результат «12345678.97» то часть «8.97» не является точной. Результат может быть равен, к примеру «12345670.01».

Действия выполняются медленнее, чем с целочисленными переменными. Диапазон от -3,4*1038 до -1,4*10-45 для отрицательных чисел и от 1,4*10 –45 до 3,4*1038 для положительных.

Double Precision - переменные такого типа позволяют хранить числа с точностью до 16 цифр и длинной до 300 символов. Идентификатором является символ «#». Скорость вычисления с ними относительно небольшая.

Currency - он создан для того чтобы избежать ошибок при преобразовании десятичных чисел в двоичную систему и наоборот. Данный тип может иметь до 4 цифр после запятой и до 15 перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой «@». Данный тип является предпочтительным для проведения финансовых расчетов.

Date - этот тип данных позволяет хранить значение времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Такие значения в тексте программы обозначаются символами «#».

Например - Millenium = # January 1, 2001#

Byte - этот тип предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память (1 байт) и уменьшить размер массивов.

Boolean - булев тип данных может хранить только два значения: True либо False.

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

Объявление переменных. Оператор Dim.

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

Dim A As Integer

Dim B As String

Объявления переменных можно комбинировать в одной строке.

Dim A As Integer, Name As Integer

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

Dim X, Y, Z As Integer

В предположение того, все переменные будут целочисленные. Фактически X и Y будут объявлены как Variant и только Z как Integer. Чтобы избежать этого, необходимо каждый раз использовать идентификатор типа. Если переменная объявлена при помощи оператора Dim, в случае использования переменной с тем же именем и другим идентификатором типа произойдет ошибка «двойное определение» при загрузке программы.

При присвоении переменной типа Variant, можно использовать оператор - Dim без приставки - AS. Например:

Dim FOO

Необходимость объявления переменных.

Одной из наиболее общих ошибок в программе является использование необъявленных переменных. Проблема состоит в том, что Visual Basic позволяет создать переменную, как только она один раз встречается в программе. Если перепутать имя переменной, Visual Basic создает новую с похожим именем и присваивает ей значение по умолчанию, что тут же приводит к ошибке. Эту ошибку трудно обнаружить, поскольку имена переменных очень похожи.

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

Для общей проверки переменных в программе необходимо оператор Option Explicit разместить в раздел General.

Для того чтобы разместить данный оператор в разделе General необходимо:

1) Открыть окно Code

2) Выбрать объект General из списка объектов в окне Object

3) Выбрать Declaration из списка Procedure

4) Ввести Option Explicit.

Изменение значений по умолчанию для типов

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

DefInt A-Z

Основные формы операторов различных DefType

Функции

Результат

DefInt

DefLng

DefSng

DefDbl

DefCur

DefStr

DefVar

DefBool

DefByte

DefDate

Диапазон букв для Integer

Диапазон букв для Long Integer

Диапазон букв для Single Precision

Диапазон букв для Double Precision

Диапазон букв для Currency

Диапазон букв для String

Диапазон букв для Variant

Диапазон букв для Boolean

Диапазон букв для Byte

Диапазон букв для Date

Соглашения о типах можно всегда изменить, используя идентификатор, или оператор Dim для конкретной переменной. Обычно оператор DefType размещает в том же разделе (General), что и оператор Option Explicit.

Область видимости переменных

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

Кроме того, Visual Basic позволяет объявить переменные, которые будут доступны для всех процедур формы. Такие переменные называют глобальными переменными уровня формы, как и оператор Option Explicit - объявление переменных уровня формы происходит в разделе Declaration

  • Например: если открыто окно Code, можно выбрать Declaration для объекта General и ввести:

  • Dim AZ As Currency

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

Динамические и статические переменные.

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

Однако это недостаточно в некоторых ситуациях.

Например: необходимо отследить сколько раз была нажата командная кнопка. Если счетчик будет все время сбрасываться, сосчитать будет невозможно.

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

Static Z As Integer

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

Private Sub Command1_Click()

Static Counter As integer

Counter = Counter + 1

Print Counter

End sub

При первом щелчке счетчику присваивается значение по умолчанию ноль. Затем Visual Basic добавляет к нему единицу и затем выводит результат.

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

Static Private Sub Command 1_Click ( )

Строки.

Для того чтобы сложить две строки вместе (конкатенация) можно использовать операторы & или +

Например:

Title$ = «Queen»

Name$ = «Elizabeth»

Numeral$ = «I»

A$ = Title$ & Name$ & Numeral$

Результат - «Queen Elizabeth I»

Оператор & объединяет строки в том порядке, как они представлены.

Основным отличием оператора & от + является возможность использования оператора & для объединения строковых данных c другими типами. Например: C = A% & B$ объединяет целочисленную и строковую переменные, изменяя тип их значений на Variant.

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

Например: вывод многостроковой информации в поле ввода и информационной панели.

TextString$ = «Visual» + vbCrLf

TextString$ = TextString$ + «Basic» + vbCrLf

TextString$ = TextString$ + «for Windows»

Text1.Text = TextString$

MsgBox TextString$

Строки фиксированной длины

Подобные переменные создаются при помощи оператора Dim. Например:

Dim ShortString As String * 5

Если присвоить переменной ShortString более длинную строку, например:

ShortString = «abcdefg»

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

ShortString = «abcde»,

и обратно, если присвоить строке более короткую строку, например: «abc», то к новому значению справа добавятся недостающие до пяти символов пробелы.

Числа и константы.

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

Для того чтобы преобразовать строку цифр в число используется встроенная функция Val.

Val («3001») = 3001

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

Val («300Something») = 300

Аналогичным образом можно преобразовать число в строку символов простейшим способом является использование функции Str.

Str (123), результат - «123».

Операции над числами.

Существует пять фундаментальных операций:

1. «+» - сложение.

2. «-» - вычитание (обозначение отрицательных чисел).

3. «/» - деление.

4. «*» - умножение.

5. «^» - возведение в степень.

Для целых и длинных целых существует ещё две арифметические операции.

«\» - целочисленное деление

«Моd» - остаток после целочисленного деления. Например:

7\3 = 2

7 Моd 3 = 1

Работа с переменными типа Date.

Если к переменной типа Date добавить или отнять от нее целое число, то хранимая дата увеличится или уменьшится на соответственное количество дней, дробная часть числа будет влиять на время внутри одного дня. Например:

Dim FOO As Data

FOO = Now

Print FOO

Print FOO - 1000

При этом выведется текущая дата и время, и время и дата на 1000 дней назад.

Скобки и порядок выполнения операций.

При выполнении вычислений существуют два способа, позволяющих указать порядок, в котором должны происходить операции. Первый состоит в применении скобок. Например, 5*(3+4), приоритет операций в скобках дает результат 35.

Второй - это порядок иерархии в выполнении арифметических операций:

1. Возведение в степень.

2. Изменение знака числа (с положительного на отрицательный).

3. Умножение и деление.

4. Целочисленное деление.

5. Операция Mod.

6. Сложение и вычитание.

Преобразование типов данных.

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

Функции

Результат

CInt

CLnq

CSnq

CDbl

CCur

CStr

CVar

CBool

CByte

CDate

Округляет число до целого

Округляет число до длинного целого

Преобразует число с обычной точностью

Преобразует число с двойной точностью

Преобразует число Currency

Преобразует любые выражения в строку

Преобразует любое выражение к типу Variant

Преобразует число к типу Boolean

Преобразует число к типу Byte

Преобразует подходящее выражение в дату.