IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на мн-ва
Caries
сообщение 20.03.2005 16:38
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 44
Пол: Мужской

Репутация: -  0  +


type=(Вася,Володя,Ира,Лида,Марина,Миша)
гости=set of имя
группа=array[имя] of гости;
Описать логическую функцию Везде(ГР) определяющую, есть в группе Гр хотя бы один человек, побывавшийв гостях у всех остальных из Группы(ГР[х]) мн-во людей побывавших в гостях у человека с именем x; xне принадлежитГР[х];

Бред какой-то ,а не задача. (
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 20.03.2005 17:53
Сообщение #2


Гость






На самом деле бред, но если заменить кириллицу на латинские символы (чтобы можно было проверить результат) это будет выглядеть примерно так:
Код
type
 name = (vasya, volodya, ira, lida, marina, misha);
 guests = set of name;
 group = array[name] of guests;

const
 _group: group =
   ([volodya, misha],
    { Володя и Миша были в гостях у Васи (№1 в списке имен) }

    [vasya, lida, ira, misha], { и т.д. }
    [misha, vasya, marina],
    [misha, vasya, ira],
    [volodya{misha}],
    [vasya, ira]);

function vezde(gr: group): boolean;
 var
   i, j: name;
   res: boolean;
   was: set of name;
 begin
   res := false;
   { Перебор всех студентов группы (I - очередной студент) }
   for i := low(name) to high(name) do
     begin
       { was будет содержать всех, у кого в гостях был I }
       was := [];
       for j := low(name) to high(name) do
         { Если I был в гостях у J, то добавить его к списку }
         if (i in gr[j]) then was := was + [j];

       { если список тех, у кого в гостях побывал I
          (вместе с самим I) содержит всех учащихся
          группы, это значит, что I побывал в гостях у всех остальных.
          Только в этом случае Res будет равно True }
       res := res or ((was + [i]) = [low(name) .. high(name)])
     end;
   { возвращаем результат }
   vezde := res
 end;

begin
 writeln(vezde(_group))
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 23:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"