Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Понятие переменной в программировании. Виды и типы переменных (Имена переменных)

Содержание:

Введение

В данной курсовой работе будет раскрыто понятие переменной, её виды и типы. Так же я затронул тему операторов присваивания, классификации и области действия переменных, в том числе на примере Visual Basic. Более подробно раскрыты понятия простых и сложных переменных, операторов присваивания, статистической и динамической типизации.

Понятие Переменная в программировании.

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

В программе на языке Python связь между данными и переменными устанавливается с помощью знака =. Такая операция называется присваиванием. Например, выражение sq = 4 означает, что на объект (данные) в определенной области памяти ссылается имя sq и обращаться к ним теперь следует по этому имени.

Схема операции присваивания значения переменной

Имена переменных могут быть любыми. Однако есть несколько общих правил их написания:

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

Чтобы узнать значение, на которое ссылается переменная, находясь в режиме интерпретатора, достаточно ее вызвать (написать имя и нажать Enter).

Пример работы с переменными в интерактивном режиме:

>>> apples = 100

>>> eat_day = 5

>>> day = 7

>>> apples = apples - eat_day * day

>>> apples

65

>>>

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

В языках программирования высокого уровня аналогом этих ячеек памяти является переменная. Отсюда следующее определение.

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

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

Тип данных

Размер

Диапазон значений

Пример использования

Interger (Целое)

2 байта

от -32 768 до 32 767

Dim Bird%

Bird% = 37

Long Integer (Длинное целое)

4 байта

от -2 147 483 648 до 2 147 483 647

Dim Loan&

Loan& = 350,000

Single - precision Floating point (Одинарной точности с плавающей десятичной точкой)

4 байтa

от -3.402823E38 до 3.402823E38

Dim Price!

Price! = 899.99

Double - precision Floating point (Двойной точности с плавающей десятичной точкой)

8 байт

от -1.79769313486232D308 до 1.79769313486232D308

Dim Pi#

Pi# = 3.1415926535

Currency (Денежные единицы)

8 байт

от -922337203685477.5808 до 922337203685477.5807

Dim Debt@

Debt@ = 7600300.50

String (Строка)

1 байт на символ

от 0 до 65 535 символов

Dim Dog$

Dog$ = "pointer"

Boolean (Логический)

2 байт

True (Истина) или False (Ложь)

Dim Flag As Boolean

Flag = True

Date (Дата)

8 байт

от January (Январь)1, 100, до December (Декабрь) 31, 9999

Dim Birthday As Date

Birthday =#3-1-63#

Variant (Вариант)

16 байт (для чисел); 22 байт на символ (для строк)

для всез типов данных

Dim Total

Total = 289.13

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

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

После трансляции программы в машинные коды каждой переменной в компьютере выделяется определенная область оперативной памяти со своим адресом. Делают это трансляторы при переводе кодов программы, написанной программистом, в машинные коды и операционная система.

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

Имена переменных

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

Некоторые требования при задании имен переменным:

  • имя должно начинаться с буквы;
  • имя может содержать любые буквы и цифры;
  • в имени не должно быть пробелов;
  • имена нельзя называть ключевыми словами VisualBasic;
  • в пределах области видимости имя должно быть неповторимым (уникальным).

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

Допустимые имена:

sngX, Data_Rogdenya, strNomerGruppi

Фамилия, NameStudent, Цена, Num_Room, D25

Недопустимые имена:

Date of Work, 5Numer, Next

(Next– слово из оператора циклаVB, ключевое словоVB).

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

Типы данных

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

  • целочисленные: байтовый – Byte (1)1 – префикс byt, значения: от 0 до 255; целый – Integer (2) – префикс int, значения целого: от –32768 до 32767; длинное целое – Long (4) – префикс lng, значения: от –2147483648 до 2147483648;
  • действительные с плавающей точкой: одинарной точности – Single (4) – префикс sng, значения: от –3,438…-1,445 до 1,4-45…3,438; двойной точности – Double (8) – префикс dbl, значения: от –1,7-308… -4,9-324 до 4,9-324… 1,7308;
  • действительные с фиксированной точкой, денежный: Currency (8) – префикс cur, значения: целая часть – 15 цифр, дробная – до 4;
  • строковые: String – префикс str, (фиксированной длины – 1б на символ), String (переменной длины, (22 + 1)б на символ);
  • логические – Boolean (2) – префикс bln, значения: True (Истина) или False (Ложь);
  • объектные: Object (4) – префикс obj;
  • произвольные: Variant – префикс vnt, (16 – для чисел; 22 – для 1-го символа);
  • даты: Date (8) – префикс dtm.

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

