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

8. Символьный тип

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

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

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

("0"<= x)&(x <= "9") - x представляет собой цифру

Тип CHAR содержит некоторый непечатаемый символ, пробел, его можно

использовать как разделитель.

Операции:

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

b) Сравнения

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

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

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

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

9. Перечислимый тип

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

Значения являются неповторяющимися в пределах программы идентификаторами, количество которых не может быть больше 256.

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

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

На физическом уровне над переменными перечислимого типа определены операции:

      • создания,

      • уничтожения,

      • выбора,

      • обновления.

При этом выполняется определение порядкового номера идентификатора по его значению и, наоборот, по номеру идентификатора - его значение.

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

При этом сравниваются порядковые номера значений.

10. Интервальный тип

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

При объявлении интервального типа указываются нижняя и верхняя границы интервала, т. е. наименьшее и наибольшее значение, которое может принимать переменная объявляемого типа. В общем виде объявление интервального типа выглядит так: Тип = НижняяГраница..ВерхняяГраница; (TIndex = 0 .. 100; TRusChar = 'А' .. 'я';). В объявлении интервального типа можно использовать именованные константы. Интервальный тип удобно использовать при объявлении массивов.

11. Указатели

Тип указателя представляет собой адрес ячейки памяти.

Адрес представляется в виде двух 16-разрядных слов - сегмента и смещения.

Сегментная часть адреса загружается в один из специальных сегментных регистров. При обращении по адресу задается идентификатор сегментного регистра и 16-битное смещение.

В программе на языке высокого уровня указатели могут быть типизированными и нетипизированными.

При объявлении типизированного указателя определяется и тип объекта в памяти, адресуемого этим указателем.

Нетипизированный указатель (тип pointer в Pascal или void * в C) служит для представления адреса, по которому содержатся данные неизвестного типа.

Обращение по адресу, задаваемому нетипизированным указателем, невозможно.

Основными операциями, в которых участвуют указатели являются:

      • присваивание,

      • получение адреса,

      • выборка.

В языке C доступны также операции адресной арифметики.

Присваивание является двухместной операцией.

Операция получения адреса - одноместная, ее операнд может иметь любой тип, результатом является типизированный указатель, содержащий адрес объекта-операнда.

Операция выборки - одноместная, ее операндом является обязательно типизированный указатель, результат - данные, выбранные из памяти по адресу, заданному операндом. Тип результата определяется типом указателя-операнда.

Можно вычесть один указатель из другого. Результат такого вычитания будет иметь тип целого числа со знаком. Его значение показывает на сколько байт один адрес отстоит от другого в памяти.

В связи с имеющимися в языке C расширенными средствами работы с указателями, реализованы разные представления указателей.

В C указатели любого типа могут быть ближними (near) и дальними (far) или (huge).

Ближние указатели представляют собой смещение в текущем сегменте, для представления такого указателя достаточно одного 16-разрядного слова.

Дальние указатели представляются двумя 16-разрядными словами - сегментом и смещением.

Разница между far или huge указателями:

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