б) Национальные алфавиты можно использовать только в строковых выражениях.

2.2. Простые и составные специальные символы, используемые на ПК.

Перечисленный ниже набор несколько расширяет стандарт PASCAL, однако на ПК является стандартом de facto.

Простые специальные символы:

+

Плюс – “сложение”

Минус – “вычитание”

*

Звездочка – “умножение”

/

косая черта (slash) – “деление”

=

Равно (Замечание: в C-образных языках в качестве этого знака используется = =)

Больше

Меньше

[

левая квадратная скобка – открытие индекса массива

]

правая квадратная скобка – закрытие индекса массива

(

левая круглая скобка

)

правая круглая скобка

{

левая фигурная скобка – открытие комментария

}

правая фигурная скобка – закрытие комментария

@

коммерческое a (“эт”) – знак адресации

.

Точка

,

Запятая

:

Двоеточие

;

точка с запятой

'

апостроф (одиночная кавычка) – открытие и закрытие строки символов

"

двойные кавычки – не имеет специального назначения

#

номер (hash) - не имеет специального назначения

$

знак доллара – используется в 16-ричной нотации чисел

\

обратная косая черта (backslash) - не имеет специального назначения

^

"шляпка" – используется для работы с указателями

~

Тильда - не имеет специального назначения

знак пробела (невидимый)

знак табуляции (невидимый)

Составные специальные символы:

:=

Присваивание ( в C-образных языках и BASIC используется знак “ = “)

<> 

не равно( в C-образных языках используется знак “! =” )

..

Диапазон значений ( в C-образных языках и BASIC отсутствует)

