1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Задача: Есть N множеств, найти множество содержащей больше различных элементов, все возможные елементы множества заданы в массиве С.
Program LabRob2; Uses CRT; Type TypeSet = set of byte; Var C:array [1..12] of TypeSet; r,n,j,i,k:byte; BEGIN ClrScr; WriteLn('Vvedite elementi mnozhestva: '); Randomize; For i:=1 to 12 Do Begin r:=Random(9); Include(C[i],r); end; ReadKey; END.
Нужно цикл, который будет заполнять все множества и цикл которы будет проверять различные элементы, тоесть цикл в цикле как я понимаю. Но не знаю как их записать...не получается что-то...
Дано N множеств, найти множество содержащее максимальное количество элементов, все возможные елементы множества заданы в массиве С. Вот так она звучит.
Дано N множеств, найти множество содержащее максимальное количество элементов, все возможные елементы множества заданы в массиве С. Вот так она звучит.
Если она так звучит, то ты начал делать неправильно: у тебя массив C - это как раз массив множеств. Вот, как-то так, думаю, нужно..
Var s:array [1..n] of TypeSet; c: array [1..l] of byte; t: TypeSet; i,j,k,m,max: byte;
BEGIN {зададим массив c (в данном случае просто от d+1 до d+l} for i:=1 to l do c[i]:=i+d;
{заполняем вспомогательное множество t всеми элементами из c} t:= []; for i:=1 to l do Include(t,c[i]);
{заполняем множества случайным образом} For i:=1 to n Do for j:=1 to l do begin k:= Random(256); if k in t then Include(s[i],k) end;
{считаем мощность каждого множества и одновременно ищем максимум} max:= 0; k:= 1; for i:=1 to n do begin m:=0; for j:=1 to l do if c[j] in s[i] then Inc(m); if m>max then begin max:= m; k:= i end end; writeln('множество номер ',k,' имеет максимальное количество элементов (',max,')'); readln END.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой