русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Переменные


Дата добавления: 2015-06-12; просмотров: 662; Нарушение авторских прав


Переменные вводятся в программу для хранения и передачи данных внутри нее. Любая переменная имеет имя (идентификатор). По правилам Турбо Паскаля имя переменной должно начинаться с буквы и может содержать буквы (только латинские), цифры и знак подчеркивания. Длина имени — почти любая (до 126 символов), но {77} различаются имена по первым 63 символам. Имена объявляемых в программе переменных должны быть перечислены в блоках описания VAR:

VAR

Имя1 : ИмяТипаОднойПеременной;

Имя2 : ИмяТипаДругойПеременной;

...

Имя9 : КонструкцияТипаПеременной;

Каждому имени переменной в блоке VAR должен ставится в соответствие ее тип. Имя и тип разделяются двоеточием. После объявления и описания переменной должен стоять символ «;». Концом блока описания будет начало какого-либо другого блока программы или описание процедур и функций.

Имя типа может быть именем предопределенного в языке типа или введенного программистом в предыдущем блоке описания типов TYPE. Но разрешается составлять типы по ходу объявления переменных:

VAR

X : Real; { вещественная переменная }

T : Test; { переменная введенного ранее типа Test }

i, j, k : Integer; { три целые переменные }

Subr : 1..10; { целая ограниченная переменная }

Dim : Array [0..99] of Byte; { переменная типа "массив" }

S1, S2, { четыре переменные типа }

S3, S4 : Set of Char; { "множество символов" }

PointRec : RECORD

X,Y : Real { запись с двумя полями }

END;

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

Переменные подразделяются на глобальные и локальные. Глобальные — это переменные, которые объявлены в разделах VAR вне процедур и функций. Переменные, которые вводятся внутри процедур и функций, называются локальными. Среди глобальных переменных не может быть двух с одинаковым именем. Локальные же переменные, которые известны и имеют смысл только внутри процедур или функций, могут дублировать глобальные имена. При этом внутри подпрограмм {78} все обращения к таким именам соответствуют обращениям к локальным переменным, а вне их — к глобальным. Локальные и глобальные переменные всегда хранятся в разных местах и даже при одинаковых именах не влияют на значения друг друга.



Все глобальные переменные хранят свои значения в так называемом сегменте данных. Его максимальный объем теоретически равен 65520 байт (почти 64К), но практически он всегда меньше на 1...2К. Таким образом, сумма размеров всех объявленных глобальных переменных должна быть меньше, чем 63К. Если этого мало, то используются ссылки и динамические переменные.

Локальные переменные существуют только при работе объявляющих процедур или функций и хранят свои значения в специально отводимой области памяти, называемой стеком. После окончания работы процедуры или функции ее локальные переменные освобождают стек. Размер стека можно менять от 1024 байт (1К) до тех же 65520 байт, используя ключ компилятора $М. По умолчанию он равен 16384 байт (16К). Это максимальный объем всех локальных переменных, работающих одновременно.

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

Var

i,j : Byte; {два раза по 1 байту}

D : Array [1..10] of Char; { десять однобайтных элементов}
R : Real; { шесть байтов }

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

... i j D[1] D[2]...D[10] R ...
           

+1 +(i+1) +(i+1+10*1) +(i+1+10*1*6)

Начало отсчета в байтах

Рис. 5.1

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



<== предыдущая лекция | следующая лекция ==>
Простые константы | Совмещение адресов директивой absolute


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.292 сек.