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

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

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

2 страниц V  1 2 >  
Closed Topic Открыть новую тему 
> множества(set), ПОМОГИТЕ
сообщение
Сообщение #1


Человек
*****

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

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


можно ли выводить (печатать) множества. КАК?
почему нельзя написать Write(set1); ?


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


Perl. Just code it!
******

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

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


var
s: Set of byte;
i: Byte;

begin
...
s := [3, 1, 12];
for i := 0 to 255 do
if i in s then writeln(i);
...
end.


Только так ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Профи
****

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

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


Цитата(compiler @ 21.01.2007 20:23) *

можно ли выводить (печатать) множества. КАК?

Только вот так:
var s: set of byte;
i:byte;
begin
s:=[1,2,6,9];
for i:=1 to 255 do if i in s then write (i);
end.


Цитата
почему нельзя написать Write(set1); ?


А если будет set of (Sun, Mon, Tue, Wed, Thu, Fri, Sat) ? Что печатать ? Множества в памяти хранится как набор бит (1-входит/ 0 - не входит). Так предыдущий пример занимает 7 бит, названия элементов нигде не хранятся..
ps опоздал smile.gif

М
smile.gif И ноль потерял smile.gif
Цитата
for i:=1 to




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


Человек
*****

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

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


Цитата(klem4 @ 21.01.2007 19:33) *

Только так ...

код мне не нравится но ладно...

А как быть со словами???

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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Цитата
код мне не нравится
В чем проблема? Пиши такой, который нравится... Только вот то, что тебе будет нравиться - не будет работать... "Тебе шашечки, или ехать?" (С)

Цитата
А как быть со словами?
С какими словами? Вопрос ставь так, чтобы его понимал не только ты один...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Человек
*****

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

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


Цитата(volvo @ 21.01.2007 20:11) *

В чем проблема? Пиши такой, который нравится... Только вот то, что тебе будет нравиться - не будет работать... "Тебе шашечки, или ехать?" (С)

С какими словами? Вопрос ставь так, чтобы его понимал не только ты один...


я имел ввиду как печатать слова с множества. ведь этот алгоритм практически(СЛИШКОМ медлинный если использывать не счетчик, а словарь) неприменим.

А код мне все равно не нравитсяsmile.gif


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Профи
****

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

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


Цитата(compiler @ 21.01.2007 21:19) *

я имел ввиду как печатать слова с множества.

Это ты имел ввиду ?
type days=(Sun, Mon, Tue, Wed, Thu, Fri, Sat);
const ndays:array [days] of string=
('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var s:set of days;
dd:days;
begin
s:=[Sun, Mon, Wed, Thu, Fri, Sat];
for dd:=sun to sat do
if dd in s then write (ndays[dd],' ');
end.


Цитата
ведь этот алгоритм практически(СЛИШКОМ медлинный если использывать не счетчик, а словарь) неприменим.

Не понял sad.gif Поясни.
Множество может занимать максимум 32 байта, а обработка 32-х байт не может быть слишком медленной, как бы это не делали smile.gif
Цитата
А код мне все равно не нравитсяsmile.gif

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


Человек
*****

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

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


Цитата(Malice @ 21.01.2007 20:25) *

Это ты имел ввиду ?
type days=(Sun, Mon, Tue, Wed, Thu, Fri, Sat);
const ndays:array [days] of string=
('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat');
var s:set of days;
dd:days;
begin
s:=[Sun, Mon, Wed, Thu, Fri, Sat];
for dd:=sun to sat do
if dd in s then write (ndays[dd],' ');
end.

Не понял sad.gif Поясни.
Множество может занимать максимум 32 байта, а обработка 32-х байт не может быть слишком медленной, как бы это не делали smile.gif

Покажи свой.


А если мы заранее не знаем какие будут слова в множество?

А код напишу...позже...

Всем пока инет отключают

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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Perl. Just code it!
******

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

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


Цитата
А код напишу...позже...


Ждем с нетерпением ...


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Профи
****

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

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


А если изначально элементы задать в массиве, а в начале программы на его основе сгенерировать множество? Массив проще вывести.


--------------------
Close the World...txeN eht nepO
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






Цитата
а в начале программы на его основе сгенерировать множество?
Множество ЧЕГО? Строк? У автора проблемы, похоже, с пониманием того, что строка (слово - это строка, правда, compiler?) не может быть базовым типом для множества... Такие вещи реализуются вручную...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Если бы автор объяснил, что такое слово, разговор был бы продуктивнее...
Может, это тип words=(slovo1,slovo2,slovo3)?
Хотя как-то не согласуется с
Цитата
А если мы заранее не знаем какие будут слова в масиве?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Человек
*****

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

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


Не судите меня строго, я ведь не волшебник, а только учусь :=)
Я понял свою ошибку из-за которой возникло <<недорозумение>> в одном из сообщений я перепутал термин множество(Set) с масивом(Array). Прошу прощение mega_chok.gif

