<<
>>

Константы и переменные. Типы переменных

Любая программа оперирует с некоторыми данными, используемыми в расчетах или определяющими последовательность выполнения действий. Все данные, с которыми оперирует программа на Borland Pascal, должны быть описаны.

Данные в программе могут присутствовать в виде констант и переменных.

Константы. Константы определяются один раз и не изменяются во время выполнения программы.

Используют следующие типы констант:

• целые и вещественные десятичные числа, например, 25, 6.12,

0. 125е10 (см. примечание);

• шестнадцатеричные числа - должны начинаться со знака «$», например, $64;

• логические константы - true (истина) и false (ложь);

• символьные константы - записываются либо в апострофах, например ’А’, либо в виде соответствующих кодов по таблице ASCII (русский вариант таблицы символов см. в приложении 2), причем в последнем случае перед кодом ставится знак «#», например #65 (этот код соответствует символу А латинское);

• строки символов - записываются в апострофах, например ’ABCD’ (см.

параграф 4.5);

• конструкторы множеств (см. параграф 4.7);

• «нулевой» адрес - nil (см. параграф 7.1).

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

2. Обычно при записи в программе или выполнении операций ввода-вывода вещественные числа записывают в так называемом формате с фиксированной точкой, указывая в начале целую часть числа, а затем, после точки, дробную, например: 0.5, -3.85 . Но иногда бывает удобно задавать числа в формате с плавающей точкой, т.е. в виде мантиссы и порядка. При этом мантиссу записывают перед порядком и отделяют от него строчной или прописной латинской буквой «е», например: запись 1.5е-10 соответствует значению 1,5 х10 ~10, а запись 0.5Е23 соответствует значению 0,5х 1023.

Константы используются в двух формах: как литералы и как поименованные константы.

Литерал представляет собой значение константы, записанное непосредственно в программе (например, в выражении 2+5.1*х использованы два литерала «2» и «5.1»).

Поименованные константы объявляются в инструкции раздела описаний const. Обращение к ним осуществляется по имени (идентификатору). Под выражением при этом (рис. 2.3) понимают запись, состоящую из ранее

Рис. 2.3. Синтаксическая диаграмма конструкции Объявление констант>

объявленных констант, литералов, знаков операций (см. параграф 2.4) и стандартных функций abs, chr, hi, length, lo, ord, odd, pred, round, sizeof, str, succ, trunc (см. приложение 1).

Например;

Переменные. Переменные - поименованные значения, которые могут изменяться в процессе выполнения программы. Их объявление также выполняют в разделе описаний программы, причем при этом указывается не только идентификатор переменной, но и ее тип (рис. 2.4). Обращение к переменным также осуществляют по идентификатору.

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

На рис. 2.5 показана классификация типов переменных Borland Pascal. В соответствии с ней различают простые и структурные типы переменных.

Простые (скалярные) типы описывают упорядоченные наборы значений. Они делятся на порядковые и вещественные.

Группа порядковых типов объединяет типы переменных, набор значений которых конечен, группа вещественных типов - типы с условно бесконечным набором значений.

Порядковые типы переменных делятся на стандартные, перечисляемые и отрезки.

Стандартно заданы следующие типы:

• целые типы - см. табл. 2.1;

• булевский тип Boolean включает только два значения - false (0) и true (1), но в памяти значения данного типа занимают целый байт;

• символьный тип Char определяет набор символов по таблице ASCII (см. приложение 2). Всего в таблице указано 255 кодов, для большинства из

Рис. 2.5. Классификация типов

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

Нестандартные порядковые типы необходимо описывать при объявлении переменных или используя инструкцию объявления типа (рис. 2.6).

Таблица 2.1

Рис. 2.6. Синтаксическая диаграмма конструкции

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

Var D:(Mon,The,Wed,Thu,Fri,Set,Sun); ...{переменная D может принимать только указанные значения}

Примечание. Во внутреннем представлении значения перечисляемого типа кодируются целыми числами, начиная с нуля. Так, идентификатору Mon будет соответствовать 0, The - 1 и т. д.

Объявляя переменную перечисляемого типа, можно сначала определить новый тип, а затем уже переменную этого типа, например:

Type Day=(Mon,The,Wed,Thu,Fri,Set,Sun); {объявление нового типа}

