Pred Ptr Round SizeOf Succ Swap Trunc .




Abs Chr Hi Length Lo Odd Ord

 

Примеры константных выражений:


CONST a = 0;

b = $B5;

c = (b-a) DIV 2;

Ln10 = 2.302585092994045684;

d = 1/Ln10;

e = Trunc (d);

f ='хорошая погода' + #13#10;

g = ['A'..'Z']+['a'..'z'];
Значения констант в дальнейшем не могут быть переопределены.

 


1.3. Переменные

 

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

Описание переменных в разделе описаний открывается спецификаци-ей VAR. Имена переменных, относящихся к одному типу, записываются че-рез запятую, после чего следует двоеточие и имя типа, например:

 

VAR x,y: real;

b: Boolean;

bim,bom: char;

 

При описании переменных другого типа не требуется повторная запись слова VAR, хотя это и не будет ошибкой.

1.4. Вещественный тип

 

Набор значений вещественного типа определяется его реализацией в конкретной вычислительной системе. Для вещественного типа существуют понятия диапазон и точность.

Диапазон определяется минимальным (min) и максимальным (max) абсолютными значениями. В набор значений вещественного типа входит также число 0 (ноль) (рис. 2.1).

Наличие "мертвой зоны" от -min до min обусловлено дискрет-ностью представления чисел в ЭВМ. Если при вычислениях значение вы-ражения попадает в эту зону, то оно считается равным нулю.

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

от 0.294×10-38 до 1.7×1038,
а точность - примерно 11-12 десятичных разрядов.

-max -min 0 min max Рис. 2.1. Набор значений вещественного типа

Для вещественного типа определены четыре операции:

+ - сложение,

- - вычитание,

* - умножение,

/ - деление.

Старшие операции - умножение и деление, младшие - сложение и вычитание.

Константы вещественного типа задаются в двух формах:
- с десятичной точкой, например: -5.272;
- так называемой полулогарифмической форме:

mEp,
где m - мантисса (число с десятичной точкой);
p - десятичный порядок (целое число со знаком; знак "+" может быть опущен).

Примеры чисел в полулогарифмической форме:

0.283E5

31.15E-4

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

 

 

Таблица 2.1

Вещественные типы в Турбо Паскале

 

Обозначение типа Диапазон значений Количество цифр мантиссы Память (байт)
real 0.294×10-38 - 1.7×1038 11-12  
single 1.5×10-45 - 3.4×1038 7-8  
double 5.0×10-324 - 1.7×10308 15-16  
extended 3.4×10-4932 - 1.1×104932 19-20  

 

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

 

2.5. Целый тип

 

Диапазон представления данных целого типа:


-(maxint+1).. maxint,


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

Для данных целого типа определены операции:

* - умножение,

DIV, MOD - деление,

+ - сложение,

- - вычитание.

Умножение и деление - старшие, сложение и вычитание - младшие операции.

Операция DIV дает целую часть от деления, например:
17 DIV 3 = 5.

Операция MOD определяется следующим образом:
a MOD b = a - ((a DIV b)*b),
т.е. результат есть остаток от деления a на b.

Правила знаков для операций деления следующие.
a DIV b: +, если знаки a и b одинаковые,
-, если знаки a и bразные.
a MOD b: совпадает со знаком а.

 

В текстах программ составные символы DIV, MOD следует выделять пробелами слева и справа.

К данным целого типа применима операция деления "/" (косая черта), однако результат будет уже вещественного типа.

Результат целого типа дают функции Trunc и Round при примене-нии их к данным вещественного типа. Функции Abs и Sqr также дают ре-зультат целого типа, но только в том случае, если их аргументы целого типа.

В языке Турбо Паскаль имеется группа целых типов, характеристики которых приведены в табл.2.2.

Таблица 2.2

Целые типы в Турбо Паскале

 

Обозначение типа Диапазон значений Размер памяти (байт)
shortint -128.. 127  
integer -32728.. 32767  
longint -2147483648.. 2147483647  
byte 0.. 255  
word 0.. 65535  

 

Имеющийся тип comp с диапазоном -263..263-1 обрабатывается по правилам вещественного типа, но не может содержать дробной части.

Значения целых типов могут изображаться как в обычной (десятич-ной) форме, так и в шестнадцатеричной. В последнем случае шестнадцате-ричным цифрам 0,1..9,A,B,C,D,E,F должен предшествовать символ $, например

$C1 = 12×161 + 1 = 193.

 

1.6. Булевский тип

 

Данные булевского типа могут принимать два значения:

- FALSE - ложь,

- TRUE - истина.

Для данных булевского типа определены следующие операции:

- NOT - отрицание;

- AND - конъюнкция (логическое умножение);

