Переменные и типы данных
Переменная — именованная область в памяти, которая доступна для чтения и изменения в ходе работы программы.
В языке Паскаль переменные объявляются в блоке var. Несколько переменных одного типа могут быть объявлены одной строкой, при этом имена разделяются запятыми.
var variableName : variableType; x, y, z : integer;
Пример программы с использованием переменных:
program Variables; var userName : string; x, y, z : integer; begin write('Enter your name: '); readln(userName); writeln('Hello ', userName); write('x = '); readln(x); write('y = '); readln(y); z := x + y; writeln('z = ', x,' + ', y, ' = ', z); writeln('Press Enter to Exit. '); readln; end.
Для чтения данных из консоли используется процедура readln.
Основные типы данных Pascal
- boolean — логический тип, может принимать значение True(Истина) или False(Ложь);
- integer — целое число;
- real — вещественное число или число с плавающей точкой;
- char — символьный тип данных, может содержать один символ;
- string — строка, последовательность символов.
Целые типы данных в языке Free Pascal
| Тип | Диапазон значений | Размер в байтах |
|---|---|---|
| Byte | от 0 до 255 | 1 |
| ShortInt, Int8 | от -128 до 127 | 1 |
| SmallInt, Int16 | от -32768 до 32767 | 2 |
| Word | от 0 до 65535 | 2 |
| Cardinal | от 0 до 4294967295 | 4 |
| Integer, LongInt, Int32 | от -2147483648 до 2147483647 | 4 |
| LongWord | от 0 до 4294967295 | 4 |
| Int64 | от -9223372036854775808 до 9223372036854775807 | 8 |
| QWord | от 0 до 18446744073709551615 | 8 |
Числа с плавающей точкой
| Тип | Диапазон | Значащих цифр | Размер в байтах |
|---|---|---|---|
| Single | от 1.5e-45 до 3.4e38 | 7-8 | 4 |
| Real, Double | от 5.0e-324 до 1.7e308 | 15-16 | 8 |
| Extended | от 1.9e-4932 до 1.1e4932 | 19-20 | 10 |
| Comp | от -2e64+1 до 2e63-1 | 19-20 | 8 |
| Currency | от -922337203685477.5808 до 922337203685477.5807 | — | 8 |
“E” — показатель степени в числах с плавающей точкой. Выражение 3.6e5 эквивалентно математической записи 3.6*10 5 .
Символьные и строковые типы данных
| Тип | Диапазон значений | Размер в байтах |
|---|---|---|
| Char | 1 символ | 1 |
| WideChar | 1 символ Unicode | 2 |
| String, ShortString | строка длиной до 225 символов | зависит от длины |
| AnsiString | не ограничена по длине | зависит от длины |
| WideString | не ограничена по длине Unicode строка | зависит от длины |
Для строки можно не указывать длину, тогда она принимает значение 255 символов:
var s1 : string[12]; // строка длиной 12 символов s2 : string; // строка длиной 255
Логические типы
| Тип | Размер в байтах | Значение для True | Значение для False |
|---|---|---|---|
| Boolean | 1 | 1 | 0 |
| ByteBool | 1 | Любое не нулевое значение | 0 |
| WordBool | 2 | Любое не нулевое значение | 0 |
| LongBool | 3 | Любое не нулевое значение | 0 |
Переменные и константы в языке программирования Паскаль
В Паскале, как и в других языках программирования данные делятся на константы и переменные. Для получения текущих значений переменных и констант к ним можно обращаться в программе по именам.
Переменная — это именованная величина определенного типа, способная в процессе работы программы менять свое значение.
Обычно переменная получает текущее значение в результате выполнения оператора присваивания (например, s := 0 – переменной s присваивается значение 0). Это значение будет сохраняться до тех пор, пока этой переменной не будет присвоено новое значение (при этом предыдущее значение теряется безвозвратно!)
Важно: попытка присвоить переменной значение иного типа является ошибкой.
Описание переменных
Все переменные, которые будут использоваться в программе на языке Паскаль, описываются в разделе описаний. Раздел начинается со служебного слова var , после которого могут располагаться описания в следующих формах:
- список имен: тип;
- или
- имя: тип := выражение;
- или
- имя: тип = выражение; // для совместимости с Delphi
- или
- имя := выражение;
В случае, если необходимо описать несколько переменных, то они перечисляются в списке через запятую. Например:
- var
- a1, a2, a3: integer;
- p: real := 5.7;
- str := ‘PascalABC.NET’;
- k := 1;
В последних двух случаях тип переменной определяется автоматически по типу выражения в правой части. Заметим, что по умолчанию все переменные, описанные в главной программе, обнуляются.
PascalABC.NET позволяет описывать переменные внутри составного оператора begin-end в специальном операторе описания переменной. Такие описания называются внутриблочными. Для внутриблочного описания можно использовать формы приведенные выше. Например:
- begin
- var a1,a2,a3: integer;
- var p: real := 2.5;
- var str := ‘ ‘;
- end;
Описание констант
Константы – это элементы данных, значения которых устанавливаются в разделе описаний и не изменяются в процессе выполнения программы
Раздел описания именованных констант в языке программирования Паскаль начинается с ключевого слова const после которого следуют описания в следующих формах:
- имя константы = значение;
- или
- имя константы : тип = значение;
- const
- MaxLen = 100;
- Pi = 3.14;
- g = 9.8;
- Day = ‘Sunday’;
Использование именованных констант позволяет улучшить читаемость программы и облегчает внесение в нее изменений.
Copyright © 2014-2021, Урок информатики
Все права защищены
Переменные и константы
Любая программа обрабатывает данные (информацию, объекты). Данные, с которыми работает программа, хранятся в памяти компьютера (чаще оперативной). Программа должна знать, где они лежат, каким объемом памяти она располагает, как следует интерпретировать данные (например, как числа или строки). Для обеспечения программе доступа к участкам памяти существует механизм переменных.
Переменные описываются в начале программы и как бы сообщают о том, с какими данными будет работать программа и какой объем памяти они займут. Другими словами, резервируется память. Но это не значит, что в эти ячейки памяти помещаются конкретные значения (данные). На момент резервирования памяти в них может быть что угодно.
В процессе выполнения программы в ячейки памяти будут помещаться конкретные значения, извлекаться оттуда, изменяться, снова записываться. Мы же через программу обращаемся к ним посредством имен переменных, которые были описаны в начале программы.
Имена переменных могут быть почти любым сочетанием английских букв и цифр (без пробелов). Нельзя чтобы имена переменных совпадали со словами, которые являются какими-либо командами самого языка программирования. Нельзя начинать имена переменных с цифры или специального символа. Для того чтобы имена переменных были удобны для восприятия, надо стараться придерживаться пары правил. Если программа не простейший пример, то имена переменных должны быть осмысленными словами или их сокращениями. Желательно, чтобы имена переменных не были слишком длинными.
В Pascal прописные и строчные буквы в именах переменных не различаются.
При описании переменных указывается не только их имя, но и тип. Тип переменных сообщает о том, сколько отвести под них памяти и что за данные там планируется сохранять. Точнее хранится там всегда будут числа в двоичной системе счисления. Но что они значат, может быть чем угодно: целым или дробным числом, символом, строкой, массивом, записью и др. Т.е. тип переменной определяет то, что мы можем сохранить в участке памяти, с которым связана описываемая переменная.
В примере ниже происходит ввод значений трех переменных разных типов и выполнение допустимых для их типов операций. Если тип переменных integer, то им можно присваивать только целые числа в диапазоне от -32768 до 32767. Под тип integer в языке программирования Паскаль отводится 2 байта, что равно 16 битам, а это значит, что можно хранить 2 16 (65536) значений (отрицательные и положительные числа, а также ноль). В этих диапазонах переменные int1 и int2 могут принимать какие угодно значения. При попытке записи в переменную значения не ее типа возникнет ошибка.
var int1,int2: integer; r: real; ch: char; begin write('Type integer: '); readln(int1); write('Type real: '); readln(r); write('Type char: '); readln(ch); int2:= int1 mod 10; int1:= int1 div 10; r:= r + 0.5; ch:= chr(ord(ch)+1); writeln(int1:5, int2:3, r:7:2, ch:3); end.
Пример работы программы:
Type integer: 32 Type real: 5.34 Type char: A 3 2 5.84 B
Итак, переменные связаны с участками памяти, содержимое которых может меняется по ходу выполнения программы в определенных пределах.
Длина переменных
Ранние версии компиляторов Паскаля имели ограничение на учитываемую длину имен переменных. В имени учитывались лишь первые восемь символов. Поэтому, например, такие переменные как variable1 и variable2 компилятор воспринимал как одно и тоже, т.к. первые восемь символов совпадали.
В современных версиях компиляторов с языка Pascal таких ограничений нет. Например, в результате работы приведенной ниже программы как в среде Free Pascal, так и Turbo Pascal 7.1 на экран выводятся два разных числа (10 и 20). Это значит, что компиляторы учитывают больше восьми символов в именах переменных (и других идентификаторов: именах констант, процедур и др.).
var variable111, variable222: integer; begin variable111 := 10; variable222 := 20; writeln(variable111); writeln(variable222); readln end.
Константы
Что делать, если в программе требуется постоянно использовать какое-нибудь одно и тоже число. Вроде бы это не проблема. Можно описать переменную, затем присвоить ей значение и не изменять его в программе. Однако это не всегда удобно (можно нечаянно изменить), поэтому в языках программирования для хранения данных помимо переменных существуют константы.
Главное преимущество констант заключается в том, что они описываются в начале программы и им сразу там же присваивается значение, а при выполнении программы константы не изменяются. Но если при правке кода, программист решит поменять значение константы, он впишет в ее описание другое значение, а сам код программы редактировать не придется. Поэтому, если в программе часто планируется использоваться какое-то значение, опишите его в разделе констант, который в программе располагается до раздела переменных:
const конст1 = значение; конст2 = значение;
Значениями констант могут быть данные большинства типов, используемых в языке Паскаль.
Рассмотрим такую программу:
const N = 10; var i: byte; sum: word; begin sum := 0; for i:=1 to N do sum := sum + i; writeln('Sum of ', N, ' numbers = ', sum); end.
В ней используется константа n со значением 10. Программа считает сумму десяти чисел в диапазоне от 1 до 10. Если нам захочется посчитать сумму чисел до 20, то достаточно будет изменить значение константы в начале программы. Если бы константа не использовалась, то пришлось бы просмотреть весь код программы и исправить значение 10 на 20. Если программа большая, то легко ошибиться: не найти или исправить не то значение.
Типизированные константы
В языке Паскаль помимо обычных констант используются типизированные константы. Можно сказать, что они занимают промежуточное положение между переменными и константами. Они получают значение при описании (как константы), но могут его менять в теле программы (как переменные).
Описываются типизированные константы в разделе констант:
const конст1: тип = значение; конст2: тип = значение;
const NUMS: integer = 10;
Переменная
Переменная в программировании — это каким-либо образом проименованная и/или адресованная область физической или виртуальной памяти, предназначенная для хранения данных (значений). С ее помощью можно проводить различные операции с данными и обеспечить программе необходимую гибкость. Данные в переменной могут быть как изменяемыми, так и постоянными (в этом случае она называется константой).
«IT-специалист с нуля» наш лучший курс для старта в IT
Как работают переменные
В процессе исполнения компьютерная программа постоянно обращается к каким-либо данным, которые хранятся в ячейках памяти. То есть работающее приложение должно «знать», какие именно данные ему сейчас нужны для работы, а также — где они находятся. На ранних этапах развития компьютерной техники программисты писали программы на машинном языке, в котором для обращения к конкретным данным использовались регистры. Но на таком языке человек может писать только очень простой код. При создании более сложных программ использовать этот способ стало очень сложно.
С появлением ассемблеров задача обращения к данным существенно упростилась за счет более понятного человеку синтаксиса и логики. Теперь не нужно вручную прописывать регистры — вместо них стали использоваться переменные, которым программист просто присваивает те или иные данные (значения).
Понятие переменной в программировании в целом напоминает одноименный аналог из математики. В алгебре это абстрактное буквенное выражение, которое имеет определенный интервал конкретных значений (как правило, числовых). Переменные позволяют записывать различные математические операции в общем виде. Затем, заменяя их на конкретные значения из допустимого интервала, можно получить необходимые значения.
Аналогично работают переменные и в информатике, с той лишь разницей, что это не только логическая абстракция, вместо которой можно подставить конкретные значения, но и вполне конкретная область виртуальной/реальной памяти, куда обращается программа за нужными ей для работы данными.
Таким образом, переменные характеризуются следующими атрибутами:
- именем или адресом, обозначающим конкретную ячейку памяти, в которой хранятся необходимые для работы приложения данные;
- значением, то есть конкретными данными, которые содержатся в проименованной ячейке памяти;
- типом, который определяет характер значений, принимаемых переменной, виды операций с ними и их представление в памяти компьютера.
В программировании переменные используются для работы с динамическими (изменяющимися) данными. Например, если в компьютерной игре есть два перемещающихся персонажа, то им необходимо задать скорость движения. Можно сделать это вручную для каждого из них, однако каждое изменение скорости придется прописывать заново, что не очень удобно. Гораздо проще сделать это с помощью переменных — задав определенный интервал их значений. В этом случае изменять скорость персонажей можно, просто подставив нужные данные.
В императивных языках программирования также существует понятие константы — это тоже ячейка памяти, но содержащая только одно неизменяемое значение. Ее можно задать заранее, при этом указав ее имя, к которому может обращаться программа, или указать непосредственно в коде как непосредственное значение.
Профессия / 8 месяцев
IT-специалист с нуля
Попробуйте 9 профессий за 2 месяца и выберите подходящую вам

