IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Отличие type и var, Отличие type и var
-notpron
сообщение 5.07.2011 18:44
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 12
Пол: Мужской

Репутация: -  0  +


Всем добрый вечер, не могу никак понять, в чем разница между type и var? Скорее всего - я немного не допонял саму функцию type.
И я совсем запутался в порядковых типах данных, для чего они нужны? Как(не теоритически) можно проверить функцию, например, ord(x)? Заранее спасибо)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
IUnknown
сообщение 6.07.2011 10:37
Сообщение #2


a.k.a. volvo877
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской

Репутация: -  627  +


Цитата
Зацикленные целые множества (группы "по модулю") весьма часто бывают нужны. Встроенной поддержки их в языке Pascal нет.
Кстати, встроенной поддержки циклических перечислений, определенных пользователем, насколько я помню, нет нигде, хотя очень многие просят. В некоторых языках есть встроенные модульные типы (обладающие необходимым функционалом). Но пользоваться вариантом "описать модульный тип, а потом Sun, Mon, ... Sat - как константы этого типа" не очень удобно, проще переопределить функции Pred и Succ:

{$mode objfpc}
type
Week = (sun, mon, tue, wed, thu, fri, sat);

function Pred (Value : Week) : Week;
begin
if Value = Low (Week) then Pred := High (Week)
else Pred := System.Pred (Value)
end;

function Succ (Value : Week) : Week;
begin
if Value = High (Week) then Succ := Low (Week)
else Succ := System.Succ (Value)
end;

var
W : Week;

begin
W := sun;
writeln (W); // sun
W := Pred (W);
writeln (W); // sat
W := Succ (W);
writeln (W); // sun
W := Succ (W);
writeln (W); // mon
end.

, а когда в FPC наконец допилят дженерики хотя бы до того уровня, что есть сейчас в Дельфи - можно будет написать две шаблонные функции Pred и Succ и передавать в них параметры любых перечислимых типов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
-notpron   Отличие type и var   5.07.2011 18:44
IUnknown   Type - это не функция. Это зарезервированное слово...   5.07.2011 19:03
-notpron   2 IUnknown А можно не на примере массивов? Просто ...   5.07.2011 19:19
IUnknown   не на примере массивов? Ну, напечатай первые 10 че...   5.07.2011 20:36
-notpron   2 IUnknown Не, до циклов я дошел) И вы не правы - ...   5.07.2011 20:55
IUnknown   Ты это "можете проверять" кому-нибудь др...   5.07.2011 22:07
-notpron   Не надо ругаться, спокойнее. Просто аргументирован...   5.07.2011 22:59
Lapp   Я извиняюсь за встрятие.. Не надо ругаться, споко...   6.07.2011 5:09
IUnknown   Кстати, встроенной поддержки циклических перечисле...   6.07.2011 10:37
-notpron   2 Lapp Я понимаю что манера говорить у всех своя, ...   6.07.2011 11:18
Lapp   Чем вас не устраивает тег [cоde]? По-моему его мо...   6.07.2011 22:50
-TarasBer-   это тролль, не реагируйте   6.07.2011 14:52
-notpron   Не надо оффтопить, есть что сказать по теме - скаж...   6.07.2011 14:56
-TarasBer-   канонично...   6.07.2011 15:07
-notpron   Ну и сразу дурацкий вопрос - а как копипастить в t...   6.07.2011 16:13
sheka   .pas - текстовый документ. Создавай новые темы в н...   6.07.2011 17:27
-notpron   Ну про этот способ мне известно, но все равно спас...   6.07.2011 17:41
-notpron   2 Lapp 2. Все тексты фрагментов программ должны по...   7.07.2011 18:52
Lapp   2. Все тексты фрагментов программ должны помещатьс...   7.07.2011 22:21


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 17.07.2025 8:33
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"