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

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

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

> Отличие type и var, Отличие type и var
сообщение
Сообщение #1


Новичок
*

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

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


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


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Цитата
И вы не правы - перечисляемый тип данных является не пользовательским, а конструируемым. Можете проверять.
Ты это "можете проверять" кому-нибудь другому расскажи, ладно? Я эту "Филькину грамоту" уже лет 20 как наизусть знаю, не надо мне ничего проверять... Конструируемый - это тот, который строится на основании простого. На основании какого именно простого типа построен тип Week, не подскажешь?

Цитата
Поэтому мое утверждение верно.
Какое утверждение? Что Dec(sun) = Sat? Это бред, а не утверждение. Знаешь, почему? По одной простой причине: Компилятору все равно, как там называются у тебя элементы перечисления... Для него это 0, 1, 2, ..., 255 (максимум). Заметь, от 0!!! Вот что получается:

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

begin
writeln( ord(sun) );
writeln( week(ord(sun) - 1) ); // <--- !!!
end.
Что выведется?

А вот что: Ord(Sun) = 0. Хорошо, это напечатается. А теперь - следующий шаг: попробуем напечатать предыдущий элемент перечисления... И вот тут тебя поджидает большой облом... Ошибка 107, вот и все... Нет предыдущего элемента у Sun... Он есть только в одном-единственном случае: когда перечисление содержит ровно 255 элементов, тогда Pred(первый_элемент) = последний_элемент, но это скорее побочный эффект, поэтому пользоваться этим не стоит...

Хотя writeln( week(ord(sun) + 1) ); прекрасно печатает mon (я пользуюсь FPC, и тебе советую, в Турбо Паскале будет ошибка, там такое не позволяется)...

Цитата
Тоже самое не получится(у меня не получилось) вывести просто 10 чисел.
Да что ты? Теория программирования понесла тяжелую утрату smile.gif :
var i : integer; // Integer - это по-твоему тоже НЕпорядковый тип? Ну-ну...
begin
for i := 1 to 10 do writeln(2 * i);
end.
Если у тебя что-то не получается - это не значит, что оно невозможно...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 17.06.2024 4:47
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name