Иллюстрированный самоучитель по Turbo Pascal

Типы данных

Структура рассмотренной программы имеет следующий вид:

Program MyFirstProgram;
{Раздел описаний}
begin
{Раздел операторов}
end.

Слова Program, begin и end выделяют две части программы – раздел описаний и раздел операторов. Такая структура обязательна для любой программы, что является следствием жесткого требования языка: любой нестандартный идентификатор, используемый в исполняемых операторах, должен быть предварительно описан в разделе описаний. (Стандартные идентификаторы связаны с предварительно объявленными объектами и входят в стандартную библиотеку Турбо Паскаля. Таким, например, является идентификатор WriteLn. Стандартные идентификаторы, если они используются в программе, описывать не нужно).

Требование предварительного описания идентификаторов кажется чрезмерно строгим и делающим язык менее свободным. На самом деле в нем проявляется тенденция развития языков программирования в сторону повышения надежности создаваемых программ. Кто программировал на Фортране или Бэйсике (в этих языках не требуется предварительное описание идентификаторов), знает, как порой бывает трудно обнаружить в большой программе ошибочно введенный или пропущенный символ в идентификаторе. Если, например, всюду в программе используется переменная с именем EPSILON, а в одном месте ошибочно написано EPSLION, то программа может благополучно откомпилироваться и даже давать почти правдоподобный результат для некоторых наборов данных, но в какой-то момент начнет вести себя странно. Обязательное предварительное описание идентификаторов в Турбо Паскале защищает программы от такого рода ошибок и повышает их надежность.

Описать идентификатор – это значит указать тип связанного с ним объекта программы (константы или переменной). Понятие типа – одно из фундаментальных понятий Турбо Паскаля. В гл.4 подробно рассмотрены различные типы; чтобы пояснить описываемые ниже особенности языка и при этом не слишком забегать вперед, укажем, что тип определяет, во-первых, способ внутреннего для компьютера представления объекта и, во-вторых, действия, которые разрешается над ним выполнять.

В рассматриваемых далее в этой главе программах понадобятся следующие типы данных:

  • INTEGER – целочисленные данные, во внутреннем представлении занимают 2 байта; диапазон возможных значений – от -32768 до +32767; данные представляются точно;
  • REAL – вещественные данные, занимают 6 байт; диапазон возможных значений модуля – от 2.9Е-39 до 1.7Е+38; точность представления данных – 11…12 значащих цифр;
  • CHAR – символ, занимает 1 байт;
  • STRING – строка символов, занимает МАХ+1 байт, где МАХ – максимальное число символов в строке;
  • BOOLEAN – логический тип, занимает 1 байт и имеет два значения: FALSE (ложь) и TRUE (истина).

Тип константы определяется способом записи ее значения. Например:

const
c1 = 17;
с2 = 3.14;
с3 = 'А';
с4 = '3.14 ';
с5 = False;

При анализе этого фрагмента программы компилятор отнесет первую константу к типу INTEGER, вторую – к типу REAL, третью – к CHAR, четвертую – к STRING и последнюю – к BOOLEAN. Признаком, позволяющим отнести константу к REAL или к INTEGER, является наличие или отсутствие десятичной точки в ее значении. Разумеется, константы С2 и С4 относятся к разным типам: С2 – к REAL (в константе есть десятичная точка), а С4 – к STRING (константа обрамлена апострофами). Константу С3 компилятор будет считать относящейся к типу CHAR: одиночный символ в апострофах относится к CHAR, в то время как несколько символов – к STRING.

В отличие от константы переменная именует объект программы, который может изменять свое значение в ходе счета. При описании переменных за идентификатором ставятся двоеточие и имя типа. Несколько однотипных переменных можно объединять в список, разделяя их запятыми. В начале раздела описания переменных должно стоять зарезервированное слово VAR (VARiables – переменные). Например:

var
sigma:Real; а,b,с,d:Char;
text1:String[15];
text2:String;
flag:Boolean;.

Как уже говорилось, тип данных определяет длину внутреннего представления соответствующих переменных. В частности, длина внутреннего представления переменных типа STRING (строка символов) зависит от максимального числа символов, которые могут составлять строку. В приведенном выше примере переменная text 1 описана с указанием ее максимальной длины (15 символов), а в описании переменной text2 максимальная длина не указана и компилятор установит для нее предельно допустимую в Турбо Паскале длину – 255 символов.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.