Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 272

Раздел: Delphi » Прочее
/ вопрос открыт /

Здравствуйте! Уважаемые эксперты!
подскажите что значит \"ord\"! учител меня уже достал! перед этим вы мне давали ответ но на строку где использовалось это слово , а теперь он спрашивает меня что означает само слово и для чего оно нужно!

joke Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: joke (статус: Посетитель)
Вопрос отправлен: 7 января 2009, 14:46
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: Ученый

Здравствуйте, joke!
Функция ord позволяет определить код символа, который передается ей в качестве параметра.
Это используется преимущественно, чтобы преобразовать символы или перечисления в их числовые эквиваленты.
Например, в результате выполнения инструкции k:=ord('*') переменная k будет содержать число 42 — код символа *.

Ответ отправил: Ученый (статус: 8-ой класс)
Время отправки: 7 января 2009, 15:05
Оценка за ответ: 4

Ответ #2. Отвечает эксперт: Вадим К

Здравствуйте, joke!
Есть такое понятие как перечисляемые типы данных. Классический пример встроенных типов в паскале - это char, boolean.
Особенность таких типов - все элементы упорядочены (то есть их можно занумеровать), и кол-во ограничего. в случае char - это 256 элементов, в boolean - это всего два (false и true). Также в паскале можно объявлять перечисления. Например так

type
  TNumber = (One, Two, Three, Four, Five);
Теперь мы можем обявить переменную этого типа и делать например так
var t:TNumber;
begin
for t := one to five do //не правда красиво?
  writeln(ord(t));
end;
Этот код выведет цифры от 0 до 4, потому что эти их номера (я думаю это не сложно догадаться).
То есть, ord выводит порядковый номер элемента в последовательности, заданной при объявлении типа.
А теперь ещё немного веселого:)
var f:boolean;
v:array[boolean] of integer;
begin
for f := false to true do
  v[f] := ord(f);
end;
Здесь показано еще одна особеность перечисляемого типа - его можно использовать в обявлении массива. Об этом мало кто знает.
Многие спросят, зачем это надо? ведь можно использовать константы. Но в многих случаях использую такой метод можно застаховать себя от случайной ошибки, ведь если Вы используете не ту числовую константу, дефли никак не сможет вам подсказать, что это ошибка (ну если за границы массива не выйдет или что то в таком стиле). А используя перечисляемые типы, можно просто защитить себя.

Ну и на последок, можно добавить, что есть такие фунции как pred и succ. Они работают как декримент и инкремент для перечисляемых типов. Например succ(false) будет true.

Я думаю, что даже очень "опытные преподаватели" не знают об этом. Некоторые выдели функции, но не посчитали нужным изучить. Так что не надо пугаться, если преподаватель среагирует неадекватно. С другой стороны, не во всех учебниках об этом пишут.

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 7 января 2009, 17:34
Оценка за ответ: 5


Мини-форум вопроса

Всего сообщений: 4; последнее сообщение — 7 января 2009, 18:00; участников в обсуждении: 3.
min@y™

min@y™ (статус: Доктор наук), 7 января 2009, 15:11 [#1]:

Блин, меня убивают такие вопросы. Задают их те люди, которым просто пох программирование - главное СДАТЬ. А вот почитать книжку/методичку им влом. Когда я учился, у меня не было интернета и, по началу, даже компьютера. Но, 1хрен, я успешно делал лабы для всей своей группы.

А ТЕПЕРЬ ЕСТЬ ИНТЕРНЕТ!!!

ЗЫ: Бедный "учител"... Какой кашмар!
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Ученый

Ученый (статус: 8-ой класс), 7 января 2009, 16:03 [#2]:

Интернет в образовательном плане- незаменимае вещь!!! Ведь достатоно спросить у гугла и он вам все раскажет.....
Вадим К

Вадим К (статус: Академик), 7 января 2009, 17:35 [#3]:

То Ученый
А ответ то Ваш не совсем верный, я бы сказал, то что вы ответили есть следствием, а не ответом. Почему - читайте мой ответ.
То min@y™
Ну не знаю, сколько уж говорить - не стоит ругаться. Даже если Вам прохо на душе и весь мир против Вас.
Галочка "подтверждения прочтения" - вселенское зло.
Ученый

Ученый (статус: 8-ой класс), 7 января 2009, 18:00 [#4]:

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

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 17 февраля 2020, 03:06
Выполнено за 0.02 сек.
Рейтинг@Mail.ru