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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.11.2011, 23:19   #1
mozhik
Новичок
Джуниор
 
Регистрация: 05.11.2011
Сообщений: 3
Стрелка Задача на множество)))

Рассматривается массив символьных строк, состоящий не более чем из 10 строк. Длина строки не более 40. Прочитать массив и распечатать его. Для каждой строки массива построить множество из символов этой строки.
Напечатать слово "Да", если построенные множества попарно не пересекаются, и слово "Нет" в противном случае.
mozhik вне форума Ответить с цитированием
Старый 06.11.2011, 00:50   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

По теме: эх, был бы у меня Паскаль))) или Паскаль О_о... или Паскаль++

Интересная фишка: если поменять местами "Да" и "Нет", задача станет много яснее.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 07.11.2011, 00:25   #3
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Вот тут тебе операции с множествами. Надеюсь, ввод и распечатку строк ты сделаешь сам..
Код:
const
  m= 10;
  l= 40;
var
  s: array[1..m] of string[l];
  c: array[1..m] of set of char;
  p: set of char;
.....
  {тут вводишь}
  {тут распечатываешь}
  for i:=1 to n do
    for j:=1 to Length(s[i]) do c[i]:= c[i] + s[i][j];
  p:= [];
  for i:= 1 to n do
    for j:=i+1 to n do p:= p + c[i]*c[j];
  if p=[] then writeln('да') else writeln('нет');
Пока писал, возникли сомнения относительно того, как понимать фразу "множества попарно не пересекаются". В представленном выше коде она понимается буквально, то есть ДА пишется только если НИ ОДНО множество не пересекается НИ С ОДНИМ другим.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача про множество vereney Паскаль, Turbo Pascal, PascalABC.NET 3 20.03.2011 21:09
задача на множество точек MariyaVo Паскаль, Turbo Pascal, PascalABC.NET 2 14.01.2009 21:59