Выбор типа переменных – забота программиста. Если тип переменной выбран неправильно, выполнение программы может сразу или в один «прекрасный» момент прерваться. Например, если при определении суммы натуральных чисел S = 1 + 2 + 3 + …+ n переменную S объявить как Integer, то при сложении 256 чисел (n = 256) и более будет переполнение, так как сумма будет превышать число 32767, которое является максимальным для переменной целого типа.

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

Объявление переменных

Рассмотрим объявление переменных на примере языка Visual Basic.

В начале программы (процедуры) переменную рекомендуется объявлять с помощью оператора Dim (или Public, или Private, или Static). После оператора Dim (от английского Dimension – размер, величина) пишется имя переменной, затем ключевое слово As (как) и название типа переменной. Например:

Dim sngY As Single, curЦена As Currency, i As Integer

Dim ДатаРожд As Date

Static Баллы As Integer

Здесь переменные sngY иcurЦена приведены с префиксами.

Имена переменных еще называют идентификаторами (от английского Identification–отождествление, распознавание, обозначение). Интересно, что все возможные слова перевода соответствуют сути идентификатора, имени переменной.

В VB объявление переменных не обязательно. Но лучше, во избежание возможных ошибок программирования, приучить себя обязательно объявлять переменные. Для этого достаточно ввести в разделе General Declarations Окна написания кодаоператор Option Explicit. После этого VB не пропустит ни одного необъявленного переменного.

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

Оператор присваивания

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

Имя Переменной = Выражение

В качестве выражения может быть записана не только формула, но и константа (числовая, текстовая, дата, значение логической переменной и т. д.). Понимается этот оператор так: «Значение выражения, которое всегда записывается справа от оператора присваивания, присваивается переменной, имя которой всегда записывается слева от знака присваивания».

Например:

A= 125

Fam = “Сидоров И.В.”

Y = Sin(x) + Cos(x/2)

k = k + 1

В третьей строке примера вычисляется выражение и его значение присваивается переменной Y. Следует отметить, что переменная х обязательно должна получить некоторое значение перед вычислением выражения Sin(x) + Cos(x/2), иначе случится аварийный останов программы.

Оператор типа k = k + 1 называется счетчиком. Счетчик демонстрирует отличие знака равенства от оператора присваивания. С точки зрения алгебры выражение для счетчика – полная бессмыслица, так как, сократив k, мы получаем, что 0 = 1 (!?). А согласно правилам программирования – величина k увеличивается на 1. Действительно, в выражении справа значениеk, которое имело оно к моменту выполнения этого выражения, складывается с 1 и присваивается опять же переменной k.

Сохранение данных в переменных А, Fam, Y, kс помощью оператора присваивания показано во всех приведенных кодах примера.

Получение данных из переменных х и k демонстрируют третий и четвертый коды примера. Это происходит всегда, когда имена переменных записываются в выражениях, следующих после оператора присваивания “=”. При выводе переменных с помощью оператора Print также происходит получение данных из переменных, если их имена записаны после этого оператора.

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

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

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

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

В случае, когда разрабатываемое приложение состоит из нескольких форм и в них используются одни и те же переменные, то эти общие для всех форм и процедур переменные следуют объявлять в разделе General Declarations программного модуля Module. Такие переменные называются глобальными в приложении.

В кратком и в систематизированном виде все изложенное выше приведено в следующей таблице.

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

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

Место объявления

Глобальная в приложении

В разделе General Declarations программного модуля Module оператором Public

Локальная в форме

В разделе General Declarations формы оператором Dim или Public

Локальная в процедуре

В процедуре оператором Dim или Static

Классификация

Статическая и динамическая типизация переменных

Статическая типизация — приём, широко используемый в языках программирования, при котором переменная, параметр подпрограммы, возвращаемое значение функции связывается с типом в момент объявления и тип не может быть изменён позже (переменная или параметр будут принимать, а функция — возвращать значения только этого типа). Примеры статически типизированных языков — Ада, С++, D, Java, ML, Паскаль.

