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

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

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

 
 Ответить  Открыть новую тему 
> Вывод множеств, Как вывести на экран множества
сообщение
Сообщение #1


Новичок
*

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

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


Добрый день, извините за, возможно, глупый вопрос - как вывести на экран множество, оператор write не работает. У меня множество чисел от 1 до N, я формирую из него подмножество элементов( m1), не превышающих 10, как их вывести на экран? Печатать команду:
for i:=1 to N do
if (i in m1) then write(i)

или есть другой способ?


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


Гость






Нет... Только этот. Вывод множества - только полным перебором элементов и проверкой на наличие...

Кстати, и математически понятие "извлечение элемента из множества" не определено ...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


В продолжение темы...
Я так понимаю, что операция сравнения m1[1]>m1[2] со множеством m1 тоже не проходит? Как тогда можно подмнжество, состоящее только из гласных букв отсортировать по алфавиту? Я извиняюсь за настойчивость, но я раньше со множествами работала очень мало, а в faq тоже материла не много.


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


Гость






smile.gif А ко множествам ВООБЩЕ неприменимы такие понятия, как "сортировка" или "порядок следования элементов"... Множество просто хранит некоторое значение из некоторого определенного набора. Поэтому, чтобы вывести на печать множество букв латинского алфавита, отсортированное, например, по возрастанию, достаточно проверять на вхождение отсортированные элементы:
for ch := 'a' to 'z' do begin
if ch in myset then write(ch);
end;

так как в цикле перебираются значения от 'a' до 'z' в порядке возрастания, то и вывод будет отсортирован по возрастанию...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


А если задание: из вводимой строки создать множество гласных букв и напечатать их в алфавитном порядке? Как создать цикл?
Задача простая, но что - то меня на ней заклинило. mega_chok.gif


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


Гость






А что, тот же самый цикл не пойдет? Или гласные буквы не являются подмножеством ВСЕХ букв? Тебе надо только позаботиться о том, чтобы ВНОСИТЬ во множество только гласные буквы, тогда будут выводиться отсортированные гласные. Ну, если хочешь, сделай так:
for ch := #0 to #255 do begin
if ch in myset then write(ch);
end;


и начинай пользоваться поиском, только сегодня ТОЧНО такое же решение уже приводилось. Сколько можно дублировать коды???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


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

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

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


pank, разговор останется беспредметным, если ты не приведешь весь код (или то, что относится к множествам, о которых речь).
У меня есть конкретное подозрение, что ты хотя и организовала переменные для множеств m и m1, на самом деле ничего туда не положила, то есть они у тя пустые. Вот ниже код, который той же самой конструкцией, что и у тебя, печатает то, что требуется.

const
N=20;

var
m1:set of 1..N;
i:integer;

begin
m1:=[1,2,3];
for i:=1 to N do if i in m1 then Write(i,' ');
ReadLn;
end.


Обрати внимание на присвоение m1 конкретных элементов.

Сообщение отредактировано: Altair -


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

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

 





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