Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции Алгоритмические языки.doc
Скачиваний:
84
Добавлен:
14.02.2015
Размер:
814.08 Кб
Скачать

Расширение диапазона значений целых переменных

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

Так, если тип integer устанавливает диапазон целых значений от -32768 до 32767, то целый тип longint расширяет его от -2147483648 до 2147483647.

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

Целые типы

Длина, байт

Название типа

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

1

byte

0 ... 255

1

shortint

-128 ... 127

2

word

0 ... 65535

2

integer

-32768 ... 32767

4

longint

-2147483648 ... 2147483647

При использовании процедур и функций с целочисленными параметрами следует руководствоваться "вложенностью" типов, т.е. везде, где может использоваться WORD, допускается использование BYTE (но не наоборот), в LONGINT входит INTEGER, который, в свою очередь, включает в себя SHORTINT.

Расширение диапазона значений вещественных переменных

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

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

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

Длина, байт

Мантисса

Название типа

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

6

11-12

real

± 2.9E-39 ... ± 1.7E38

4

7-8

single

± 1.5E-45 ... ± 3.4E38

8

15-16

double

± 5.0E-324 ... ± 1.7E308

10

19-20

extended

± 3.4E-4932 ... ± 1.1E4932

Для работы программы с использованием расширенных типов single, double и extended необходимо переключать модель генерации чисел с плавающей точкой. Это делается с помощью добавления в программу директивы {$n+} перед словом program:

{$n+}

program abc;

var a:single;

Без данной директивы попытка присвоить переменной расширенного вещественного типа какое-либо значение закончится ошибкой вида:

Error 116: Must be in 8087 mode to compile this.

(Ошибка 116: Должен быть в 8087 режиме чтобы компилировать это.)

Лекция №5 Представления основных структур программирования: итерация, ветвление, повторение.

Оператор безусловного перехода goto

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

Оператор перехода имеет вид: goto <метка>. Здесь goto - зарезервированное слово (перейти на ... [метку]).

Метка в Турбо Паскале - это произвольный идентификатор, позволяющий именовать (помечать) некоторый оператор программы и таким образом ссылаться на него. Допускается в качестве меток (в том числе) использовать целые числа без знака.

Например:

goto 2341, goto 23, goto 1, goto bl1, goto mnk3, goto n56.

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

label <список меток>.

Например: label 2341; label 1, 2; label bl1, 18, mnk.

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