Преимущества:

  • Статическая типизация даёт самый простой машинный код. Поэтому она удобна для языков, дающих исполняемые файлы ОС или JIT-компилируемые промежуточные коды.
  • Многие ошибки исключаются уже на стадии компиляции.
  • Поэтому статическая типизация хороша для написания сложного, но быстрого кода.
  • В интегрированной среде разработки осуществимо более релевантное автодополнение, особенно если типизация — строгая статическая: множество вариантов можно отбросить как не подходящие по типу.
  • Чем больше и сложнее проект, тем большее преимущество дает статическая типизация, и наоборот.

Недостатки:

  • Языки с недостаточно проработанной математической базой оказываются довольно многословными: каждый раз надо указывать, какой тип будет иметь переменная. В некоторых языках есть автоматическое выведение типа, однако оно может привести к трудноуловимым ошибкам. Нивелируется функциями IDE вроде quick fix.
  • Тяжело работать с данными из внешних источников (например, в реляционных СУБД / десериализация данных).

Динамическая типизация — приём, широко используемый в языках программирования и языках спецификации, при котором переменная связывается с типом в момент присваивания значения, а не в момент объявления переменной. Таким образом, в различных участках программы одна и та же переменная может принимать значения разных типов. Примеры языков с динамической типизацией — Smalltalk, Python, Objective-C, Ruby, PHP, Perl, JavaScript, Lisp, xBase, Erlang.

В некоторых языках со слабой динамической типизацией стоит проблема сравнения величин, так, например, PHP имеет операции сравнения «==», «!=» и «===», «!==», где вторая пара операций сравнивает и значения, и типы переменных. Операция «===» даёт true только при полном совпадении, в отличие от «==», который считает верным такое выражение: (1=="1"). Стоит отметить, что это проблема не динамической типизации в целом, а конкретных языков программирования.

Преимущества:

    • Упрощается написание несложных программ, например, скриптов.
    • Облегчается работа прикладного программиста с СУБД, которые принципиально возвращают информацию в «динамически типизированном» виде. Поэтому динамические языки ценны, например, для программирования веб-служб.
    • Иногда требуется работать с данными переменного типа. Например, функция поиска подстроки возвращает позицию найденного символа (число) или маркер «не найдено». В PHP этот маркер — булевое false. В языках со статической типизацией это особая константа (0 в Паскале, std::string::npos в C++).

Недостатки:

  • Статическая типизация позволяет уже при компиляции заметить простые ошибки «по недосмотру». Для динамической типизации требуется как минимум выполнить данный участок кода.
  • Особенно коварны в динамическом языке программирования опечатки: разработчик может несколько раз просмотреть неработающий код и ничего не увидеть, пока наконец не найдёт набранный с ошибкой идентификатор.
  • В объектно-ориентированных языках не действует, либо действует с ограничениями, автодополнение: трудно или невозможно понять, к какому типу относится переменная, и вывести набор её полей и методов.
  • Развитая статическая система типов (такая как Хиндли-Милнер) играет значительную роль в самодокументировании программы[1]; динамическая типизация по определению не проявляет этого свойства, что затрудняет разработку структурно сложных программ.
  • Снижение производительности из-за трат процессорного времени на динамическую проверку типа, и излишние расходы памяти на переменные, которые могут хранить «что угодно». К тому же большинство языков с динамической типизацией интерпретируемые, а не компилируемые.
  • Невозможна перегрузка процедур и функций по типу данных — только по количеству операндов.

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

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

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

Статические и динамические переменные

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

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

Локальные и глобальные переменные. Области видимости

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

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

Простые и сложные переменные

По наличию внутренней структуры, переменные могут быть простыми или сложными (составными).

Простые переменные не имеют внутренней структуры, доступной для адресации. Последняя оговорка важна потому, что для компилятора или процессора переменная может быть сколь угодно сложной, но конкретная система (язык) программирования скрывает от программиста её внутреннюю структуру, позволяя адресоваться только «в целом».

Рассмотрим подробнее простой тип.

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

  • работа с объектами осуществляется с помощью конструкций языка;
  • внутреннее представление значений объектов может зависеть от реализации транслятора (компилятора или интерпретатора) и от платформы;
  • объекты не включают в себя другие объекты и служат основой для построения других объектов (см. составной (сложный) тип).

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

