Вещественный тип в паскале – Типы данных в Turbo Pascal. Порядковый, вещественный, структурированный. Совместимость и преобразование типов. Типы данных

Простые типы данных в 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) поставляет логический результат.

Кроме того логический тип определен так, что falsetrue.

Существуют и предописанные логические функции (т.е функции, дающие логический результат):
odd(F) — true, если целое F-нечетное и результат false, если F-четное
eoln(F) — проверка на конец строки
eof(F) — проверка на конец файла

Целый тип (Integer)

Тип integer включает в себя множество целых чисел.

При работе с целыми операндами следующие арифметические операции дают целые значения:
* — умножение
div — целая часть от деления
mod — остаток от деления
+ — сложение
- — вычитание

В Паскале существует также предописанная константа с именем MaxInt, которая содержит максимальное значение целого типа Integer и равна 32767

Целый результат дают и четыре важные предописанные функции:
abs(I) — абсолютное значение целого значения I
sgr(I) — целое значение I, возведенное в квадрат при условии, что I
trunc(R) — выдает целую часть вещественного числа R
round(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 справедливы следующие минимальные допущения:

  1. Десятичные цифры от 0 до 9 упорядочены в соответствии с их числовыми значениями и следуют одна за другой (например, succ('5') = '6').
  2. Могут существовать прописные буквы от ‘A’ до ‘Z’; если это так, то они упорядочены в алфавитном порядке, но не обязательно следуют одна за другой (например, ‘A’
  3. Могут существовать строчные буквы от ‘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) — абсолютное значение R
sqr(R) — R в квадрате, если результат не выходит за диапазон вещественных чисел

А эти предописанные функции дают вещественный результат при целом или вещественном аргументе:
sin(X) — дает синус Х; Х выражено в радианах
cos(X) — дает косинус Х; Х выражено в радианах
arctan(X) — дает выраженное в радианах значение арктангенса от Х
ln(X) — дает значение натурального (с основанием е) логарифма для Х, Х>0
exp(X) — дает значение экспоненциальной функции (т.е в степени Х)
sqrt(X) — дает значение корня квадратного Х, Х>=0

Предупреждение. К вещественным аргументам нельзя применять функции pred, succ Нельзя использовать значения вещественного типа при индексировании массивов, для управления в цикле с параметром, для определения базового типа множеств, для индексирования в операторе варианта.

program4you.ru

Типы данных в Turbo Pascal. Порядковый, вещественный, структурированный. Совместимость и преобразование типов. Типы данных

Идентификатор

Длина (байт)

Диапазон
значений

Операции

Целые типы

integer

2

-32768..32767

+, -, /, *, Div,
Mod,
>=, <=, =, <>, <, >

byte

1

0..255

+, -, /, *, Div,
Mod,
>=, <=, =, <>, <, >

word

2

0..65535

+, -, /, *, 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

Author: alexxlab

Отправить ответ

avatar
  Подписаться  
Уведомление о