X-PDF

Функции, связывающие различные типы данных

Поделиться статьей

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

Функции Ord, Pred и Succ применимы только к порядковым типам данных, т. е. из простых типов данных ко всем, кроме веще­ственных.

Функция Ord, применяемая к целому числу, дает его собствен­ное значение. Например:

Ord(-35) = -35 . Ord(128) = 128

Таблица 2.6

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

Обращение Тип аргумента Тип результата Действие
Ord (x) Любой порядковый I Дает порядковый номер значения х в его типе
Pred (x) То же Тот же, что у х Дает предыдущее по отноше­нию к х значение в его типе
Succ (x) -//- Тот же, что ух Дает следующее по отноше­нию к х значение в его типе
Chr (x) Byte Char Дает символ с порядковым номером х
Odd (x) I Boolean Дает True, если х — нечетное число, и False, если х — четное

Если аргумент целый, то, например, оператор

у:= Pred(x) эквивалентен у:= х — 1, а оператор

у:= Succ(x) эквивален­тен у:= х + 1.

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

Ord(a) &lt . Ord(b) &lt …. &lt . Ord ( z ), то, например, можно записать

Pred(b) = a . Succ(b) = с. То же относится и к цифровым литерам:

Pred(5) = 4 . Succ(5) = 6.

Функция Chr (х) является обратной к функции Ord (х), если х — символьная величина. Например, для кода ASCII справедлива за­пись:

Ord(a) = 97 . Chr(97) = а.

Эту их «взаимообратность», если х— символьная величина, можно выразить формулой

Chr(Ord(x)) = х.

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

N:= Ord(5) — Ord(0).

Здесь N— целая переменная и использован тот факт, что код литеры 5 на пять единиц больше кода 0.

Булевский тип данных также является порядковым. Порядок расположения двух его значений следующий: False, True. Тогда справедливы следующие отношения:

Ord(False) = 0 . Succ(False) = True .

Ord(True) = 1 . Pred(True) = False.

Представленная информация была полезной?
ДА
61.26%
НЕТ
38.74%
Проголосовало: 1497

Приведем интересный пример. Пусть х, у, z — вещественные переменные. Требуется определить, какую задачу решает следую­щий оператор:

z:= х * Ord(x &gt .= у) + у * Ord(y &gt . x).

Ответ: z =max(x, у), т.е. данную задачу можно решить без ис­пользования условного оператора if..then..else.

Упражнения

1. Вычислить значения следующих логических выражений:

а) К mod 7 = К div 5-1 при К = 15 .

б) Odd(Trunc(10 * Р)) при Р = 0.182 .

в) Not Odd(n) при n = 0 .

г) t And (P mod 3 = 0) при t = True, P = 10101 .

д) (х * у &lt . &gt . 0) And (у &gt . х) при х = 2, у = 1 .

е) a Or Not b при а = False, b = True.

2. Определить какое значение получит логическая переменная d при а = True и х = 1 после выполнения следующих операторов присваивания:

а) d:= х &lt . 2 .

б) d:= Not a Or Odd(x) .

в) d:= Ord(a) &lt . &gt . х.

3. Написать оператор присваивания, в результате выполнения кото­рого логическая переменная t получит значение True, если следующее утверждение истинно, и значение False — в противном случае:

а) из чисел х, у, z только два равны между собой .

б) х — положительное число .

в) каждое из чисел х, у, z положительное .

г) только одно из чисел х, у, z положительное .

д) р делится без остатка на q .

е) цифра 5 входит в десятичную запись трехзначного целого числа к.


Поделиться статьей
Автор статьи
Анастасия
Анастасия
Задать вопрос
Эксперт
Представленная информация была полезной?
ДА
61.26%
НЕТ
38.74%
Проголосовало: 1497

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram

ЯТТС-Рекомендации по написанию отчета по учебной и производственной практики-Гостинечное дело

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 61.26% НЕТ 38.74% Проголосовало: 1497


Поделиться статьей

ЮУрГУ-вопросы

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 61.26% НЕТ 38.74% Проголосовало: 1497


Поделиться статьей

ЮУГУ-Отчет_ПП-Машины непрерывного транспорта

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 61.26% НЕТ 38.74% Проголосовало: 1497


Поделиться статьей

ЮУГУ- Курсовой проект по электронике

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 61.26% НЕТ 38.74% Проголосовало: 1497


Поделиться статьей

ЮУГУ-ВКР-Обеспечение требований охраны труда на рабочем месте слесаря-ремонтника 5 разряда

Поделиться статьей

Поделиться статьейПоделиться статьей Автор статьи Анастасия Задать вопрос Эксперт Представленная информация была полезной? ДА 61.26% НЕТ 38.74% Проголосовало: 1497


Поделиться статьей

или напишите нам прямо сейчас:

Написать в WhatsApp Написать в Telegram
Заявка
на расчет