|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Сложности с пониманием темы "Множества" в Turbo Pascal. |
|
Разное - [решено] Сложности с пониманием темы "Множества" в Turbo Pascal.
|
![]() Новый участник Сообщения: 26 |
Здравствуйте!
Снова обращаюсь к знатокам ![]() Вопрос от новичка, который только-только начал изучать Turbo Pascal и постепенно добрался до темы «Множества». Тема в общем смысле кажется понятной, но, в то же время кажется, что… ничего совсем не понятно. Если честно, в голове уже каша от изученного материала… Но очень хочется понять эту тему, прежде, чем идти в изучении дальше. Ниже я привожу вопросы, на которые прошу Вас ответить. Вопросов много. Я понимаю, что ответы на них могут быть утомительными… Но если уж не на все, то хоть на некоторые из них, ответьте, пожалуйста. Правильно ли я понимаю, что: 1. В памяти отводится по 1 биту под каждый элемент, находящийся во множестве. 2. Перечислимый тип данных сам по себе является множеством. 3. Не совсем понятно объявление множеств в программе. а) type SetByte = set of byte; var sb : SetByte; Правильно ли я понимаю в данном случае, что: а1) Множество задается в разделе type, потому что по сути, создается необходимый пользовательский тип? а2) В разделе var нужно объявить специальную переменную, которая будет являться «представителем» того пользовательского типа, который был создан в разделе type. Т.е. переменной созданного множества. а3) В программе можно будет выполнять все обычные операции, предусмотренные ЯП, над переменной, которая является «представителем» множества. a4) В данном случае sb ялвяется одним из элементов множества SetByte. И таких элементов (переменных) можно создать столько, сколько может вместить в себя множество. б) type SetChisla = set of 10..20; var Index : SetChisla=[12,15,17]; б1) Понятно, что задается множество в диапазоне от 10 до 20. Но почему здесь не указывается какого типа это множество? Или итак понятно, что это целочисленный тип? б2) Если уже определено, что множество задано в диапазоне от 10 до 20, что значат цифры в квадратных скобках? Здесь прописывается то, что в заданном множестве будут присутствовать именно эти три элемента: 12, 15 и 17? Т.е. происходит обычная операция присваивания? б3) Почему в качестве идентификатора переменной множественного типа участвует ключевое слово index? Может быть это опечатка автора учебного пособия? в) type Symbol = set of char; var Letter, Digits, Sign : Symbol; в1) Почему можно создавать несколько переменных, являющихся представителями одного и того же множества? Как они взаимодействуют друг с другом? г) type Month = (January, February, March, April, May, June, July, August, September, October, November, December); Season : set of Month; var Winter, Spring, Summer, Autumn, Vacation, WarmSeason : Season; г1) Здесь создано множество Season на основе перечислимого типа? г2) Какими тогда будут элементы этого множества? January, February… December ? Или Winter…WarmSeason? Или множество будет содержать и отдельно заданные элементы и элементы, входящие в перечислимый тип Month? г3) Почему в строчке Season : set of Month; стоит двоеточие, а не знак равно? Или это просто опечатка в пособии? д) var Operation : set of (Plus, Minus, Mult, Divid); д1) Почему в данном случае происходит объявление множества в разделе переменных? И почему опять через : , а не через знак = ? д2) После set of должен быть прописан тип данных, которому принадлежат элементы множества. Тогда в этом случае мне не понятно, какому типу принадлежат элементы заданного множества? е) var Param : set of 0..9=[0, 2, 4, 6, 8]; е1) Здесь задано множество целого типа? е2) Во множество записали элементы 0, 2, 4, 6, 8 ? 4. В пособии написано, что множества часто используются как константы. Тогда, определив множество в разделе const, нужно ли его прописывать в разделе type? 5. Что значит пересечение множеств? Прошу, пожалуйста, объясните доступным, понятным языком ![]() |
|
Отправлено: 17:54, 09-12-2011 |
Старожил Сообщения: 198
|
Профиль | Отправить PM | Цитировать Цитата lenaustkz84:
Цитата lenaustkz84:
Например var Operation : set of (Plus, Minus, Mult, Divid); Здесь (Plus, Minus, Mult, Divid) - перечислимый тип, а set of (Plus, Minus, Mult, Divid) - множество, элементы которого принадежат перечислимому типу. 3 вопрос не осилил... Будет время и силы, отвечу. Цитата lenaustkz84:
Перечислимый тип - да, часто используется как константы. Константные множества тоже никто не отменял. В чем фича здесь? Цитата lenaustkz84:
А вообще, поняти множества в паскале есть довольно естественная реализация математического понятия множества. Для общего понимания, очень советую почитать Кузнецов "Дискретная математика для инженера".(Моя любимая техническая книга. Просто шедевр. ![]() |
||||
Отправлено: 17:24, 12-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Всё о TURBO PASCAL (обсуждение, помощь в написание программ, ошибки, Pascal ABC) | Loading | Программирование и базы данных | 41 | 20-05-2015 15:28 | |
Вопрос - Про что диплом - помогите с пониманием темы | xcislav | Защита компьютерных систем | 5 | 07-02-2010 00:05 | |
Проблема с наследованием "сложности пароля" | skylego | Microsoft Windows NT/2000/2003 | 0 | 28-03-2008 19:12 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|