Компонентный Паскаль/Переменные и константы: различия между версиями

Содержимое удалено Содержимое добавлено
Строка 6:
 
Проблема решается тем, что помнить о том, где расположена каждая ячейка памяти, и что она хранит -- должен Компонентный Паскаль. Этой информации нет в самой ячейке, зато есть у языка программирования. Это и есть семантическое свойство информации, в данном случае -- её тип. Таким образом описанная ячейка называется ''переменная''. Свой тип она не меняет с момента её описания, до момента окончания выполнения программы. Исключений не бывает. <ref name="Типы языков">Из-за того, что тип переменных не меняется -- Компонентный Паскаль и является языком со статической типизацией. А такой язык, как {{w|python}} позволяет менять типы переменных, поэтому он относится к языкам программирования с динамической типизацией.</ref>
===Целые числа===
 
====Логический тип====
Логический тип, в полном смысле этого слова не является целым. Но и к дробным числам этот тип можно отнести ещё меньше. Переменная такого типа может принимать только два значения. В Компонентном Паскале эти два значения определены как TRUE ("Истина") и FALSE("ложь"). Этот тип переменных используется даже шире, чем об этом задумываются многие программисты. Логический тип можно использовать явно (через переменную), а можно и неявно (например, через сравнение двух чисел, строк, результатов вызовов процедур). Обозначается такой тип через ключевое слово BOOLEAN.
Пример:
<source lang="oberon2">
Строка 16:
Стоит обратить внимание на выравнивание двоеточий и ключевых слов. Двоеточие, если проводить аналогию с русским языком может выступать как указатель на обстоятельство, как во фразе: "Итак: всё плохо!". Только в случае с КП этот разделитель служит для указания типа (справа) для переменной (что слева).
 
====Байтовый тип====
Или просто байт. Обозначается ключевым словом BYTE. Переменная такого типа может принимать значения от 0 до 255. Это совсем не много, но для многих целей может оказаться вполне достаточно. Например, не существует минут и секунд более 60. Или например не бывает дня в месяце с номером 32. Пример описания переменной типа BYTE:
<source lang="oberon2">
Строка 24:
Важно не забывать ставить точку с запятой после всех определений переменных (после определения последней переменной точку с запятой можно не ставить). Кроме того, следует помнить, что особенности современных компьютеров: они не работают с одним байтом, они работают, скажем, сразу с 4-мя байтами. Поэтому возможны такие эффекты, как неэкономное расходование памяти. Как избежать таких эффектов будет рассмотрено в дальнейших частях.
 
====Короткое целое====
Короткое целое число в БлэкБоксе/КП определено как 2 байта. В последней редакции сказано, что размеры типов не зависят от аппаратной платформы, но в текущей реализации КП, которая была скомпилирована под архитектуру 32 бита, короткое целое именно 2 байта. Диапазон чисел, которые умещаются в эти 4 байта составляет примерно от -32000 до +32000. Короткое целое обозначается ключевым словом SHORTINT.
 
Строка 34:
Как видно, в целом, определение переменных базовых типов однообразно и их легко запомнить.
 
====Целое====
Целое число является основным типом целых чисел для машин с 32 битами на машинное слово. Для КП это именно тот случай. Целое число занимает в памяти 4 байта. Такого количества памяти хватает на описание числа примерно от -2,1 млрд. до +2,1 млрд. Не часто встречаются числа с таким динамическим размахом. Целый тип описывается ключевым словом INTEGER:
<source lang="oberon2">
Строка 42:
И здесь ничего нет такого, чтобы потребовало особого способа описания переменных.
 
====Длинное целое====
 
== Примечания ==