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

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

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

 
 Ответить  Открыть новую тему 
> type lat_bukvy = 'a'..'z','A'..'Z'; -- не работает -- почему?
сообщение
Сообщение #1


Гость






В лекциях на intuit.ru встерчаются подобные конструкции --
type valid_for_identifiers = 'a'..'z','A'..'Z','_','0..9';

У меня turbo pascal 7.0, но такая конструкция не работает(
Можно это как то испаравить или где она заработает (в кокой-то другой версии может)?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Помощник капитана
****

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

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


А что за тип данных?Множество?Тогда set of добавь.


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


2 Артемий2
'a'..'z','A'..'Z','_','0..9' -- таким образом они задают тип -- т.е. диапазон всех возможных значений которые может принимать переменная данного типа
дело тут не в множестве
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Цитата
таким образом они задают тип
не задается тип таким образом...

У тебя получается перемешивание: И перечислимый тип (о чем говорит запятая), И тип-интервал (о чем говорят две точки) одновременно. По отдельности это легально в синтаксисе Паскаля, вместе - нет.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


2 Алена
если не лень посмотри на сайте ww.intuit.ru/department/pl/plpascal/2/ -- у них таким образом все прекрасно задается
p.s. не могу почему-то в текст сообщения вставить гиперссылку и 3W тоже -- выдает ошибку

Сообщение отредактировано: udaaff -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Цитата
у них таким образом все прекрасно задется
Пока сервис недоступен, но вот что получается:

var s: string;
begin
case s of
'aa': ;
'bb': ;
'cc': ;
end;
end.

У меня тоже все прекрасно задается. Пока не начнешь компилировать. Тогда тебя ждет сюрприз.

Точно так же и там: что значит задается? Они говорят, что это делается так? И приводят пример? Так работай с ним. Однако, ты его не можешь откомпилировать, верно? Когда же тебе объяснили, почему ты его и не сможешь запустить, ты опять приводишь ссылку. Туда, где НЕ работает. Где же логика?

Еще раз: единственное, что вот так можно описать - это константа:
Const
valid_for_identifiers = ['a'..'z','A'..'Z','_','0'..'9'];
откомпилируется как положено.

Добавлено через 10 мин.
Вот тебе еще информация к размышлению:
Руководство по языку B.Pascal 7 & Objects/LR -> Перечислимые типы
Посмотри в фирменной документации, как описываются перечислимые и интервальные типы. А на Intuit мне после вот этого:
Прикрепленное изображение
вообще не хочется заходить больше

Сообщение отредактировано: Алена -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


2 Алена
Пасиба за разъяснение. Я просто подумал, что может у меня pascal не такой как на intuin.ru))
...
Думаю, что это будет в рамках данной темы:
предположим есть тип:
superType = (elem_1, elem_2,... , elem_N);

можно ли как-нибудь из этого типа создать тип subType, который бы содержал к примеру первый, пятый и десятый элементы?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(udaaff @ 19.03.2007 3:13) *

предположим есть тип:
superType = (elem_1, elem_2,... , elem_N);

можно ли как-нибудь из этого типа создать тип subType, который бы содержал к примеру первый, пятый и десятый элементы?

Нет, в Паскале нет такой возможности.
Встречный вопрос: а зачем она тебе? Обычно такие конструкции делаются в теле программы. Например, есть тип Year для любого года. И есть годы до нашей эры, годы нашей эры, в них средние века, возрождение - или, скажем, можно делить по векам. Проверка типа - это проверка на корректность выполняемого действия (операция с годами), и она производится на этапе компиляции. А принадлежность года к той или иной эпохе - это уже задача программирования, и она вычисляется в процессе работы программы.
Если ты имеешь в виду range check, которая может работать и на этапе выполнения, то для перечислимых типов ее просто нету..
М
Тема переносится в Pascal, Object Pascal > Теоретические вопросы



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата
Если ты имеешь в виду range check, которая может работать и на этапе выполнения, то для перечислимых типов ее просто нету..
Небольшое уточнение: нет только в 16-битных компиляторах... 32-битные (FPC в частности) прекрасно производят Range-Check и для перечислимых типов тоже.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


Цитата(Lapp @ 19.03.2007 3:19) *

Встречный вопрос: а зачем она тебе?

В разделе задачи есть моя тема "типы данных определяемые пользователем".
Тема лабы -- "типы данных определяемые пользователем", поэтому решение должно было строиться на этих типах. Задача была такая: вывести названия месяцев по сезону. Я решил решать ее исходя из того, что есть тип superType, ему соответствует массив названий его элементов (тип индексов массива -- superType), и есть подтипы данного типа. Затем, перечисляя элементы подтипа, можно было бы относительно их порядковых номеров, выводить названия его элементов. Я вначале из-за зимы тупился, пока месяца не сдвинул.))
Но потом я придумал другое решение попроще.. Хватит им и такого))
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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