Подскажите пожалуйста что я делаю не так если можете помогите. Сформировать три

Подскажите пожалуйста что я делаю не так если сможете помогите.
Сформировать три огромного количества X1, X2, X3, содержащие целые числа из спектра 1 100 . Мощность каждого огромного количества одинакова 5. Значения частей исходных множеств ввести с клавиатуры.
Сформировать новое огромное количество Y=(X2X3)/((X1X2) U(X1X3)), проверить принадлежность огромному количеству чисел 20, 30. Найти мощность приобретенного множества и вывести его на экран.

Program ex1;
var x1,x2,x3,y,p: set of 1..100;
s,a,i:integer;
begin
x1:=[ ]; x2:=[ ]; x3:=[ ];
writeln('Вв. 5 частей множества x1 через Enter:');
For i:=1 to 5 do
begin
readln(a);
x1:=x1+[a];
end;
Writeln('Вв. 5 частей множества x2 через Enter:');
For i:=1 to 5 do
begin
readln(a);
x2:=x2+[a];
end;
Writeln('Вв. 5 частей огромного количества x3 через Enter:');
For i:=1 to 5 do
begin
readln(a);
x3:=x3+[a];
end;
Writeln;
y:=(x2*x3)-((x1*x2)+(x1*x3));
P:=[ ]; S:=0;
For i:=1 to 100 do
if (i in y) and (20 and 30 in y) then
begin
S:=s+1;
P:=P+[i];
end;
for i:=1 to 100 do
if (i in P) then Write(i);
Writeln('Мощность P:',S);
Readln;
end.

Задать свой вопрос
Kolja
В общем, программка полностью трудоспособна, только необходимо поменять две строчки: строчку if (i in y) and (20 and 30 in y) then убрать, заместо нее после строчки P:=P+[i]; добавить строчку if (i=20) or (i=30) then writeln('элемент ',i,' входит в огромное количество'); в конце программы в строке if (i in P) then write(i); write(i); поменять на write(i,' '); а то вывод у Вас соединится. На испытательной задачке x1=20,26,34,45,58 , x2=20,26,45,30,92 , x3=20,45,15,30,92 обязаны получить P: 30, 92 и мощность Р =2
1 ответ
Решение в прикрепленном файле.

Степка Хухрыгин
Мощность все равно приравнивается 0 ((
Вера
Решение в прикрепленном файле - программка испытана на тестовой задаче, приведенной в прошлом комменты. А строку Вы поменяли? Строчку if (i in y) and (20 and 30 in y) then .. на строку if (i in y), по другому, вы ставите условие, что оба элемента 20 и 30 обязаны принадлежать огромному количеству, что не верно, по условию задачки. В условии сказано, что нужно проверить, входят ли 20 и 30 в множество.
Софья
У Вас какой транслятор? Турбо паскаль или Паскаль АВС? В прикрепленном файле под Паскаль АВС. Я могу Для вас переслать Вашу подправленную программку под Турбо паскаль. Но так как в Вашем вопросе поле для ответа теснее не корректируется, а в поле для комментариев текст программы не поместится, то задайте вопрос снова и я Вам файл прикреплю в ответе.
Эчеверия Анна
нет abc
Гертович Валера
мощность вывод 100
Лариса Бабеева
Проверьте операторы в конце программы y:=(x2*x3)-((x1*x2)+(x1*x3));P:=[ ]; S:=0;For i:=1 to 100 doif (i in y) thenbeginS:=s+1;P:=P+[i];if (i=20) or (i=30) thenwriteln('элемент ',i,' содержится в Р');end;for i:=1 to 100 doif (i in P) then Write(i,' ');Writeln('Мощность P:',S);Readln;end.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт