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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.02.2011, 23:50   #1
masterlomaster
Форумчанин
 
Аватар для masterlomaster
 
Регистрация: 21.10.2009
Сообщений: 114
По умолчанию паскаль(множества)

Вводится 6 чисел, не превышающих 49. Программа также генерирует 6 различных чисел от 1 до 49 и сообшает, сколько из них пользователь угадал.

У кого-нибуть есть алгоритм ввода и вывода множества?
masterlomaster вне форума Ответить с цитированием
Старый 24.02.2011, 00:01   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Множества не вводятся/выводятся, как числовые переменные или строки.
Операции ввода/вывода можно оставлять поэлементно, как в случае с массивами.

Например,если есть множество из элементов от 1 до 100, то для того, чтобы вывести его элементы на экран, можно воспользоваться конструкцией:
Код:
for i:=1 to 100 do 
        if i in A then writeLn(i);
Такая конструкция будет работать, даже если в множестве A содержатся НЕ ВСМЕ элементы из этого диапазона, более того, именно для этого случая она и предназначена.

___________

Ввод элементов в множества делается банальной операцией объединения множеств.
Если нам надо заполнить множества элементами, введёнными с клавиатуры, пишем так:
Код:
Read(element);
A:=A + [element];
При необходимости такую операцию можно выполнить в цикле.
Вадим Мошев вне форума Ответить с цитированием
Старый 24.02.2011, 00:10   #3
masterlomaster
Форумчанин
 
Аватар для masterlomaster
 
Регистрация: 21.10.2009
Сообщений: 114
По умолчанию ааааа

как множества та тогда сравнить?
допустим например
if i=j then write(i);???
masterlomaster вне форума Ответить с цитированием
Старый 24.02.2011, 00:17   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Если вы хотите вывести на экран элементы, принадлежащие и тому, и другому множеству, то можно поступить так:
Код:
for i:=1 to 49 do {как у вас 49 написано}
      if (i in A) AND (i in B) then WriteLn(i);
или вот так:

Цитата:
C:=A*B; {перечение множеств}
for i:=1 to 49 do {как у вас 49 написано}
if i in C then WriteLn(i);
P.S. Насколько мне известно, для сравнения множеств определена только операция проверки на равно/неравно.

Последний раз редактировалось Вадим Мошев; 24.02.2011 в 00:19. Причина: Stack overflow error :)
Вадим Мошев вне форума Ответить с цитированием
Старый 24.02.2011, 00:28   #5
masterlomaster
Форумчанин
 
Аватар для masterlomaster
 
Регистрация: 21.10.2009
Сообщений: 114
По умолчанию аааа

Спасибо Вам большое, все понял.
masterlomaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Множества. Ria Помощь студентам 2 25.12.2010 16:19
Паскаль множества ololoshqa Помощь студентам 2 18.05.2010 22:07
Множества паскаль Belii09878 Помощь студентам 5 16.05.2010 16:04
Паскаль Множества vacia78 Помощь студентам 3 09.04.2009 22:10