Как правило, к простым относятся числовые типы:

  • целочисленные типы:
    • типы для хранения целых чисел с разной точностью;
    • типы для хранения символов строк;
    • тип для хранения значений true и false;
    • тип для хранения одного значения из конечного множества;
  • вещественные типы:
    • типы для хранения вещественных чисел с разной точностью;
  • и другие.

В каждом языке программирования доступны разные простые типы данных. Например, в некоторых языках для контролеров с программируемой логикой имеются простые типы для хранения времени. Способы записи констант разных типов определяются стандартом языка. Например, запись 1 может описывать константу целого типа, а запись 1.0 - вещественного.

Введение простых типов преследовало несколько целей:

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

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

    • функция для получения знака числа;
    • функция для получения модуля числа;
    • функция для проверки чётности/нечётности числа;
    • функции для получения целой и дробной частей вещественного числа;
    • функции для приведения типов с округлением или без.

Некоторые языки (например, C и C++) не ограничивают программиста в выборе способа обработки значений простых типов, даже позволяют определить поля для простого типа.

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

Самыми характерными примерами сложных типов являются массив (все элементы однотипные) и запись (элементы могут иметь разный тип).

Следует подчеркнуть относительность такого деления: для разных программ одна и та же переменная может иметь разную структуру.

Например, компилятор различает в переменной вещественного типа 4 поля: знаки мантиссы и порядка, плюс их значения, но для программиста, компилирующего свою программу, вещественная переменная — единая ячейка памяти, хранящая вещественное число.

Рассмотрим подробнее сложный тип.

Сложный (составной) тип — тип данных, объекты (переменные или постоянные) которого имеют внутреннюю структуру, доступную программисту.

В разных языках программирования набор базовых сложных типов может несколько отличаться (чаще по названию и деталям реализации). Есть, однако, объективные критерии — однотипность элементов и способ доступа, позволяющие выделить главные представители сложных типов (названия приводятся на примере Pascal, в котором Н.Вирт наиболее чётко сформулировал эти идеи).

      • Массив (array) — элементы только однотипные, доступ произвольный;
      • Запись (record) — элементы возможно разных типов, доступ произвольный;
      • Файл (file) — элементы однотипные, доступ последовательный (примечание: не путать с дисковым файлом!).

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

Очень важной идеей, также родившейся на границе 60-70-х годов XX века, является возможность произвольного конструирования нужных структур из небольшого набора предопределённых типов. Чем адекватнее программист смоделировал обрабатываемые данные в рамках такого «конструктора», тем безошибочнее и долговечнее будет разработанная программа.

Переменные на примере языка Visual Basic