Типы переменных
Компьютерные программы работают с разнообразными данными — числами, словами (символами), структурами (массивами, деревьями) и т. д. Соответственно, приложение должно уметь их различать, а также понимать, где они хранятся и в какой момент их необходимо задействовать. Поэтому в программировании используются следующие виды переменных:
- Статическая. В этом случае тип данных переменной определяется на этапе компиляции программы — то есть заранее задается программистом. Это позволяет в большинстве случаев сократить расходы ресурсов компьютера. Кроме того, статическая типизация переменных упрощает обнаружение ошибок, что снижает время разработки и повышает надежность программы. В то же время она делает программный код менее гибким, так как любые изменения в типе данных программисту придется указывать вручную.
- Динамическая. При такой типизации тип переменной определяется на этапе присвоения значения (то есть исполнения программы), а не его объявления. Благодаря этому в различных участках программного кода одна и та же переменная может принимать значения разных типов. Динамическая типизация делает программу более гибкой, позволяет ей лучше взаимодействовать с изменяющимся окружением, упрощает ее переход на новый формат данных. В то же время повышается вероятность ошибок, увеличивается расход ресурсов платформы при исполнении.

Курс для новичков «IT-специалист
с нуля» – разберемся, какая профессия вам подходит, и поможем вам ее освоить
Для каждой переменной устанавливается своя область видимости — часть программы, в пределах которой ее идентификатор (имя) остается с ней связанным, то есть позволяет через себя обратиться к ее значению. В зависимости от этого переменные могут быть:
- локальными — задействуются только конкретной подпрограммой (фрагментом кода);
- глобальными — используются всей программой.
Чтобы упорядочить использование переменных в программировании и исключить возникновение ошибок, применяется ограничение их зоны видимости. Благодаря этому программист может использовать одни и те же идентификаторы для похожих переменных в различных фрагментах программного кода.
В различных языках программирования в переменные можно «складывать» данные различных типов, например:
- целые числа с отрицательным или положительным знаком — например, 0, 1, –1, 234, –234 и т. д.;
- числа с плавающей запятой — компьютерная форма записи дробных действительных чисел;
- логические выражения — например, часто встречающееся в программировании true/false;
- строки (символы) — последовательности букв, чисел, знаков препинания, пробелов и т. д. (используются для записи текстовых данных);
- списки — структуры данных, представляющих собой упорядоченные последовательности значений;
- диапазоны — перечень значений стандартного дискретного типа, например, 1…100;
- массивы — фиксированное и структурированное количество однотипных данных;
- записи — совокупность связанных данных различного типа;
- файлы — однотипные данные, сохраненные на внешнем носителе информации.
В языках программирования со строгой (статической) типизацией тип переменных задается программистом заранее при их объявлении и не может быть изменен в дальнейшем. Более того, в этом случае в них нельзя добавить данные других типов. В частности в Java целочисленные переменные не могут содержать слова, строки или логические выражения. Напротив, в языках с динамической типизацией (например, Python) тип данных определяется программой автоматически при обращении к переменной, исходя из характера содержащихся в ней значений.
В зависимости от типа данных в переменной она может быть:
- Простой — используется для хранения данных, не имеющих структуры, таких как целые числа, символы, логические выражения true/false, отдельные значения из конечных множеств;
- Сложной — в такой переменной хранятся данные с внутренней структурой, наиболее показательными примерами которых являются массивы, деревья и записи.
Также в некоторых языках программирования предусмотрена возможность создания пустых переменных. Они имеют идентификатор (имя), но им не присвоено конкретных значений. Например, в JavaScript два типа таких переменных:
- Undefined (неопределенные). Это переменные, у которых не указан тип и значения. Иначе говоря, компьютер просто знает, что она есть, но не понимает, что в ней находится, какой объем памяти под нее выделить и как с ней потом работать. Чаще всего неопределенные переменные используются для отладки кода, определения данных, поступающих в программу, и поиска ошибок.
- Null (пустые). Такие переменные имеют определенный тип, но им не заданы конкретные значения. При этом компьютер понимает, какие данные в них положить, сколько им нужно памяти и как потом с ними работать. В отличие от undefined, null является конкретным значением переменной, означающим отсутствие данных.
От этих двух типов следует отличать переменную 0 (ноль), которая содержит конкретное целочисленное значение.
Использование переменных
Для работы с переменными необходимо их предварительно объявить. В различных языках программирования это происходит с некоторыми отличиями, но в целом используется похожий шаблон:
- Сначала ставится ключевое слово или знак, обозначающий новую переменную (например, var от английского «variation» или $);
- Далее указывается имя переменной. Как правило, оно записывается латинскими буквами и кратко описывает, какие данные будут использоваться (например, для переменной, содержащей имя человека, можно использовать слово name).
- После имени переменной указывается тип содержащихся в ней данных. Например, для каких-либо слов, имен, фраз это будет указатель string или char.
В некоторых языках порядок этих элементов в структуре объявления переменной может быть другим. Например, в ранних версиях Java отсутствовало ключевое слово var, которое указывает на создание новой переменной. Но в целом логика этого процесса везде примерно одинакова: нужно указать имя переменной и тип сохраняемых в ней данных.
На этом этапе заканчивается непосредственно объявление переменной. Но чтобы программа могла ее использовать, ей нужно присвоить определенное значение. Эта операция называется «присваиванием» и выражается с помощью математического символа «=», который называется оператором присваивания. После него указывается конкретное значение переменной, которое будет использоваться программой.

