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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2011, 22:32   #1
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
Сообщение Множества в Делфи

помогите в написании. с множествами трудно очень.
Изображения
Тип файла: jpg Безымянный.JPG (17.7 Кб, 44 просмотров)
dima-intro вне форума Ответить с цитированием
Старый 20.09.2011, 22:43   #2
Вадим Мошев

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

Разве операция "Исключающее ИЛИ (сумма по модулю два)" определена для множеств? Или это симметрическая разность?
Вадим Мошев вне форума Ответить с цитированием
Старый 20.09.2011, 22:46   #3
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

да,это симметрическая разность
dima-intro вне форума Ответить с цитированием
Старый 20.09.2011, 22:52   #4
Вадим Мошев

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

Конкретно у вас в чём проблема? Что вызывает трудности?
Вадим Мошев вне форума Ответить с цитированием
Старый 20.09.2011, 22:55   #5
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

с пересечением мне все ясно.
вот именно с остальными 2-мя действиями проблема
dima-intro вне форума Ответить с цитированием
Старый 20.09.2011, 23:23   #6
dima-intro
Пользователь
 
Аватар для dima-intro
 
Регистрация: 11.12.2010
Сообщений: 43
По умолчанию

очень нуждаюсь в помощи
буду чрезмерно благодарен
dima-intro вне форума Ответить с цитированием
Старый 21.09.2011, 04:27   #7
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

С={1,2,3,4,5,6}
A={1,2,3,4,8,9}
B=С/А={1,2,3,4,5,6}-{1,2,3,4,8,9}={1,2}
B=C ⊕ A ={1,2,3,4,5,6}⊕{1,2,3,4,8,9}={5,6,8 ,9}
Если вас интересует реализация алгоритма, то на каком языке?
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 21.09.2011, 04:38   #8
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Цитата:
Сообщение от Rin Посмотреть сообщение
Если вас интересует реализация алгоритма, то на каком языке?
Rin, прочти название темы
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 21.09.2011, 05:34   #9
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

ЭЭЭЭ... . Спать пора. (я отмазался) ))))
У тебя, кроме массивов, которые в задании, нужно определить ещё несколько для сохранения промежуточных результатов.
Для С/А
Код:
const n=7;
m=5;
var c:array[1..m] of integer;
a:array[1..n] of integer;
c_minus_a:array of integer;
i,j,ca:integer;
da:bbolean;
begin
  ca:=0;
  for i:=1 to m do
  begin
    da:=false;
    for j:=1 to n do if c[i]=a[j] then da:=true;
    if not da then
    begin
      ca:=ca+1;
      setlength(c_minus_a,ca);
      c_minus_a[ca-1]:=c[i];
    end;
  end;
end;
для симметричной разности так:
Код:
const n=7;
m=5;
var c:array[1..m] of integer;
a:array[1..n] of integer;
c_raznost_a:array of integer;
i,j,ca:integer;
da:bbolean;
begin
  ca:=0;
  for i:=1 to m do
  begin
    da:=false;
    for j:=1 to n do if c[i]=a[j] then da:=true;
    if not da then
    begin
      ca:=ca+1;
      setlength(c_raznost_a,ca);
      c_raznost_a[ca-1]:=c[i];
    end;
  end;
  for i:=1 to n do
  begin
    da:=false;
    for j:=1 to m do if c[j]=a[i] then da:=true;
    if not da then
    begin
      ca:=ca+1;
      setlength(c_raznost_a,ca);
      c_raznost_a[ca-1]:=a[i];
    end;
  end;
end;
Этот алгоритм вытекает из формулы: А⊕В=(А/В)U(В/А)
Вот и всё.
OFF TOP
А действительно, пора спать.
Если помог, проси поставить минус. Будь оригинален!

Последний раз редактировалось Rin; 21.09.2011 в 06:10.
Rin вне форума Ответить с цитированием
Старый 21.09.2011, 06:16   #10
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Гм. Я, наверное, совсем запутался в обозначениях..
Почему так:
Цитата:
B=С/А={1,2,3,4,5,6}-{1,2,3,4,8,9}={1,2}
- а? Казалось бы должно быть {5,6}.

И вообще, я бы лучше сделал две функции: одну для перегонки массива в множество, а вторую - обратно. Переводишь массивы в множества, делаешь, что надо, а потом снова в массив. По условию, это массивы _символов_ - так что все должно быть тип-топ. Да и в заголовке темы есть намек на множества.. ))
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17
множества viper1941 Паскаль, Turbo Pascal, PascalABC.NET 1 26.04.2011 20:07
Делфи... множества Asira Помощь студентам 4 30.12.2009 18:38
МНОЖЕСТВА ДЕЛФИ Asira Помощь студентам 0 15.12.2009 17:08
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37