Простые типы данных в Pascal
Простые типы данных
Данные — это общее понятие для всего того, с чем оперирует вычислительная машина. Любой тип данных определяет множество значений, которые может принимать та или иная переменная, и те операции, которые можно к ним применять.С каждой встречающейся в программе переменной должен быть сопоставлен один и только один тип.
В Паскале существуют простые типы двух видов: ординальные типы и вещественный тип. Ординальный тип либо определяется программистом (перечисляемый тип или диапазонный), либо обозначается именем одного из трех предописанных ординальных типов: Boolean, Integer
или Char
. Вещественный тип обозначается именем предописанного типа Real
.
Перечисляемый тип характеризуется множеством входящих в него различных значений, среди которых определен линейный порядок. Сами значения обозначаются в определении этого типа именами.
Диапазонный (ограниченный) тип задается с помощью минимального и максимального значений, относящихся к предварительно описанному ординальному типу. Так порождается новый ординальный тип.
Ординальные типы данных
Ординальный тип данных описывает конечное и упорядоченное множество значений. Эти значения отображаются на последовательность порядковых номеров 0,1,2,…; исключение делается лишь для целых ординальных чисел, которые отображаются сами на себя. Каждый ординальный тип имеет минимальное и максимальное значение. Для всех значений, кроме минимального, существует предшествующее значение, а для всех значений, кроме максимального — последущее.
Предописанные функции succ, pred, ord
воспринимают аргументы любого из ординальных типов:succ(X)
— дает следующее за X ординальное значениеpred(X)
— дает предшествующее X ординальное значение
ord(X)
— дает ординальный номер для XДля всех ординальных типов существуют операции отношения =
,,
,
,
>=
и >
, причем предполагается, что оба операнда одного и того же типа.
Логический тип (Boolean)
Логическое значение — одно из двух истиностных значений, обозначаемых предопределенными именами false
и true
.
Существуют следующие логические операции, дающие логическое значение при применении их к логическим операндам:and
— логическое Иor
— логическое ИЛИnot
— логическое НЕ
Также любая из операций отношения (=
,,
,
,
>=
,>
,in
) поставляет логический результат.
Кроме того логический тип определен так, что false
true.
Существуют и предописанные логические функции (т.е функции, дающие логический результат):
odd(F)
— true, если целое F-нечетное и результат false, если F-четноеeoln(F)
— проверка на конец строкиeof(F)
— проверка на конец файлаЦелый тип (Integer)
Тип integer включает в себя множество целых чисел.
При работе с целыми операндами следующие арифметические операции дают целые значения:*
— умножениеdiv
— целая часть от деленияmod
— остаток от деления+
— сложение-
— вычитание
В Паскале существует также предописанная константа с именем MaxInt
, которая содержит максимальное значение целого типа Integer и равна 32767
Целый результат дают и четыре важные предописанные функции:abs(I)
— абсолютное значение целого значения Isgr(I)
— целое значение I, возведенное в квадрат при условии, что I
trunc(R)
— выдает целую часть вещественного числа Rround(R)
— выдает округленное целое. При этом: для R>0 означает trunc(R+0.5)
, а для Rtrunc(R-0.5)
Если I — целое значение, то:succ(I)
— дает следующее целое значение (I+1)pred(I)
— дает предыдущее целое значение (I-1)
Символьный тип (Char)
Значениями типа Char являются элементы конечного и упорядоченного множества символов. Значения такого типа обозначаются одним символом, заключенным в одни кавычки (апострофы). Если нужен сам апостроф, то он пишется дважды.
Примеры: '*' 'G' '3' '''' 'X'
- Для типа Char справедливы следующие минимальные допущения:
- Десятичные цифры от 0 до 9 упорядочены в соответствии с их числовыми значениями и следуют одна за другой (например,
succ('5') = '6'
). - Могут существовать прописные буквы от ‘A’ до ‘Z’; если это так, то они упорядочены в алфавитном порядке, но не обязательно следуют одна за другой (например, ‘A’
- Могут существовать строчные буквы от ‘a’ до ‘z’; если это так, то они упорядочены в алфавитном порядке, но не обязательно следуют одна за другой (например, ‘a’
Для отображения заданного множества символов на порядковые номера и обратно существуют две предописанные функции:ord(C)
— дает порядковый номер символа С в упомянутом упорядоченном множестве символовchr(I)
— дает символ с порядковым номером I
Для аргументов типа Char предописанные функции pred
и succ
могут быть определены таким образом:pred(C) = chr(ord(C)-I)
succ(C) = chr(ord(C)+I)
Замечание. Предшествующий данному либо следующий за ним символ зависит от указанного множества символов, поэтому оба этих соотношения справедливы только в том случае, когда предшествующий или следующий символ существует.
Вещественный тип (Real)
Значениями вещественного типа являются элементы определяемого реализацией подмножества вещественных чисел.
Все операции над величинами вещественного типа — приближенные, их точность определяется реализацией (машиной), с которой вы имеете дело. Вещественный тип относится к простому типу, это не ординальный тип. У вещественных значений нет ординального номера и для любого из них не существует предшествующего и следующего значений.
Если хотя бы один из операндов — вещественного типа (другой может быть и целым), следующие операции дают вещественный результат:*
— умножение/
— деление (оба операнда могут быть целыми, но результат всегда вещественный)+
— сложение-
— вычитание
Существуют предописанные функции, дающие вещественный результат при вещественном аргументе:abs(R)
sqr(R)
— R в квадрате, если результат не выходит за диапазон вещественных чиселА эти предописанные функции дают вещественный результат при целом или вещественном аргументе:sin(X)
— дает синус Х; Х выражено в радианахcos(X)
— дает косинус Х; Х выражено в радианахarctan(X)
— дает выраженное в радианах значение арктангенса от Хln(X)
— дает значение натурального (с основанием е) логарифма для Х, Х>0exp(X)
— дает значение экспоненциальной функции (т.е в степени Х)sqrt(X)
— дает значение корня квадратного Х, Х>=0
Предупреждение. К вещественным аргументам нельзя применять функции pred, succ
Нельзя использовать значения вещественного типа при индексировании массивов, для управления в цикле с параметром, для определения базового типа множеств, для индексирования в операторе варианта.
Идентификатор | Длина (байт) | Диапазон значений | Операции |
Целые типы | |||
integer | 2 | -32768..32767 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
byte | 1 | 0..255 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
word | 2 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > | |
shortint | 1 | -128..127 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
longint | 4 | -2147483648..2147483647 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
Вещественные типы | |||
real | 6 | 2,9×10-39— 1,7×1038 | +, -, /, *, >=, <=, =, <>, <, > |
single | 4 | 1,5×10-45— 3,4×1038 | +, -, /, *, >=, <=, =, <>, <, > |
double | 8 | 5×10-324— 1,7×10308 | +, -, /, *, >=, <=, =, <>, <, > |
extended | 10 | 3,4×10-4932— 1,1×104932 | +, -, /, *, >=, <=, =, <>, <, > |
Логический тип | |||
boolean | 1 | true, false | Not, And, Or, Xor, >=, <=, =, <>, <, > |
Символьный тип | |||
char | 1 | все символы кода ASCII | +, >=, <=, =, <>, <, > |
studfiles.net
Целые типы в Pascal ABC
⇐ ПредыдущаяСтр 5 из 25Следующая ⇒В Pascal ABC имеется три стандартных типа целых чисел: Byte, Integer и Word. Диапазон их возможных значений зависит от внутреннего представления числа, которое может занимать один, два или четыре байта. В таблице 3 приведены характеристики этих целых типов.
Таблица 3
Классификация целых типов
Длина, байт | Название | Диапазон | Примечание |
BYTE WORD INTEGER | от 0 до 255 от 0 до 65535 от -2147483648 до +2147483647 | Короткое целое без знака Целое без знака Целое со знаком |
Компилятор языка Pascal ABC определяет максимальное значение MAXINT для данных типа INTEGER. При этом справедливо будет соотношение:
-MAXINT <= K <= MAXINT
Описание переменных целых типов производится в разделе описаний VAR:
Var <имя переменной> : <целый тип>;
где <целый тип > может быть определен как Byte, Integer или Word.
Например:
VAR K: INTEGER;
I, J:BYTE;
Для целых типов определены следующие операции: сложение, вычитание (имеют более низкий приоритет), умножение и деление — DIV, MOD. К целым типам применимы функции из таблицы 4. Функции TRUNC(X) и ROUND(X) с вещественным аргументом также дают целый результат (см. табл. 2). Стандартные математические функции в случае задания целого аргумента всегда возвращают вещественные значения (см. табл. 2).
При использовании процедур и функций с целочисленными параметрами следует руководствоваться правилом «вложенности» типов, т.е. везде, где в качестве аргумента используется тип WORD, можно применять тип BYTE. Для арифметических операций, если операнды относятся к разным целым типам, тип результата имеет максимальную мощность диапазона, т.е. для типов операндов Byte и Word в выражении тип результата будет Word.
Таблица 4
Встроенные процедуры и функции для целых типов
Обращение | Тип результата | Действие |
ABS(X) SQR(X) CHR(B)) ODD(L) RANDOM(W) DEC(Х, [i] ) INC(Х , [i] ) | Как у аргумента Как у аргумента CHAR BOOLEAN Как у аргумента Процедура Процедура | Возвращает модуль числа Х Возвращает квадрат числа Х Возвращает символ по его коду Возвращает значение TRUE, если аргумент – нечетное число, FALSE — если четное Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=X<=W Уменьшает Х на 1 [на i] Увеличивает Х на 1 [на i] |
Вещественные типы
В отличие от целых типов значения вещественных типов определяют число с десятичной точкой лишь с некоторой точностью, зависящей от внутреннего представления числа. Вещественное число в памяти ПК хранится в формате, состоящем из знака, мантиссы и порядка числа. Десятичная точка подразумевается стоящей перед левым (старшим) разрядом мантиссы (такая мантисса называется нормализованной). При выполнении операций десятичная точка сдвигается путем выполнения умножения мантиссы наE (символ экспоненты) с порядком.
Например, запись числа в виде: <знак> <мантисса> Е <порядок> соответствует представлению числа <знак> <мантисса>*10 <порядок>.
В Pascal ABC используются только два вещественных типа – REAL и COMPLEX , характеристики которых приведены в таблице 5.
Таблица 5
Вещественные типы
Длина, байт | Название типа | Значащие цифры мантиссы | Диапазон десятичного порядка |
REAL COMPLEX | 15..16 15..16 | -324 …+308 -324 …+308 |
Объявление переменных вещественных типов производится в разделе описаний переменных VAR аналогично переменным целых типов в виде:
Var <переменная> : <вещественный тип>;
где <вещественный тип > может быть задан только Real или Complex.
Для работы с вещественными типами определены стандартные функции: sin, cos, arctаn, ln, exp, sqr, abs, sqrt (табл. 2), а также функции вещественного типа (табл. 6).
Таблица 6
Встроенные функции вещественного типа
Обращение | Тип параметра | Тип результата | Примечание |
Pi Frac(Х) Int(x) Random Randomize | - вещественный вещественный - - | вещественный вещественный вещественный вещественный - | Pi = 3,141592653 Дробная часть Х Целая часть x 0<x<1 — случайное число Инициализация датчика случайных чисел |
При этом операции +, -, *, / в арифметическом выражении дают вещественный результат, если хотя бы один из операндов вещественный.
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
arhivinfo.ru