Var D:Day;...

{объявление переменной данного типа}

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

Type Data=1..31; {диапазон одного из целых типов}

Var DataN'.Data;...

или, не описывая тип отдельно, ту же переменную можно о&ьявить следующим образом:

Var DataN:1..31;...

Вещественные типы используют для представления чисел, содержащих дробную часть. Во внутреннем представлении мантисса и порядок вещественных чисел хранятся раздельно, причем количество разрядов под мантиссу и порядок регламентируются типом числа. Соответственно обработка вещественных чисел в компьютерах выполняется с некоторой конечной точностью, которая зависит от количества двоичных разрядов, отведенных для размещения мантиссы. Количество разрядов для записи порядка числа определяет диапазон чисел, для представления которых можно использовать разрядную сетку данного типа. В табл. 2.2 приведены характеристики вещественных типов Borland Pascal.

Таблица 2.2

Примечание. Следует иметь в виду, что:

• работа со всеми вещественными типами, кроме Real, требует установки особого режима компиляции (указания директивы {$N+} или соответствующей опции компилятора);

• для типа Real используется самая медленная арифметика.

Структурные типы данных будут рассмотрены в соответствующих разделах.

Инициализированные переменные. В Borland Pascal имеется возможность объявления переменных с заданными начальными значениями. Такие переменные называют инициализированными и объявляют в специальной конструкции const (рис. 2.7).

Примечание. С точки зрения идеологии языка объявление инициализированных переменных в конструкции const является не корректным. В последующих версиях языка эта некорректность была исправлена.

Инициализированные переменные в программе можно изменять так же, как и обычные, например:

Const a:real=5.6;... a:=(n-l)/k;...

Наложенные переменные. Иногда возникает необходимость объявления переменных, размещенных по конкретным физическим адресам памяти или в том же месте, что и другие переменные программы. Наложение переменных выполняют также с использованием конструкции var, но после типа указывают зарезервированное слово absolute. На рис. 2.8 представлена полная синтаксическая диаграмма данной конструкции, из которой следует, что возможны два варианта наложения переменной.

1. Наложение по абсолютному адресу. В этом случае за словом absolute следует пара чисел типа word, разделенных двоеточием. Первое число трактуется как адрес сегмента, а второе как смещение (см. параграф 7.1). Такое объявление соответствует физическому связыванию переменной и области памяти по указанному физическому адресу.

Например:

Var A: word absolute $0000:$00FF;

L:array[1..2] of char absolute 128:0;...

Данный вариант применяют, например, для обращения к таблицам операционной системы.

2. Наложение на ранее определенную переменную. В этом случае за словом absolute размещают идентификатор ранее определенной переменной.. При этом переменной, описанной с absolute, присваивается адрес переменной, идентификатор которой стоит после него. Таким образом, происходит совмещение в памяти данных с разными именами и, возможно, типами. Например:

Var c.byte;

a.real absolute с;...

Вследствие наложения любое изменение одной переменной отражается на значении другой. При несовпадении размеров областей внутреннего пред-

Рис. 2.8. Полная синтаксическая диаграмма конструкции

ставления переменных, связанных по absolute, как в примере выше, корректность полученных результатов не контролируется. Пример использования такого варианта наложения рассмотрен в параграфе 5.5.

2.4.

<< | >>
Источник: Иванова Г.С. Основы программирования. 2002

Еще по теме Константы и переменные. Типы переменных:

  1. ПЕРЕМЕННАЯ ПРОМЕЖУТОЧНАЯ
  2. ПЕРЕМЕННАЯ
  3. ПЕРЕМЕННАЯ ЗАВИСИМАЯ
  4. ПЕРЕМЕННАЯ НЕЗАВИСИМАЯ
  5. ПЕРЕМЕННАЯ КОНТРОЛИРУЕМАЯ
  6. Пять переменных У. Мичела.
  7. Сопротивление переменам в нас
  8. Теория «типовых переменных» и индивидуального выбора (Т. Парсонс).
  9. Ситуация действия и «Pattern Variables» («типовые переменные»)
  10. Сознание — первый шаг к выздоровлению и переменам
  11. Самоодобрение и самопринятие - ключ к положительным переменам в нашей жизни