Хотя порядок объявления переменных может отличаться в зависимости от языка, существует несколько общих правил для корректного осуществления этой процедуры:
- Идентификаторы (имена) переменных могут содержать в себе буквы, цифры, знак нижнего подчеркивания, при этом оно обязательно не должно начинаться с цифры.
- Имя переменной лучше подбирать таким образом, чтобы было понятно, какие данные в ней сохраняются. Например, если это значения скорости персонажа в компьютерной игре, то подойдет идентификатор «speed».
- Следует избегать очень коротких (например, одно- или двухбуквенных) или слишком длинных имен переменных: первые неинформативны и затрудняют понимание, вторые делают код тяжеловесным и сложным для восприятия.
- Идентификаторы лучше писать английскими словами (например, price вместо stoimost), чтобы они были понятны другим людям, особенно при работе над иностранными или международными проектами.
- Первое слово в сложных именах рекомендуется записывать со строчной буквы, а каждое последующее — с заглавной (например, carsCount).
- Большинство современных языков программирования чувствительны к регистру имен переменных, что также необходимо учитывать при их написании.
В некоторых ЯП эти требования необязательны и просто рекомендуются как способы упростить написание и понимание кода. В других языках программирования они могут носить обязательный характер: несоблюдение правил их синтаксиса приводит к ошибкам и неисполнениям со стороны программы.
Переменные — одна из важнейших составляющих современного программирования, которая существенно упрощает написание кода, делает его более гибким и настраиваемым. В том или ином виде они встречаются в большинстве распространенных ЯП, поэтому понимание их структуры, принципа действия и правил написания являются основой создания правильно работающих приложений.
IT-специалист с нуля
Наш лучший курс для старта в IT. За 2 месяца вы пробуете себя в девяти разных профессиях: мобильной и веб-разработке, тестировании, аналитике и даже Data Science — выберите подходящую и сразу освойте ее.
