Форум программистов, компьютерный форум CyberForum.ru

Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям). - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
citizen
0 / 0 / 0
Регистрация: 28.12.2009
Сообщений: 6
23.03.2010, 01:26     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям). #1
Доброго времени суток. Помогите пожалуйста решить задачку по множествам.

условие:
Задан универсум X = [1,2, .., 40]. Необходимо задать множества A, B, C e X, то есть множества, состоящие из натуральных чисел диапазона от 1 до 40, при чем |A|=|B|=|C|=20, заданные с помощью генерации случайных чисел.

Выполнить действия над множествами (B - A) * C и вывести результат.


Вот собственно и все задание. Буду очень признателен тому, кто мне сможет помочь.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2010, 01:26     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям).
Посмотрите здесь:

C++ выполнить действия над строкой в промежутке между двух указателей
C++ C++ операции над множествами
Множества. Вычислить количество элементов множества Q, связанного c исходными множествами C++
C++ Выполнить над файлом действия (Заменить все пробелы символом "*")
C++ Операции над множествами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
23.03.2010, 10:49     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям). #2
Будем представлять множества как char X[40], X[i]=0 - i-ый элемент отсутствует, X[i]=1 - присутствует (0 < i < 40). Это не слишком экономно по памяти, но для наших объемов сойдет
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
FullR(char X[40])  //  Заполнение множества
{
    memset(X, 0, 40);
    k = 0;
    while(k<20) {
       i = rand(40);
       if (X[i]) continue;
       X[i] = 1;
       k++
    }
}
//........
Sub(char Z[40], char X[40], char Y[40])   // Z=X-Y
{
   for(i=0; i<40; i++)
      if (X[i] && Y[i]==0) Z[i] = 1;
      else                     Z[i] = 0;
}
//......
Mult(char Z[4],  char X[40], char Y[40})  // Z = X * Y
{
    for(i=0; i<40; i++)
       if (X[i] && Y[i]) Z[i] = 1;
       else                Z[i] = 0;
}
//........
main()
{  char A[40], B[40], C[40], D[40], E[40];
     FullR(A);
     FullR(B);
     FullR(C);
     Sub(D, B, A);
     Mult(E, D, C);
     for(i=0; i<40; i++) if (E[i]) printf("%d ", i+1);
     printf("\n");
}
/......
Вот собственно и все решение
Тривиальные детали (объявление переменных, #include) - опущены
citizen
0 / 0 / 0
Регистрация: 28.12.2009
Сообщений: 6
23.03.2010, 13:26  [ТС]     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям). #3
спасибо.
сорри, а можно полностью текст программы, а то я в с++ не бум бум =(
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
23.03.2010, 14:42     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям). #4
Лень и неинтересно.
Посмотри любой топик в этом разделе - там этих программ немеряно.
Или книжечку почитай.
Все равно придется.

ЗЫ. Наводка.
В начале программы поставь #include <stdio.h>
В начале каждой функции напиши
int i, j; - перечисли все используемые в функции переменные
Yandex
Объявления
23.03.2010, 14:42     Множества. Выполнить действия над множествами: (B - A) * C (по заданным условиям).
Ответ Создать тему
Опции темы

Текущее время: 04:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru