Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика 3-4(ЯП)+.doc
Скачиваний:
106
Добавлен:
10.06.2015
Размер:
680.96 Кб
Скачать

Концепция памяти. Переменные и их декларация в языках программирования

Базовой концепцией всех языков программирования является концепция памяти, суть которой заключается в возможности хранения данных в особых объектах программы. Эти объекты получили название переменных(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 инициализируются нулевым значением, строчные – значением пустой строки, а объектные – пустым указателем (значением специального адреса).