(*

Начало комментария. Замена знаку “{“, но может быть только в комбинации с “*)” - в C-образных языках используется знак “/*”

*)

конец комментария. Замена знаку “}”, но может быть только в комбинации с “(*” - в C-образных языках используется знак “*/”

(.

Замена знаку “[“, но может быть только в комбинации с “.)” Редко используется.

.)

Замена знаку “]”, но может быть только в комбинации с “(.” . Редко используется.

//

Однострочный комментарий.

Специальные символы (простые или составные) служат разделителями в выражениях языка PASCAL. Они не могут входить с состав идентификаторов.

НЕ нашли? Не то? Что вы ищете?

Отсутствующие в Object PASCAL символы, имеющиеся в С-образных языках:

^ - возведение в степень (начиная с Delphi 4 в Object PASCAL есть функция power)

<< - левый побитовый сдвиг (“shl” в Object PASCAL)

>> - правый побитовый сдвиг (“shr” в Object PASCAL)

>>> - правый побитовый сдвиг с сохранением знака отрицательного числа ( в Object PASCAL отсутствует)

Символы формирования текста:

Знак пробела <Space>, табуляции <Tab>, символы перевода на новую строку <LF>, конца страницы <FF>, конца файла <EOF> и другие управляющие символы. Действуют при просмотре исходных текстов языка Object PASCAL и за исключением ряда случаев — в строковых выражениях.

2.3. Стандартные типы данных. Двоичное представление чисел и дополнительный код.

Целые типы

Byte: 0..255 — байтовый (1 байт)

ShortInt: -128..127 — короткое целое (1 байт)

Word: 0..65535 — 16-ричное слово (2 байта)

Integer(в C, C++,…-int) — целые. Начиная с Delphi3 по умолчанию идентичен longInt – см. далее

LongInt: -2147483648..2147483647 — длинное целое (диапазон примерно

-2e9..2e9, размер 4 байта)

LongWord – 32-битные без знака (4байта)

Int64 – 64-битные со знаком (8 байт) – имеют особенности в правилах приведения типа

Вещественные типы

Real(в C - float) — вещественные, (изначально был 6 байт, 11..12 значащих цифр мантиссы): 0.0, 0.1, 1e6,2.9e-39, -1.7e38

Начиная с Delphi3 по умолчанию идентичен Double (см. далее)

Double: 5.0e-324..1.7e308 — двойная точность (8 байт, 15..16 значащих

цифр мантиссы)

Extended: 1.9e-4951..1.1e4932 — расширенная точность (10 байт, 19..20

значащих цифр мантиссы)

Булевский (логический) тип

Boolean (1 байт): величины этого типа принимают только значения true или false. Во всех C-образных языках кроме Java идентичен байтовому типу

Символьный (литерный) тип

Char (1 байт): один символ. 'A', 'b', '*', ' ', '/'. (Существует в Java, в других C-образных языках идентичен байтовому типу. В Java константы символьного типа пишутся в двойных кавычках: “A”, “b” и т. д).

Строковый тип

String (не менее 4 байт): произвольное число символов (от 0 до 2e9). 'A', 'abcd', 'мама моет раму', ' '. Работа со строками в Object PASCAL не имеет аналогов по мощности и удобству в других языках программирования

Двоичное представление целых положительных чисел

Двоичное представление целых отрицательных чисел

Двоичное представление вещественных чисел

Двоичные дроби. … Мантисса и логарифм…

2.4. Особенности работы с некоторыми типами данных

1.  64-битовые целые

Описание:

Var a:Int64;

Значения — 263 … 263 -1 - знаковые 64-битные.

Преобразование обычного числа в 64-битовое – с помощью функции Int64.

Примеры задания 64-битных статических переменных (о том, что это такое, см. :

const Num64=Int64(17);

const Num64b:Int64=17;

const Num64c=3000000000;

Вызовы осуществляются только с 64-битными числами во всех частях выражения:

a:=a+Int64(1);

2.  32-битовые без знака — Longword;

0..4294967295 (то есть чуть больше 4*109 ) — то есть то же, что Cardinal;

3.  Изменения в типе Real

Был 48-битовым, теперь идентичен 64-битовому Double. Для совместимости можно использовать тип Real48 либо ставить опцию компилятору

{REALCOMPATIBILITY ON}

2.5. Арифметические операторы.

Бинарные полиморфные (тип результата определяется по правилам приведения типов,

см. далее):

+ сложение (все целые и вещественные типы, строковые типы, множества).

Пример: a+b

- вычитание (все целые и вещественные типы, множества): a-b

* умножение (все целые и вещественные типы, множества): a*b

/ деление (все целые и вещественные типы, результат — вещественный):

a/b

Бинарные неполиморфные целочисленные:

div — целочисленное деление. Пример: a div b

mod — остаток от целочисленного деления a mod b

(в C-образных %):

and — побитовое "И" (в C-образных &) a and b

or — побитовое "ИЛИ"(в C-образных | ) a or b

xor — побитовое "исключающее ИЛИ"(в C-образных ^ ) a xor b

shl — побитовый сдвиг влево(в C-образных <<) a shl b

shr — побитовый сдвиг вправо(в C-образных >>) a shr b

Унарные полиморфные:

+ сохранение знака (целые и вещественные типы). Пример: +a

·  изменение знака на противоположный(целые и вещественные типы).

Пример: - a

Унарные целочисленные:

not побитовое "НЕ" (целые типы). Пример: not a

2.6. Логические операторы и операции отношения.

Логические операторы:

and логическое "И". Пример: a and b

or логическое "ИЛИ": a or b

xor логическое "исключающее ИЛИ": a xor b

not логическое "НЕ": not a

Операции отношения (результат — типа boolean):

= равно. Пример: A=B

<> не равно: A<>B

> больше: A>B

< меньше: A<B

>= больше или не равно: A>=B

<= меньше или не равно: A<=B

in принадлежность множеству: A in B

2.7. Потеря точности, потеря порядка и переполнение при арифметических операциях.

Пусть x1 – арифметическая переменная real, x2 – вещественная extended. Тогда выполнение присваиваний x2:=1+1e-14 даст 1.00000000000001, а x1:=1+1e-14 даст 10000000000000,т. к. числа real имеют всего 12 значащих цифр мантиссы. После этого выражение x2:=x2-1 даст 1e-14, а выражение x1:=x1-1 даст 0. Это потеря точности. Если мы имеем выражение типа a+b-c, где a очень близко к c, а b<<a (и, значит, b<<c), то большее значение приобретает порядок действий. При этом выражение (a-c)+b дает гораздо лучшую точность, чем (a+b)-c. По умолчанию действия выполняются слева направо, поэтому a+b-c это то же, что (a-c)+b. Потеря порядка – выход при умножении или делении за пределы минимального порядка. Так, x1:=1e/-26 даст не 0, а ошибку потери порядка. Арифметическое переполнение – выход за пределы максимальных значений для данного типа. Так, x1:=1e20*1e20 даст переполнение вещественного типа. А если I типа integer, I:=20000; j:=15000, то выражения I:=I+j, I:=2*I, либо I:=2*j-10000 дадут переполнение. При этом возникновение диагностики переполнения во время выполнения программы зависит от опции компилятора.

2.8. Структура простейшей программы.

В PASCAL любое число пробелов, символов <TAB> или переносов на новую строку везде приводится к одному пробелу (конечно, кроме строковых выражений). Имя файла с текстом программы должно быть то же, что имя программы, а расширение имени файла после точки должно быть PAS. Многострочные комментарии заключаются в фигурные скобки, однострочные – начинаются со знака “//”.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17