Теперь по поводу предложеного кода
Дело в том что этот код не учитывает возможности присутствия в множестве повторяющихся элементов
****Пример Входные Данные(Элементы множества): 1,22,333
***************Печать: 1,2,3
*********** Входные Данные: 1,2,3
***************Печать: 1,2,3
Вторая (субьективуная) причина -- нечетаемость кода
[code]
Насчет слов
Допустим существует программа:
пользыватель вводит фамилии сотрудников (программа должна вспомосчю цыкла записывать фамилии в множество до тех пор пока ввод не будет<<хватит>>), а потом выводит фамилии на экран.
Следующий вопрос возможно ли чтобы фамилии выводились в алфавитном порядке.

И напоследок повторяю: Не судите меня строго

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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
Дело в том что этот код не учитывает возможности присутствия в множестве повторяющихся элементов

Разумеется. А в множестве их и не может быть!
Цитата
Вторая (субьективуная) причина -- нечетаемость кода

Очень субъективно. Ничего такого не заметила.
Цитата
Не судите меня строго

Строго, не строго....
Базовым типом множества может быть только порядковый тип. Строка к такому не относится...
Поэтому осуществить это так, как ты собираешься - имхо, невозможно.
Можно создать свой тип "Фамилии" и записать туда ВСЕХ сотрудников. А потом в множество выбрать (пусть путем ввода с клавиатуры) некоторых. Понадобится преобразование из строки в фамилию...
Но ради чего такое извращение - не понимаю... Можно же воспользоваться более подходящими структурами данных!


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #15


Человек
*****

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

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


блогадарю за помощ give_rose.gif
Жаль что моё понимание программирования на маленьком уравне (иначе бы б такой коллизии не возникло) mega_chok.gif
а код мне НЕ НРАВИТСЯ!!! dry.gif


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #16


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Ну напиши другой - разве кто-то против? smile.gif
Я, например, только рада буду увидеть более оптимальное (коряво сказала... но смысл понятен) решение.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #17


Гость






Цитата
Вторая (субьективуная) причина -- нечетаемость кода
Угу... Очень просто обвинить ВСЕХ в том, что ИХ код нечитаем. Особенно, когда ни одной строки ТВОЕГО кода никто так и не увидел... dry.gif Покажи же нам этот шедевр, достойный всяческого внимания...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #18


Человек
*****

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

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


Цитата(volvo @ 22.01.2007 17:53) *

Угу... Очень просто обвинить ВСЕХ в том, что ИХ код нечитаем. Особенно, когда ни одной строки ТВОЕГО кода никто так и не увидел... dry.gif Покажи же нам этот шедевр, достойный всяческого внимания...


Я невкоем случае не хотел некого обвинить
Разве стремление к лучшему -- негативно
Свой шедевр написатт НЕ МОГУ по причине слабых знаний в математики и программировании (как я говорил:<<только учусь>>) однако к опытным программистам читая эти строки может прийти гениальный МЕМ.

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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #19


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


Цитата
Разве стремление к лучшему -- негативно

Конструктивное стремление - позитивно. Когда оно выражается в форме: "Вот так будет лучше, чем у вас...". А когда речь о "у вас плохо, потому что я ничего не понял" - по-моему, это проявление стремления переложить вину за отсутствие знаний на кого-то. В данном случае наиболее позитивно - сесть и разобраться с этим кодом. Как 6 строк кода, из которых 2 - объявление переменных, 2 - операторные скобки и одна - присваивание, могут быть нечитаемыми?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #20


Человек
*****

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

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


Цитата(мисс_граффити @ 22.01.2007 18:07) *

Конструктивное стремление - позитивно. Когда оно выражается в форме: "Вот так будет лучше, чем у вас...". А когда речь о "у вас плохо, потому что я ничего не понял" - по-моему, это проявление стремления переложить вину за отсутствие знаний на кого-то. В данном случае наиболее позитивно - сесть и разобраться с этим кодом. Как 6 строк кода, из которых 2 - объявление переменных, 2 - операторные скобки и одна - присваивание, могут быть нечитаемыми?

Эту задачу я решу лучьше(Вопрос когда) и обязательно первым делом положу на этот форум

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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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