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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2014, 17:41   #1
alexeu121
 
Регистрация: 22.04.2014
Сообщений: 7
По умолчанию Множества.

Условие: Даны 2 множества A и B, состоящие из 10 целых чисел диапазона 1..100. Из данных множеств
выделить соответственно подмножества A1 чисел, делящихся на 2 без остатка, и B1 чисел,
делящихся на 2 без остатка. На печать вывести мощность и значения элементов множества
C=A1∪B1. Значения элементов исходных данных ввести с клавиатуры.

Не могу выделить подмножества А1 и В1, чем они отливаются? И то и то четное же.

Вот мой код, но здесь берутся исходные два множества, а не выделенные из них четные подмножества. Как мне исправить?
Код:
uses crt;
var
  x1,x2:set of 1..100;
  c,z:set of 1..100;
  i,q,w,n:longint;
begin
clrscr;
writeln('Pervoe mnozhestvo: ');
writeln('Chislo elementov: ');
readln(q);
w:=q;
q:=1;
   while (w>q-1) do
   begin
      writeln('Vvedite ',q,' chislo:');
      readln(i);
      if not(i in x1) then
      begin
         x1:=x1+[i];
         inc(q);
      end;
   end;
   writeln('Vtoroe mnozhestvo: ');
   writeln('Chislo elementov: ');
   readln(q);
   w:=q;
   q:=1;
   while (w>q-1) do
   begin
      writeln('Vvedite ',q,' chislo');
      readln(i);
      if not(i in x2) then
      begin
         x2:=x2+[i];
         inc(q);
      end;
   end;
   
   c:=(x1+x2);
   write('C mnozhestvo:= ');
   n:=1;
   for i:=1 to 100 do
      if i in c then
      begin
         write(i,' ');
         inc(n);
         writeln;
   writeln('Moshchnost mnozhestva C:',n);
end;
end.
alexeu121 вне форума Ответить с цитированием
Старый 03.06.2014, 19:31   #2
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

Код:
type
  TMnogestvo = set of 1..100;
var
  a, b, a1, b1, c : TMnogestvo;
  x : integer;
  i : integer;
begin
    //ввод первого множества
    writeln('Первое множество:');
    i:=0;
    repeat
      readln(x);
      if x in [1..100] then
      begin
        a:=a+[x];
        //если четное (делится на 2 без остатка) то заносим в множество a1
        if not odd(x) then a1:=a1+[x];
        inc(i);
      end;
    until (i>=10);
    writeln('Второе множество:');
    i:=0;
    repeat
      readln(x);
      if x in [1..100] then
      begin
        b:=b+[x];
        //если четное (делится на 2 без остатка) то заносим в множество b1
        if not odd(x) then b1:=b1+[x];
        inc(i);
      end;
    until (i>=10);
    //в множество С заносим пересечение множеств a1 и b1
    c := a1 * b1;

     //вывод множеств    
    write('a : ');
    for I := 1 to 100 do if i in a then write(Inttostr(i)+' ');
    writeln;
    write('b : ');
    for I := 1 to 100 do if i in b then write(IntToStr(i)+' ');
    writeln;
    write('a1 : ');
    for I := 1 to 100 do if i in a1 then write(Inttostr(i)+' ');
    writeln;
    write('b1 : ');
    for I := 1 to 100 do if i in b1 then write(IntToStr(i)+' ');
    writeln;
    write('c : ');
    x:=0;
    for I := 1 to 100 do
    begin
      if i in c then
      begin
        write(IntToStr(i)+' ');
        inc(x)
      end;
    end;
    writeln;
    writeln ('Мощность С = '+IntToStr(x));
    readln;
end;
вроде так. только проверялось в Делфи посему вывод надо подогнать под Паскаль.
Множества отличаются тем что в a1 и b1 заносятся только четные элементы множеств a и b.
Множество с формируется из пересечения множеств a1 и b1 - т.е. тех элементов которые присутствуют и в a1 и b1.
Dush вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Паскаль, Turbo Pascal, PascalABC.NET 0 13.12.2012 21:08
Pascal ABC. Множества. Сформировать два множества из M и N элементов случайным образом. powersej Помощь студентам 0 13.12.2012 20:58
Множества mimit Помощь студентам 9 06.12.2012 07:06
Сравнить мощность множества, состоящего из чисел от 1 до N с мощностью множества, состоящего из отрицательных элементов вектора В MaSS93 Паскаль, Turbo Pascal, PascalABC.NET 5 24.05.2012 20:04
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17