Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Сложности с пониманием темы "Множества" в Turbo Pascal.

Ответить
Настройки темы
Разное - [решено] Сложности с пониманием темы "Множества" в Turbo Pascal.

Аватара для lenaustkz84

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: lenaustkz84
Дата: 09-12-2011
Здравствуйте!
Снова обращаюсь к знатокам

Вопрос от новичка, который только-только начал
изучать 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
Благодарности: 51

Профиль | Отправить PM | Цитировать


Цитата lenaustkz84:
1. В памяти отводится по 1 биту под каждый элемент,
находящийся во множестве. »
Если мне не изменяет память, то да.
Цитата lenaustkz84:
2. Перечислимый тип данных сам по себе является
множеством. »
Нет, не является. Но может использоваться как баз для множества.
Например
var Operation : set of (Plus, Minus, Mult, Divid);
Здесь (Plus, Minus, Mult, Divid) - перечислимый тип, а set of (Plus, Minus, Mult, Divid) - множество, элементы которого принадежат перечислимому типу.

3 вопрос не осилил... Будет время и силы, отвечу.

Цитата lenaustkz84:
4. В пособии написано, что множества часто используются
как константы. Тогда, определив множество в разделе
const, нужно ли его прописывать в разделе type? »
Не очень ясно, что имеется ввиду.
Перечислимый тип - да, часто используется как константы.
Константные множества тоже никто не отменял.
В чем фича здесь?
Цитата lenaustkz84:
5. Что значит пересечение множеств? »
Это множество, содержащее только те элементы, которые содержаться в обоих исходных множествах.

А вообще, поняти множества в паскале есть довольно естественная реализация математического понятия множества. Для общего понимания, очень советую почитать Кузнецов "Дискретная математика для инженера".(Моя любимая техническая книга. Просто шедевр.). Первая глава очень хорошо расрывает понятие множества.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:24, 12-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Сложности с пониманием темы "Множества" в Turbo Pascal.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - Всё о 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




 
Переход