Структурированные типы данных

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

Массивы представляют собой формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое. Все компоненты массива – это данные одного типа.

Общий вид определения массива:

Type A = array [тип индекса массива] of [тип компонент массива]

Например, М1=array [1..100] of real;

Строки– это массив символов, но количество символов в строке может меняться. Строка трактуется как цепочка символов произвольной длины. Максимальное количество символов не более 255. Каждый символ в строке имеет свой индекс (номер).

Line = string[80];

Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты записи (поля) могут быть различного типа. Записи позволяют объединять значения различных типов.

Date = record

Month : (Jan, Feb, Mar, Apr, May, Jun, July, Aug, Sept, Oct, Nov, Dec);

Day : 1..31;

Year : 2000..2050;

End;

Множества – это наборы однотипных, логически связанных друг с другом объектов. Количество элементов, входящих в множество может меняться от 0 до 256. Именно непостоянством своих элементов множества отличаются от массивов и записей.

Digits = Set of 1..5;

Файл – именованная область внешней памяти. Файл содержит компоненты одного типа, кроме файлов ( т.е. нельзя создать «файл файлов»). Длина файла не оговаривается и ограничивается только ёмкостью устройств внешней памяти.

F : File of Integer;

Более подробно со структурированными типами ознакомимся при дальнейшем изучении языка.

Указатель (ссылочный тип)

Cодержит адрес байта памяти, в котором находится значение данных определённого типа. Этот тип называют также ссылочным. Для описания используется символ ^ и идентификатор типа. Например, P=^integer;

Использование указателей является гибким средством управления динамической памятью и предоставляет возможность обработки массивов данных большой размерности.

Константы

Константой называют величину, значение которой не меняется в процессе выполнения программы.

  • Числовыеконстанты служат для записи чисел. Различают следующие их виды:

Целые числа: записываются со знаком + или -, или без знака, по обычным арифметическим правилам: -10 +5 5

Вещественные числа могут записываться в одной из двух форм:

обычная запись: 2.5 -3.14 2. - обратите внимание, что целая часть отделяется от дробной символом точки;

экспоненциальнаяформа: в этой записи вещественное число представляется в виде m*10p, где m – мантисса или основание числа, 0.1≤|m|≤1, p – порядок числа, это целочисленная константа. Действительно, любое вещественное число можно представить в экспоненциальной форме:

-153.5 -0.1535*103

99.005 0.99005*102

Во всех IBM-совместимых компьютерах вещественные числа хранятся как совокупность мантиссы и порядка, что позволяет упростить операции над ними, используя специальную арифметику, отдельно обрабатывающую мантиссу и порядок. Для программной записи числа в экспоненциальной форме вместо "умножить на 10 в степени" используется обозначение E или e (латинская):

-153.5 -0.1535*103 -0.1535E3 или -1.535E02

99.005 0.99005*102 0.99005E+2 или 9.9005e+01

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

1030 1e30

-1020 -1E20

10-30 1E-30

Поскольку размер памяти, отводимой под мантиссу и порядок, ограничен, то вещественные числа всегда представляются в памяти компьютера с некоторой погрешностью. Например, простейшая вещественная дробь 2/3 дает в десятичном представлении 0,666666... и, независимо от размера памяти, выделяемой для хранения числа, невозможно хранить все его знаки в дробной части. Одной из типичных проблем программирования является учет возможных погрешностей при работе с вещественными числами.

Шестнадцатеричные числа состоит из шестнадцатеричных цифр, которым предшествует знак $. Диапазон шестнадцатеричных чисел – от $00000000 до $FFFFFFFF.

Кроме числовых констант существуют и другие их виды:

· Логические константы.

Служат для проверки истинности или ложности некоторых условий в программе и могут принимать только одно из двух значений: служебное слово true обозначает истину, а false – ложь;

  • Символьные константы.

Могут принимать значение любого печатаемого символа и записываются как символ, заключенный в апострофы ('одинарные кавычки'):

'Y' 'я' ' '.

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

К символьным также относятся константы вида #X, где X – числовое значение от 0 до 255 включительно, представляющее собой десятичный ASCII-код символа. Таблицы ASCII-кодов, используемых операционными системами DOS и Windows, приведены в Приложении 1. Например, значение #65 будет соответствовать коду символа 'A' латинской.

  • Строковые константы.

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

'Введите значение X:'

'Ответ='

Если в строковой константе необходимо записать сам символ апострофа, это делается так же, как для символьных констант.

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

const Имя1=Значение1;

Имя2=Значение2;

. . .

ИмяN=ЗначениеN;

Здесь ключевое слово const показывает начало раздела описаний именованных констант. Ясно, что зачастую удобнее обращаться к константе по имени, чем каждый раз переписывать ее числовое или строковое значение. Пример раздела констант:

const e=2.7182818285;

lang='Turbo Pascal 7.1';

Здесь описана числовая константа e со значением основания натурального логарифма и строковая константа с именем lang, содержащая строку 'Turbo Pascal 7.1'.

Каждое даваемое программистом имя должно быть уникальным в пределах одной программы. Если мы включим этот раздел в свою программу, мы уже не сможем создать в ней других объектов с именами e и lang.

Наши рекомендации