
- •Основы алгоритмических языков программирования Понятие о языках программирования. Современные языки программирования высокого уровня
- •Лексические единицы языков программирования
- •Интегрированные среды разработки программ
- •История развития технологии vba
- •Интегрированная среда разработки vba
- •Составные части vba-проекта. Добавление пользовательского кода
- •Вывод отладочных сообщений. Пошаговое выполнение и инструменты отладки
- •Концепция памяти. Переменные и их декларация в языках программирования
- •Структурные операторы в алгоритмических языках программирования
- •Управляющие структуры выбора
- •Данная логическая операция имеет следующую таблицу истинности, в которой «0» соответствует значению false, а «1» – true (табл 1).
- •Остальные логические операторы являются двухоперандными. Операция логического умножения and имеет следующую таблицу истинности (табл 2):
- •Наконец операция логического исключающего или представляется следующей таблицей истинности (табл 4):
- •Реализация управляющих структур выбора в vb
- •Циклические управляющие структуры
- •Реализация циклических управляющих структур в vb
- •Цикл с постусловием имеет похожий синтаксис:
- •Основные положения процедурного программирования
- •Реализация процедурного программирования в Visual Basic
- •Фундаментальные структуры данных
- •Массивы в vb
- •Агрегация разнородных типов. Структурные типы данных
- •Тип данных определяемый пользователем в vb
- •Основы объектно-ориентированного программирования
- •Реализация основных идей объектно-ориентированного программирования в языке vb. Поля и методы. Конструирование объекта класса. Адресная природа объекта класса
- •Свойства и события в vb. Связь объекта класса и его клиентов
- •Интерфейс класса в vb и его наследование
Концепция памяти. Переменные и их декларация в языках программирования
Базовой концепцией всех языков программирования является концепция памяти, суть которой заключается в возможности хранения данных в особых объектах программы. Эти объекты получили название переменных(variable). Переменная используется для временного хранения некоторого значения в течение исполнения программы. Это значение может изменяться в ходе работы программы.
Каждой переменной в физической памяти распределенной для программы сопоставлены одна или несколько ячеек памяти, в зависимости от типа данных, который представляет переменная. Например, целая 32-битная перемененная x= 23435345cадресомnбудет занимать четыре смежных ячейки памяти (рис. 12)
-
n + 3
n + 3
n + 2
n +1
n
n - 1
00000001
01100101
10011000
01010001
Рис. 12. Физическое представление переменной в памяти ВМ
Переменной сопоставлено имя, т.е. идентификатор, который используется в программе для ссылки на значение хранимое в этой переменной. Наряду с идентификатором каждой переменной должен быть сопоставлен определенный тип данных. Тип данных(data type) – это характеристика переменной, определяющая возможные значения, которые может принимать переменная, а также операции допустимые над ней. К фундаментальным простейшим типам, которые также называютсяскалярными типами(scalar type) относятся целые знаковые и беззнаковые типы, типы с плавающей точкой различной точности (по количеству значащих верных разрядов после десятичной точки) и строчные типы. Например, беззнаковая двухбайтная переменная целого типа может принимать значения от 0 до 65565 и для нее имеют смысл такие операции как умножение, деление, сложение и вычитание, операции сдвига и битовые логические операции. В свою очередь переменная строчного типа занимает в памяти объем в соответствии с длиной строки, и для нее имеет смысл из вышеперечисленных операций только операция сложения (конкатенации) строк. Основополагающими действиями, которые определены над всеми переменными являются операции присваивания значения и возвращения значения. Обе эти операции синтаксически выражаются в языках программирования одним и тем же оператором присваивания.
Так, в языках Visual Basic (VB) иC/C++ этот оператор представлен символом равенства «=». Например,
x = 10 // VB
x = y + 10; // C/C++
В языке Pascalи его современной реализацииObjectPascal(OP) оператор присваивания выражается связкой символов – «:=».
x := 3.14; // Pascal
sName := 'Leo'; // Pascal
Как уже отмечалось ранее, современные ЯП являются типизированными языками, т.е. каждому объекту программы в том числе переменным должен быть задан определенный тип данных, а сама переменная должна быть объявлена (задекларирована) до ее первого использования в выражениях и операторах программы. В разных языках переменные декларируются по-разному.
В VBдля объявления переменной используется оператор Dim (от англ.dimension– величина), при этом языковой шаблон декларации выглядит следующим образом:
Dim <variablename> [As <type>]
где <variablename>– идентификатор переменной, <type> – идентификатор типа переменной3. Например:
Dim myVar As Integer // переменная целого типа
Dim sName As String // переменная строчного типа
В VB для разделения друг от друга операторы должны записывать в разных строках программы, либо разделяться символом «:».
Dim x: Dim y
x = 10 : y = 5
x = x + y : x = "Hello world"
При отсутствии явного указания типа в VB переменной задается особый вариантный тип данных, который позволяет присваивать переменной как числовые, так и строчные значения, а в общем случае и значения объектных типов (см. пример выше). Этот факт свидетельствует о не строгой типизации в языке VB, что является потенциальной опасностью, в связи с появлением в программе трудно локализуемых ошибок. Другие языки программирования требуют явной декларации переменной и явного указания ее типа.
Важной особенностью переменных в языке VB является их автоматическая инициализация, т.е. переменная при своем объявлении получает определенное, в соответствии со своим типом, предсказуемое начальное значение. Числовые переменные VB инициализируются нулевым значением, строчные – значением пустой строки, а объектные – пустым указателем (значением специального адреса).