Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры информатика 2012.doc
Скачиваний:
16
Добавлен:
17.04.2019
Размер:
11.54 Mб
Скачать

21. Числа

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

    Целые десятичные числа записываются стандартным образом и должны находиться в диапазоне от -2147483648 до 2147483647. Примеры:

35 77 -39 9 -6428 .

Для обозначения шестнадцатеричных целых чисел используется символ $, который ставится перед числом:

$0 $ЗЕ $FCB5434 $А10 .

Допустимый диапазон шестнадцатеричных чисел от $00000000 до $FFFFFFFF. Знак (плюс или минус) шестнадцатеричного числа определяется самой формой записи и зависит от значения старшего разряда двоичного представления числа.

Вещественные числа записываются или в виде обычной десятичной дроби, или в показательной форме с основанием 10. При втором способе записи вместо основания 10 ставится буква Е (прописная или строчная), непосредственно за которой указывается показатель степени:

6.3 -1436.9456 7.9Е12 -34.83е7 0.2745е-10 .

    Числа с десятичными точками или показателем степени являются константами вещественного типа, остальные десятичные и шестнадцатеричные числа являются константами целого типа.

20. Специальные символы и их назначение

Специальные символы, выполняющие в языке определенные функции, можно разделить на три категории: знаки пунктуации; знаки операций; зарезервированные слова

Знаки пунктуации

Знак

Применение

{ }

Скобки комментария

(* *)

Скобки комментария

[ ]

Выделение индексов массивов, элементов множеств, размера строки

( )

Выделение выражений, списков параметров

'

Апостроф для выделения символа или строковой константы

:=

Знак присваивания значения переменной, типизированной константе или функции

;

Разделение предложений программы (операторов и объявлений)

:

Отделение переменной или типизированной константы от типа, метки от оператора

=

Отделение идентификатора типа от описания типа или константы от ее значения

,

Запятая для разделения элементов списка

..

Разделение границ диапазона

.

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

^

Обозначение типа-указателя, значения величины по ее указателю или управляющего символа (коды от 0 до 31)

@

Обозначение адреса переменной, типизированной константы, подпрограммы, метода

#

Обозначение символа по его коду

$

Обозначение директивы компилятора или знак шестнадцатеричного числа

Знаки операций предназначены для обозначения тех или иных арифметических, логических или других действий. Они бывают двух типов: состоящие из небуквенных символов (например, + - * и т. д.) и буквенные операции (например, not, div, mod и т. д.), представляющие собой зарезервированные слова.

Зарезервированные слова включают служебные слова (например, begin, end, div и т. д.) и имена директив (например, external, forward и т. д.). Служебные слова можно использовать только по своему прямому назначению и их нельзя переопределять. Директивы также имеют свое определенное назначение, но в отличие от служебных слов их можно переопределить, однако делать это крайне нежелательно.

25. Тип Массив

Массивом называется совокупность однотипных данных связанных общим именем и упорядоченными индексами.

Массивы в Object Pascal во многом схожи с аналогичными типами данных в других языках программирования. Отличительная особенность массивов заключается в том, что все их компоненты суть данные одного типа (возможно, структурированного). Эти компоненты можно легко упорядочить и обеспечить доступ к любому из них простым указанием его порядкового номера, например:

Описание типа массива задается следующим образом:

<имя типа> = array [ <сп.инд.типов> ] of <тип>;

type

digit = array [0..9] of Char;

matrix = array [byte] of Single;

Здесь <имя типа> - правильный идентификатор; array, of - зарезервированные слова {массив, из); <сп.инд.типов> - список из одного или нескольких индексных типов, разделенных запятыми; квадратные скобки, обрамляющие список, - требование синтаксиса;

<тип> - любой тип Object Pascal.

В качестве индексных типов в Object Pascal можно использовать любые порядковые типы, имеющие мощность не более 2 Гбайт (т. е. Кроме LongWord И Int64)

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

var

a,b : array [1..10] of Real;

Обычно в качестве индексного типа используется тип-диапазон, в котором задаются границы изменения индексов. Так как тип <тип>, идущий в описании массива за словом of, - любой тип Object Pascal, то он может быть, в частности, и другим массивом, например:

type

mat = array [0..5] of array [-2..2] of array [Char] of Byte;

Такую запись можно заменить более компактной:

type

mat = array [0..5,-2..2,char] of Byte;

Глубина вложенности структурированных типов вообще, а следовательно, и массивов - произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничено, однако суммарная длина внутреннего представления любого массива не может быть больше 2 Гбайт.

Над массивами не определены операции отношения. Нельзя, например, записать

if а = b then ...

Сравнить два массива можно поэлементно, например:

var

a,b : array [1..5] of Single;

eq : Boolean;

i : Byte;

begin

eq := True; for i := 1 to 5 do

if a[i] <> b[i] then

eq := False/if eq then

end.

21. Метки

Метка в Object Pascal - это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Метки в Object Pascal бывают двух разновидностей: числовые и символьные. Числовая метка представляет собой последовательность цифр в диапазоне от 0 до 9999. Начальные нули не являются значащими. Числовые метки поддерживаются всеми реализациями языка Pascal.

label a1,a2,a3;

var x,y:real;

begin

read(x);

if x>=-2 then goto a1;

if x<2 then goto a2;

y:=4; goto a2;

a1: y:=sqr(x);

a2: write (y)

end.

Действие оператора goto состоит в передаче управления соответствующему меченному оператору. При использовании меток необходимо руководствоваться следующими правилами: - метка, на которую ссылается оператор goto, должна быть описана в разделе описаний, и она обязательно должна встретиться где-нибудь в теле программы; - метки, описанные в подпрограмме, локализуются в ней, поэтому передача управления извне подпрограммы на метку внутри нее невозможна.