Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
opisanie_tipov_dannykh.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
67.89 Кб
Скачать
  1. Boolean – логичесткий

    1. Определение внешнего вида значений

Форма Бэкуса-Наура:

<boolean> ::= True | False

    1. Определение диапазона и возможных зарезервированных констант:

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

True/False

Константы:

Нет

    1. Определение операций

Сравнения: =, <>

    1. Определение процедур и функций, которые могут применяться к этому типу:

Нет

    1. Ввод/вывод:

Только вывод (write/writeln)

    1. Представление значений в памяти ЭВМ:

Занимает 1 байт

Значение = true

00000001

Значение = false

00000000

Сложные Pascal

  1. Array – массив

    1. Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

    1. Определение диапазона и возможных зарезервированных констант:

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

Определяется только для каждого элемента непосредственно, обусловлен базовым типом (зависит от того, массив чего задается)

Константы:

Нет

    1. Определение операций

Работа с каждым элементом как с обычной переменной базового типа

Обращение к элементу – в квадратных скобках, например : a[1] – обращение к первому элементу массива a.

    1. Определение процедур и функций, которые могут применяться к этому типу:

Для всего массива целиком не определяются

Определяются для каждого элемента непосредственно как для объекта базового типа

    1. Ввод/вывод:

Допустимы поэлементно (read[i]/readln[i]/write[i]/writeln[i])

    1. Представление значений в памяти ЭВМ:

Последовательно все элементы, размер каждого – размер базового типа

  1. Record – запись

    1. Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

    1. Определение диапазона и возможных зарезервированных констант:

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

Определяется только для каждого поля

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

Константы:

Нет

    1. Определение операций

Для всей записи – оператор with

with <record> do

begin

end;

Для каждого поля записи – соответствуют операциям базового типа этого поля

    1. Определение процедур и функций, которые могут применяться к этому типу:

Sizeof(record) – объем занимаемого пространства в памяти

Для каждого поля записи – соответствуют процедурам и функциям базового типа этого поля

    1. Ввод/вывод:

Допустимы по полям

(read(record1.variable)/readln(record1.variable)/write(record1.variable)/writeln(record1.variable))

или через «with» -

with record1 do

begin

readln(variable); // и т.п.

end;

    1. Представление значений в памяти ЭВМ:

Все поля располагаются последовательно, размер каждого поля соответствует размерности его базового типа. При этом происходит «выравнивание». Также записи дополняются, для гарантии, что они закончены, 4-х байтовой границей.

  1. Set

    1. Определение внешнего вида значений

Формы Бэкуса-Наура:

нет

    1. Определение диапазона и возможных зарезервированных констант:

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

Любой порядковый тип с элементами, для которых функция Ord возвращает значения в диапазоне от 0 до 255

Пример:

type CharSet = set of char; Digits = set of '0'..'9'; SeasonSet = set of (Winter,Spring,Summer,Autumn);

Константы:

Нет

    1. Определение операций

+ объединение

- разность

* пересечение

Операция in проверяет принадлежность элемента множеству

    1. Определение процедур и функций, которые могут применяться к этому типу:

Процедуры и функции:

Нет

    1. Ввод/вывод:

Чтобы вывести значения элементов множества, необходимо перебрать всевозможные значения в цикле и проверить их на принадлежность множеству с помощью операции in:

for i:=0 to 255 do if i in st then write(i,' ');

    1. Представление значений в памяти ЭВМ:

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

Например, если множество определяется как ‘0’..’9’ (т.е. содержит десять элементов), в памяти будет выделено под него два байта. Один байт = 8 бит, а нам нужно разместить 10 бит, т.е. округляем «вверх» до шестнадцати и получаем два байта. Для пустого множества все биты равны нулям. Далее, в памяти все биты нумеруются и если элемент с определенным номером добавляется в множество, то каждый соответствующий бит (с этим же номером) принимает значение 1.

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