Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LR1-3.doc
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
499.71 Кб
Скачать

Тема: Числовые типы данных. Выражения. Стандартные функции. Решение задач линейной структуры Числовые типы

Наиболее распространенные в математике типы чисел – это целые числа, которые представляют бесконечное множество дискретных значений, и действительные числа, которые представляют неограниченный континуум значений.

Описание целых типов

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

ЦЕЛЫЕ ТИПЫ

Название

Длина, байт

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

Byte

1

0 . . 255

ShortInt

1

-128 . . +127

Word

2

0 . . 65535

Integer

2

-32768 . . +32767

LongInt

4

-2 147 483 648 . . +2 147 483 647

С целыми числами можно выполнять следующие операции:

  • Арифметические:

сложение (+); вычитание  (-); умножение  (*); остаток от деления (mod); возведение в степень; унарный плюс (+); унарный минус (-).

  • Операции отношения:

отношение равенства (=); отношение неравенства (<>); отношение меньше (<); отношение больше (>); отношение не меньше (>=); отношение не больше (<=).

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

Особое внимание следует уделить операции деления целых чисел. В Турбо Паскале допускается две операции деления, которые соответственно обозначаются ‘/’ и div. Нужно знать, что результатом деления ‘/’ является не целое, а вещественное число (это справедливо, даже если вы делите 8 на 2, т.е. 8/2=4.0). Деление div – это целочисленное деление, т.е. тип результата целый.

Описание действительных типов

К вещественному типу относится подмножество вещественных чисел, которые могут быть представлены в так называемом формате с плавающей запятой и фиксированным числом цифр. С плавающей точкой каждое число представляется в виде двух групп цифр. Первая группа цифр называется мантиссой, вторая – порядком. В общем виде число в форме с плавающей точкой может быть представлено так: X= {+|-}MP{+ | -} r , где M – мантисса числа; r – порядок числа (r – целое число); P – основание системы счисления. Например, для десятичного основания представление 2Е-1 (здесь Е – основание десятичной системы счисления) будет иметь вид: 2*10-1=0.2, а представление 1.234Е5 будет соответствовать: 1.234*105=123400.0.

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

Длина, байт

Название

Количество значащих цифр

Диапазон десятичного порядка

4

Single

7..8

-45..+38

6

Real

11 .. 12

-39 . . +38

8

Double

15 . .16

-324 . . +308

10

Extended

19 . .20

-4951 . . +4932

8

Comp

19 . . 20

-2*1063 +1..+2*1063 -1

При описании вещественной переменной типа real в памяти компьютера будет создана переменная размерностью 4 байта. При этом 3 байта будут отданы под мантиссу, а один – под порядок.

Над действительными числами можно выполнять следующие операции:

  • Арифметические:

сложение (+); вычитание  (-); умножение  (*); деление (/); возведение в степень; унарный плюс (+); унарный минус (-).

  • Операции отношения: отношение равенства (=);                          отношение неравенства (<>); отношение меньше (<);                              отношение больше (>); отношение не меньше (>=);                       отношение не больше (<=).

Как видим, Турбо Паскаль характеризуется богатой гаммой вещественных типов, однако доступ к типам single, double и extended возможен только при особых режимах компиляции. Эти типы рассчитаны на аппаратную поддержку арифметики с плавающей точкой и для их эффективного использования в состав ПК должен входить математический сопроцессор.

Особое положение в Турбо Паскале занимает тип comp, который трактуется как вещественное число без экспоненциальной и дробной частей. Фактически, comp – это «большое» целое число со знаком, сохраняющее 19..20 значащих десятичных цифр. В то же время тип comp в выражениях полностью совместим с другими вещественными типами: над ним определены все вещественные операции, он может использоваться как аргумент математических функций и т.д.

О преобразовании числовых типов

В Паскале почти невозможны неявные (автоматические) преобразования типов. Исключение сделано только для типа integer, который разрешается использовать в выражениях типа real. Например, если переменные описаны следующим образом:

Var

X : integer; Y: real;

то оператор

Y := X+2;

будет синтаксически правильным, хотя справа от знака присваивания стоит целочисленное выражение, а слева – вещественная переменная, компилятор сделает преобразование типов автоматически. Обратное же преобразование автоматически типа real в тип integer в Турбо Паскале невозможно. Вспомним, какое количество байт выделяется под переменные типа integer и real: под целочисленный тип integer выделяется 2 байта памяти, а под real – 6 байта. Для преобразования real в integer имеются две встроенные функции: round (x) округляет вещественное x до ближайшего целого, trunc (x) усекает вещественное число путем отбрасывания дробной части.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]