- OR - дизъюнкция (логическое сложение);

- XOR - исключающее "или" (отрицание равнозначности) - в Турбо Паскале.

Старшинство операций: NOT - AND - (OR, XOR).

Операция NOT - унарная, т.е. определяет действие над одним операндом: изменяет его значение на противоположное.

Результатом операции AND является TRUE только в том случае, если оба операнда имеют значение TRUE, и FALSE - в противном случае.

Операция OR дает значение TRUE, если хотя бы один операнд имеет значение TRUE.

Операция XOR дает значение TRUE, если операнды различны, а если одинаковы - то значение FALSE.

Результат булевского типа дают операции отношения (табл.2.3):

Таблица 2.3

Список операций отношения

обозначение в Паскале < <= = <> >= >
математический смысл < £ = ¹ ³ >

 

Результат булевского типа дает функция Odd (x).

 

 

1.7. Символьный тип

 

Символьный тип служит для задания символов. Для каждой вычислительной системы определен свой набор символов. Сейчас в основном используется стандарт ASCII, включающий набор из 128 символов. В него входят строчные и прописные буквы латинского алфавита, арабские цифры, специальные знаки и так называемые служебные символы (номера 0..31). В русскоязычной версии прописные буквы латинского алфавита и некоторые специальные знаки заменены на символы кириллицы (русского алфавита), и такой набор называется КОИ-7. В более совершенных вычислительных системах используется расширенный код ASCII, состоящий из 256 символов. Дополнительные 128 - это символы псевдографики. Именно в этой области у нас обычно располагаются символы кириллицы (строчные и прописные буквы).

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

Ord (c) - возвращает порядковый номер символа "с" в наборе;

Chr (k) - возвращает символ по его порядковому номеру "к".

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

Примеры символьных констант:
'+' 'A' ',' '''' (это апостроф).

Константы символьного типа могут задаваться своими номерами, которым предшествует символ #, например
#7 #62 #$A1,
что удобно для обозначения символов, не имеющих начертания.

К данным символьного типа применимы операции отношения. Смысл их заключается в проверке на взаимное расположение в наборе ASCII. Например:
'a' < 'b'
имеет значение TRUE, поскольку символ 'a' предшествует символу 'b'. Другими словами, в операциях отношения производится сравнение поряд-ковых номеров символов.

При вводе последовательности символов разделители не применяются.

 

 

2.8. Упорядоченные типы

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

К упорядоченным типам относятся:

- целый;

- булевский;

- символьный;

- перечислимый (см.п.2.9).

Данные целого типа нумеруются своими значениями, булевского: FALSE - 0, TRUE - 1, символьного - в соответсвии с кодом ASCII.

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

- Ord (x) - порядковый номер значения x в типе;

- Pred (x) - предшествующее значению x в типе;

- Succ (x) - следующее за x значение в типе.

Например, выражения
Ord (5)=5;
Pred (5)=4;
Succ (5)=6;
Pred (TRUE)= FALSE;
Pred ('d')='c';
Succ ('x')='y';
Ord (TRUE)=1
имеют значение TRUE (т.е.истинны).

 

 

2.9. Перечислимый тип

 

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

Например, тип day - 7 дней недели от понедельника - можно опре-делить следующим образом:


TYPE day = (mon,tue,wed,thu,fri,sat,sun).

 

Перечислимый тип относится к упорядоченным, следовательно, к нему применимы функции Pred, Succ, Ord.

 

 


2.10. Ограниченный тип (тип "диапазон")

 

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


TYPE chi = 8..125;
sm = 'd'..'k';
VAR z,a: chi;
kl: sm;
b: 'm'..'z';
Здесь определены два ограниченных типа: chi имеет базовый тип целый, а sm - символьный.

Переменные a,z, в соответствии с описанием, могут принимать зна-чения из диапазона 8.. 125, а переменная kl - из диапазона 'd'..'k'.

Для переменной b указан диапазон непосредственно в разделе описа-ний переменных, что тоже допустимо.

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

 

 

2.11. Преобразование типов

 

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


Odd,Trunc,Round,Ord,Chr.


Язык Турбо Паскаль имеет дополнительные возможности для преобразования типов. Отметим одну: явное преобразование внутри целого или вещественного типов, которое реализуется с помощью функции - имени типа, к которому приводится значение преобразуемого выражения. Пусть, например, имеется описание:


VAR a: integer;
b: word;
c: longint.


Тогда возможны следующие преобразования:


b:= Word (2+ Trunc (3.1));
c:= Longint (b);
a:= Integer (c DIV 5).

 

При таких преобразованиях более длинные числа усекаются до размеров коротких. Так, например, в третьем случае значение выражения типа longint усечется до двух байт - размера переменной a.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: