русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Типы данных, относящиеся к порядковым


Дата добавления: 2013-12-24; просмотров: 803; Нарушение авторских прав


Стандартные подпрограммы, обрабатывающие порядковые типы данных

 

Только для величин порядковых типов определены следующие функции и процедуры:

 

  1. Функция ord(x) возвращает порядковый номер значения переменной x (относительно того типа, к которому принадлежит переменная х).
  2. Функция pred(x) возвращает значение, предшествующее х (к первому элементу типа неприменима).
  3. Функция succ(x) возвращает значение, следующее за х (к последнему элементу типа неприменима).
  4. Процедура inc(x) возвращает значение, следующее за х (для арифметических типов данных это эквивалентно оператору x:=x+1).
  5. Процедура inc(x,k) возвращает k-е значение, следующее за х (для арифметических типов данных это эквивалентно оператору x:=x+k).
  6. Процедура dec(x) возвращает значение, предшествующее х (для арифметических типов данных это эквивалентно оператору x:=x-1).
  7. Процедура dec(x,k) возвращает k-e значение, предшествующее х (для арифметических типов данных это эквивалентно оператору x:=x-k).

 

На первый взгляд кажется, будто результат применения процедуры inc(x) полностью совпадает с результатом применения функции succ(x). Однако разница между ними проявляется на границах допустимого диапазона. Функция succ(x) неприменима к максимальному элементу типа, а вот процедура inc(x) не выдаст никакой ошибки, но, действуя по правилам машинного сложения, прибавит очередную единицу к номеру элемента. Номер, конечно же, выйдет за пределы диапазона и за счет усечения превратится в номер минимального значения диапазона. Получается, что процедуры inc() и dec() воспринимают любой порядковый тип словно бы "замкнутым в кольцо": сразу после последнего вновь идет первое значение.

 

Поясним все сказанное на примере. Для типа данных

 

type sixteen = 0..15;

 

попытка прибавить 1 к числу 15 приведет к следующему результату:



 

+ 1 1 1 1

_________________________

1 0 0 0 0

 

Начальная единица будет отсечена, и потому получится, что inc(15)=0.

 

Аналогичная ситуация на нижней границе допустимого диапазона произвольного порядкового типа данных наблюдается для процедуры dec(x) и функции pred(x):

 

dec(min_element)= max_element

 

Опишем теперь порядковые типы данных более подробно.

 

1. Логический тип boolean имеет два значения: false и true, и для них выполняются следующие равенства:

 

ord(false)=0, ord(true)=1, false<true,

pred(true)=false, succ(false)=true,

inc(true)=false, inc(false)=true,

dec(true)=false, dec(false)=true.

 

2. В символьный тип char входит 256 символов расширенной таблицы ASCII (например, 'a', 'b', 'я', '7', '#'). Номер символа, возвращаемый функцией ord(), совпадает с номером этого символа в таблице ASCII.

 

3. Целочисленные типы данных сведем в таблицу:

 

 

Тип данных Количество Диапазон
байтов битов
shortint 128..127 -27..27-1
byte 0..255 0..28-1
integer -32768..32767 -215..215-1
word 0..65535 0..216-1
longint -2147483648..2147483647 -231..231-1

 

 

Перечисляемые типы данных задаются в разделе type явным перечислением их элементов. Например:

 

type week =(sun,mon,tue,wed,thu,fri,sat)

0 1 2 3 4 5 6

 

Напомним, что для этого типа данных:

inc(sat) = sun, dec(sun) = sat.

 

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

 

type month = 1..12;

budni = mon..fri;

 

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

 

type valid_for_identifiers = 'a'..'z','A'..'Z','_','0..9';

 

Этот тип состоит из объединения нескольких интервалов, причем в данном случае изменен порядок латинских букв: если в стандартном типе char 'A' < 'a', то здесь, наоборот, 'a' < 'A'. Для величин этого типа выполняются следующие равенства:

 

inc('z')='A'; dec('0')='_', pred('9')='8'; ord('b')= 2.



<== предыдущая лекция | следующая лекция ==>
Порядковые типы данных | Арифметические операции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.044 сек.