Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy_k_ekzamenu_po_AiSD.docx
Скачиваний:
42
Добавлен:
29.04.2019
Размер:
417.06 Кб
Скачать

1. Типы данных

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

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

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

a) целый (INTEGER);

b) вещественный (REAL) ;

c) логический (BOOLEAN);

d) символьный (CHAR);

e) указательный (POINTER).

К пользовательским относят 2 типа:

a) перечисляемый;

b) диапазонный.

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

Целый тип - INTEGER

Этот тип включает некоторое подмножество целых, раз­мер которого варьируется от машины к машине. Если для представления целых чисел в машине используется n разря­дов, причем используется дополнительный код, то допусти­мые числа должны удовлетворять условию -2 '<= х< 2 .

Считается, что все операции над данными этого типа выполняются точно и соответствуют обычным правилам арифметики. Если результат выходит за пределы представимого множества, то вычисления будут прерваны. Такое собы­тие называется переполнением.

Числа делятся на знаковые и беззнаковые. Для каждого из них имеется свой диапазон значений:

а)(0..2n-1) для без знаковых чисел

Рис. 1.1

При обработке машиной чисел, используется формат со знаком. Если же машинное слово используется для записи и обработки команд и указателей, то в этом случае использует­ся формат без знака.

Операции над целым типом:

a) Сложение.

b) Вычитание.

c) Умножение.

d) Целочисленное деление.

e) Нахождение остатка по модулю.

f) Нахождение экстремума числа (минимума и макси­мума)

g) Реляционные операции (операции сравнения) (<,>,<=,>=, =,<>)

Примеры: A div В = С

A mod В = D С* B + D = A

7 div 3 = 2

7 mod 3 = 1

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

Вещественный тип - REAL

Вещественные типы образуют ряд подмножеств вещест­венных чисел, которые представлены в машинных форматах с плавающей точкой. Числа

в формате с плавающей точкой характеризуются цело­численными значениями мантиссы и порядка, которые опре­деляют диапазон изменения

и количество верных знаков в представлении чисел ве­щественного типа.

X = +/- М * q(+/-P) - полулогарифмическая форма пред­ставления числа, показана на рисунке 2.

937,56 = 93756 * 10-2 = 0,93756 * 103

Рис. 1.2

Удвоенная точность необходима для того, чтобы уве­личить точность мантиссы.

Логический тип - BOOLEAN

Стандартный логический тип Boolean (размер-1 байт) представляет собой тип данных, любой элемент которого может принимать лишь 2 значения: True и False.

Над логическими элементами данных выполняются ло­гические операции. Основные из них:

a) Отрицание (NOT)

b) Конъюнкция (AND)

c) Дизъюнкция (OR)

Таблица истинности основных логических функций.

Рис. 1.3

Логические значения получаются также при реляци­онных операциях с целыми числами.

Символьный тип – CHAR

Тип CHAR содержит 26 прописных латинских букв и 26 строчных, 10 арабских цифр и некоторое число других гра­фических символов, например, знаки пунктуации.

Подмножества, букв и цифр упорядочены и "соприкаса­ются", т.е.

("А"<= х)&(х <= "Z") - х представляет собой про­писную букву

("0"<= х)&(х <= "9") - х представляет собой цифру Тип CHAR содержит некоторый непечатаемый символ, пробел, его можно использовать как разделитель. Операции:

a) Присваивания

b) Сравнения

c) Определения номера данной литеры в системе коди­рования. ORD(Wi)

d) Нахождение литеры по номеру. CHR(i)

e) Вызов следующей литеры. SUCC(Wi)

f) Вызов предыдущей литеры. PRED(Wi)

Указательный тип -POINTER

Переменная типа указатель является физическим носи­телем адреса величины базового типа. Стандартный тип-указатель Pointer дает указатель, не связанный ни с каким конкретным базовым типом. Этот тип совместим

с любым другим типом-указателем.

Операции:

a) Присваивания

b) Операции с беззнаковыми целыми числами.

При помощи этих операций можно вычислить адрес дан­ных. В машинном виде эти типы занимают максимально возможную длину.

Например:

ABCD:1234 - значение указателя в шестнадцатеричной системе счисления - относительный адрес. Первое число (ABCD) - адрес сегмента Второе число .(1234) - адрес внутри сегмента.

Получение абсолютного адреса из относительного:

Для получения абсолютного адреса необходимо произ­вести сдвиг адреса сегмента влево, и к полученному числу прибавить адрес внутреннего сегмента.

Например:

1) Сдвигаем ABCD на один разряд влево. Получаем ABCD0.

2) Прибавляем 1234. Полученный результат и является абсо­лютным адресом.

ABCD0 1234

---------

ACF04 – абсолютный адрес данного числа.

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