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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 22:24   #1
edmynt
Пользователь
 
Аватар для edmynt
 
Регистрация: 03.06.2009
Сообщений: 83
По умолчанию Множества,паскаль

Орагнизовать ввод элементов трех множеств A, B, C, D. Определить в программе являеться ли следующие утверждение верным:
множество А содержеться в В, множество В пересекаеться с С, а множества В и С содержаться в D. Привести значение элементов каждого множества для выполнения этого условия.

program laba6;
uses crt;
var
y:array [1..100] of byte;
A: set of byte;
B: set of byte;
C: set of byte;
D: set of 1..100;
x:boolean;
i,n:byte;
begin
clrscr;
A:=[];
B:=[];
C:=[];
Writeln ('Множество D=1..100');
writeln ('Введите количество элементом множества A');
readln (n);
writeln ('Введите ',n,' элементов A= ');
for i:=1 to n do
begin
readln (y[i]);
A:=A+[y[i]];
end;
writeln ('Введите количество элементов множества B');
readln (n);
writeln ('Введите ',n,' элементов B= ');
for i:=1 to n do
begin
readln(y[i]);
B:=B+[y[i]];
end;
writeln ('Введите количество элементов множества С');
readln (n);
writeln ('Введите ',n,' элементов C= ');
for i:=1 to n do
begin
readln(y[i]);
C:=C+[y[i]];
end;
x:=(['A'] <= ['B'])and(['B']<>['C'])and(['B','C']<=['D']);
writeln (x);
x:=['A'] <= ['B'];
writeln(x);
x:=['B']<> ['C'];
writeln (x);
x:=['B','C']<=['D'];
writeln (x);
Repeat until keypressed;
end.


находит токо что множество В с С пересикаються,а на остальное пишет что ложно. Исправьте плиз что не так...
edmynt вне форума Ответить с цитированием
Старый 23.06.2009, 22:56   #2
edmynt
Пользователь
 
Аватар для edmynt
 
Регистрация: 03.06.2009
Сообщений: 83
По умолчанию

во,практичесли все уже заработало,
токо вопрос..как знак пересечения прировнять к логической переменной?

х:= В пересекаеться с С
edmynt вне форума Ответить с цитированием
Старый 23.06.2009, 23:00   #3
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

во-первых, чтобы проверить вхождение одного мн-ва в другое используется оператор in.. нахождения пересечения исп-ся операция *
если пересечения нет - результатом операции будет пустое мн-во

т.е. условия такие примерно
множество А содержится в В - (A in B)
множество В пересекается с С - (A*B <> [])
множества В и С содержатся в D - (B in D) and (C in D) или (B+C in D)
Uguu~

Последний раз редактировалось __STDC__; 23.06.2009 в 23:02.
__STDC__ вне форума Ответить с цитированием
Старый 23.06.2009, 23:01   #4
edmynt
Пользователь
 
Аватар для edmynt
 
Регистрация: 03.06.2009
Сообщений: 83
По умолчанию

in проверяет ттолько число входит в множество или нет, а * выдает ошибку,впрочем также как и in
edmynt вне форума Ответить с цитированием
Старый 23.06.2009, 23:05   #5
edmynt
Пользователь
 
Аватар для edmynt
 
Регистрация: 03.06.2009
Сообщений: 83
По умолчанию

урааа заработалооо,спасибо,но токо in всетаки лишние)))
edmynt вне форума Ответить с цитированием
Старый 23.06.2009, 23:11   #6
__STDC__
Участник клуба
 
Аватар для __STDC__
 
Регистрация: 16.03.2009
Сообщений: 1,013
По умолчанию

ага, туплю.. in лишние.. но с * все верно
Uguu~
__STDC__ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль Множества vacia78 Помощь студентам 3 09.04.2009 22:10
Множества В Паскаль Стасссс Помощь студентам 1 03.04.2009 17:43
Паскаль. задача на множества Isuzu_Rin Помощь студентам 1 24.12.2008 10:01
Множества.(паскаль)Help plz pif Помощь студентам 2 01.12.2008 15:59