VBA поддерживает несколько ограничений в именовании переменных:

      • Можно использовать в названиях символы букв, числа и некоторые знаки препи­нания, но первой в имени переменной всегда должна вводиться буква.
      • VBA не различает регистры.
      • Нельзя использовать в именах пробелы или точки.
      • Чтобы сделать имена переменных удобочитаемыми, используют смешанный регистр (например, InterestKate , а не interestkate ) или вводят символ подчеркивания ( lnterest _ Rate ).
      • Специальные символы объявления типов (#, $, %, & или !) не применяются в имени переменной.
      • Названия переменных ограничены длиной 254 символов.
      • Не допускается применять в качестве названий переменных или процедур зарезервированные слова, т.е. такие слова, которые используются VBA .

Определение типов данных

  • Тип данных указывает, в каком виде данные хранятся в памяти: как целые значения, дей­ствительные числа, текст н т.п.
  • VBA может автоматически типизировать данные, что приводит к медленному выполнению операций и не эффективному использованию памяти.
  • При явном объявлении типа данных всех используемых пе­ременных VBA может выполнять дополнительную проверку ошибок на эта­пе компиляции.
  • При явном объявлении типа данных программа работает быстрее и занимает меньше места в оперативной памяти.
  • Чтобы обеспечить обязательное объявление всех используемых переменных, необходимо включить строку
  • Option . Explicit
  • в качестве первой инструкции в модуле VBA .

Чтобы в тексте программы распознать тип данных переменной или константы можно использовать стандартную приставку (префикс) в нижнем регистре в названии переменной в соответствии с приведенной таблицей.

Префикс

Тип данных

b

Boolean

i

Integer

l

Long

s

Single

d

Double

c

Currency

dt

Date / Time

str

String

obj

Object

v

Variant

u

Пользовательский

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

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

Область действия

Способ объявления переменной

Отдельная процедура

В процедуру включается оператор Dim или static

Отдельный модуль

Перед первой процедурой в модуле вводится оператор Dim или private

Все модули

Перед первой процедурой в модуле вводится оператор Public

Локальные переменные

  • Локальная переменная — это переменная, объявленная в процедуре.
  • Локальные перемен­ные могут использоваться только в процедуре, в которой они объявлены.
  • После выполнения процедуры переменная становится невостребованной, поэтому Excel освобождает соответст­вующую область памяти.
  • Если требуется сохранить значение переменной, объявите ее как static .
  • Чтобы объявить локальную переменную — вставьте оператор Dim между операторами Sub и End Sub .
  • Dim – сокращение от Dimension (Размерность). В старых версиях BASIC этот оператор использовался исключительно для объявления размерности массива.
  • Другой способ указания типа данных для переменной : язык VBA позволяет присоединить символ к на­званию, чтобы указать ее тип данных.
  • Пример, можно объявить пере­менную MyVar как целое число, добавив к ее названию символ %: Dim MyVar %
  • Символы объявления типов данных представлены для большинства типов данных VBA (отсутствующие в таблице типы данных не имеют собственного символа объявления типа).

Тип данных

Символ объявления типа

Integer

%

Long

&

Single

!

Double

#

Currency

@

String

S

Переменные уровня модуля

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

В приведенном ниже примере оператор Dim — первая инструкция в модуле. Обе проце­дуры MySub и YourSub имеют доступ к переменной CurrentValue .

Dim CurrentValue As Integer

Sub MySub{)

' -[Здесь вводится текст процедуры] -

End SUb

Sub YourSub()

'-[Здесь вводится текст процедуры] -

End Sub

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

Переменные Public

Чтобы сделать переменную доступной во всех процедурах всех модулей VBA в проекте, необ­ходимо объявить переменную на уровне модуля с помощью ключевого слова Public перед первой процедурой модуля, например, так:

Public CurrentRate as Long

Код объявления пере­менных Public должен вводиться в стандартном модуле VB А, а не в коде модуля листа или формы.

Переменные Static

Переменные Static — особый случай. Они объявляются на уровне процедуры и сохра­няют свое значение после окончания процедуры.

Sub MySub()

Static Counter As Integer

'-[Здесь вводится текст процедуры] –

End Sub

Операторы присвоения

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

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

В VBA оператором присвоения выступает знак равенства (=).

Примеры использования операторов присвоения (выражения приводятся справа от знака равенства):

х = 1

X = X + 1

х = ( у * 2) ! ( г * 2) FileOpen = True FileOpen = Not FileOpen Range С "The Year").Value = 2001

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

Зачастую в выражениях применяются функции. Это могут быть встроенные функции VBA , функции рабочих листов Excel или специальные функции, разработанные в VBA .

Список литературы

  1. Информатика: Учебник/под ред. Н.В. Макаровой. - М.: Финансы и статистика, 2000. - 768 с.
  2. Информатика. Базовый курс. Учебник для Вузов/под ред. С.В. Симо-новича, - СПб.: Питер, 2000.
  3. Симонович С. В., Евсеев Г.А., Практическая информатика, Учебное пособие. М.: АСТпресс, 1999.
  4. Фигурнов В. Э. IBM PC для пользователя. М.: Инфра-М, 2001 г.
  5. Симонович С.В., Евсеев Г.А., Алексеев А.Г. Специальная информатика, Учебное пособие. М.: АСТпресс, 1999.
  6. Информатика: Практикум по технологии работы на компьютере./ Под ред. Н.В. Макаровой. - М.: Финансы и статистика, 2000 .
  7. А.В.Могилев, Н.И.Пак, Е.К.Хеннер, Информатика, Учебник для ВУЗов – М.: Издательство Academa, 1999.
  8. Денисов А., Вихарев И., Белов А.. Самоучитель Интернет. – Спб: Питер, 2001. - 461 с.
  9. Евдокимов В.В. и др. Экономическая информатика. Учебник для вузов. Под ред. д. э. н., проф. В.В. Евдокимова. СПб.: Питер паблишинг, 1997.
  10. Основы современных компьютерных технологий. Ред. Хомченко А.Д.
  11. Бойс Д. Осваиваем Windows 95. Русская версия. 1997.
  12. Шкаев А.В. Руководство по работе на персональном компьютере. Спра-вочник. М.: Радио и связь, 1994 г.