Согласие на обработку персональных данных.



04.09.2017
Новая задача Программа вычисления суммы.

03.09.2017
Новое видео Стековый калькулятор и обратная польская запись.

26.08.2017
Новая статья Версии Делфи.

23.08.2017
Новая статья Для кого пишется программа.

13.08.2017
Новая статья Стандарт C++: общие сведения.

Раздел: Стандартные функции Паскаля

Функция Ord

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Функция Ord в Паскале возвращает порядковый номер значения порядкового типа (далее на примерах это будет разъяснено более внятно). Синтаксис:

function Ord(X : TOrdinal) : LongInt;

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

Изначально Паскаль не имел функций преобразования типов и функция Ord была необходима для того, чтобы выполнять некоторые операции с не целочисленными порядковыми типами (такими, как тип Char). С введением универсального подхода к преобразованию типов стало возможным отказаться от использования функции Ord. Однако она не считается устаревшей и до сих пор широко используется.

Чаще всего эту функцию используют для того, чтобы узнать код символа (об этом ниже). Однако её также можно использовать с любыми порядковыми типами - как с простыми целыми числами (хотя в этом нет особого смысла), так и, например, с перечислениями.

Как узнать код символа

Как известно, любой символ имеет свой код. Потому что компьютеры не понимают ни слов, ни символов. Они понимают только числа. Поэтому каждому символу присвоен определённый код.

Различных кодировок существует довольно много. Самая простая и одна из самых первых - это ASCII.

В разной справочной литературе и в книгах по программированию вы можете найти таблицы ASCII-кодов. Но в Паскале можно узнать ASCII-код любого символа и без этих таблиц (к тому же в разных операционных системах эти таблицы могут отличаться для русского языка), просто воспользовавшись функцией Ord. Например, так:

Cod := Ord('Z');

Здесь в переменную Cod мы получаем ASCII-код английской буквы Z.

Пример программы:

program chrord;

type TSeasons = (Winter, Spring, Summer, Autumn);

var Cod     : byte;
    Sym     : Char;
    Seasons : TSeasons;

begin
  //Узнать код числа: Ord(Cod) = 200
  Cod := 200;
  WriteLn('Code ', Cod, ': ', Ord(Cod));
  Sym := 'Z';
  //Узнать код символа: Ord(Sym) = 90
  WriteLn('ASCCII-code ', Sym, ': ', Ord(Sym));
  Seasons := Summer;
  //Узнать номер элемента перечисления: Ord(Seasons) = 2
  WriteLn('Number ', Seasons, ': ', Ord(Seasons));
  ReadLn;
end.

В этой программе с помощью функции Ord мы сначала получаем код (номер) числа 200. Разумеется, это и будет число 200.

Затем мы получаем ASCII-код символа Z (английская большая буква Z). В кодировке символов ASCII код символа Z - Это число 90.

А затем мы получаем порядковый номер элемента Summer в перечислении TSeasons. Элемент Summer у нас находится на третьей позиции. Однако в перечислениях отсчёт начинается с 0, поэтому функция Ord вернёт число 2.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика