Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 11:01   #1
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию Множества Delphi

Добрый день!

Подскажите пожалуйста, как мне определить - сколько элементов содержит множество?
VadEr вне форума Ответить с цитированием
Старый 25.10.2009, 11:20   #2
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Никогда таким не интересовался, но однажды пришлось - хорошо у меня там могли быть цифры только от 0 до 25. Поэтому количество определялось достаточно быстро:
Код:
var myset : set of integer;
var count : integer;
var i: integer;
begin
//...
for i:=0 to 25 do
  if  (i in myset) then inc(count);

//Теперь в countколичество элементов в множестве
Кажется так, другого способа я не нашел
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 11:35   #3
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Зачем тебе это? В теории множеств ясно указано что ни порядок следования элементов в множестве, не их число значения не имеет. Если тебе все же необходимо, то следует не пользоваться множествами.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.10.2009, 11:36   #4
VadEr
Форумчанин
 
Аватар для VadEr
 
Регистрация: 24.03.2009
Сообщений: 375
По умолчанию

Спасибо понял!
VadEr вне форума Ответить с цитированием
Старый 25.10.2009, 11:39   #5
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Цитата:
В теории множеств ясно указано что...
Теория теорией, а на практике иногда и не такую бессмыслицу приходится делать
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 11:41   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от hoza_syl Посмотреть сообщение
Теория теорией, а на практике иногда и не такую бессмыслицу приходится делать
Это говорит о том, что Вы плохо относитесь к процессу проектирования алгоритма.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 25.10.2009, 11:41   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

hoza_syl прав.

Единственный способ определить количество элементов в множестве в Pascal/Delphi — это перебор (цикл) по всем допустимым элементам, проверка, содержится ли данный элемент и, в случае наличия данного элемента, наращивание счётчика...

p.s. строго говоря, код вышеприведённый не совсем точен - если множество set of Integer, то правильно, конечно же, перебирать от минимального значения Integer до максимально возможного значения Integer...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.10.2009, 11:44   #8
hoza_syl
Форумчанин
 
Аватар для hoza_syl
 
Регистрация: 23.05.2008
Сообщений: 219
По умолчанию

Serge_Bliznykov -
Цитата:
у меня там могли быть цифры только от 0 до 25.
.
The Revolution is Now!
hoza_syl вне форума Ответить с цитированием
Старый 25.10.2009, 12:01   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

кстати
Код:
var N: set of Integer;
приведёт к ошибке "Set base type out of range".
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 25.10.2009, 12:01   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
у меня там могли быть цифры только от 0 до 25.
да я понимаю. я внимательно прочитал ваше сообщение. и в вашем случае, возможно, это допустимо.
Однако, не понимаю, почему в этом случае Вы не задали
Код:
var myset : set of 0..25;
?? и тогда моё замечание не имело смысла. А так, строго говоря, программа некорректна.

Вау! полез проверять... и...
А вообще, в какой версии Pascal/Delphi вот эта строчка
Код:
var myset : set of integer;
вообще компилится???!
TP 7 и Delphi 5 отказались это компилировать, заявив, что множество не может содержать более 256 элементов!!!

___________________________________ _________

Utkin
Цитата:
Сообщение от Utkin
В теории множеств ясно указано что ни порядок следования элементов в множестве, не их число значения не имеет.
ой не всё так просто.. вот здесь (Википедия) сказано, что:
Цитата:
В математической логике и дискретной математике часто употребляемый синоним множества — алфавит.
Множество может быть замкнутым и незамкнутым, полным и пустым, упорядоченным и неупорядоченным, счётным и несчётным, конечным и бесконечным.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Множества Бедная студентка) Помощь студентам 0 29.06.2009 19:59
Множества Doublefaced Помощь студентам 3 24.03.2009 18:58
Задача на вектора (тема Множества) DELPHI 08ekhiv1 Помощь студентам 1 13.03.2009 20:00
Множества в Си Иллидан Общие вопросы C/C++ 14 17.01.2008 15:58