Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Turbo_Pascal_lectures.doc
Скачиваний:
5
Добавлен:
23.03.2015
Размер:
190.46 Кб
Скачать
    1. Расширения типов данных

Целочисленные типы данных

Тип

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

Формат

Shortint

–128..127

со знаком, 8 бит (1 байт)

Integer

–32 768..32 767

со знаком, 16 бит (2 байта)

Longint

–2 147 483 648..2 147 483 647

со знаком, 32 бита (4 байта)

Byte

0..255

без знака, 8 бит (1 байт)

Word

0..65 535

без знака, 16 бит (2 байта)

Примеры:

Var

A:Shortint; W:Word;

Вещественные типы данных

Тип

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

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

Размер (байт)

Real

2.910-39..2.71038

11-12

6

Single

1.510-45..3.41038

7-8

4

Double

5.010-324..1.710308

15-16

8

Extended

3.410-4932..1.2104932

19-20

10

Comp

–263+1..263

до 19

8

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

Тип Comp, по сути, является целочисленным, но обрабатывается сопроцессором, поэтому отнесен к вещественным типам.

Примеры:

Var

Accurate:Double; {для вычислений повышенной точности}

Precise:Extended; {для очень точных расчетов}

Small:Single; {для экономии памяти при умеренной

точности}

Строковый тип. В дополнение к строковым константам введен строковый тип. Соответственно, можно объявлять переменные строкового типа. Предусмотрен ряд операций над данными строкового типа, процедур и функции для работы с ними.

<строковый тип>::="String" [ "[" <целое без знака от 1 до 255> "]" ].

Если после слова String в квадратных скобках указано целое без знака, максимальная длина строки будет равна этому значению. В противном случае максимальная длина будет 255 символов.

Примеры:

Type My_string=String[20];

Var

DisplayLine: String[80];

Last_name:My_string;

Default_Line:String;

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

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

Сложные типы

* Слово Packed можно использовать со сложными типами, но оно не изменяет способа хранения данных.

* Начиная с версии 5.5 добавлен объектный тип данных (Object).

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

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

<конструкция процедурного типа>::= ("Procedure"|"Function") ["("<список формальных параметров>")"] [":"<тип результата>].

Структура списка формальных параметров такая же, как в заголовках процедур или функций. Тип результата указывается только в конструкциях со словом Function.

Примеры:

Type My_proc=Procedure;{процедурный тип без параметров}

SwapProc=Procedure(var X,Y:integer);

MathFunc=Function(x:Real):Real;

Var

Alpha,Beta:My_Proc;

Procedure BuildGraph(x0,x1:Real; Func:MathFunc);

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