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

Определить, является ли множество X подмножеством множества Y - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.92
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
05.09.2014, 18:52     Определить, является ли множество X подмножеством множества Y #1
Рассматривая массивы X, Y и Z как представление некоторых множеств из объектов типа индекс (X[k]=TRUE, если элемент k принадлежит множеству X, и X[k]=FALSE иначе, и т.п.), реализовать следующую операцию над этими массивами-множествами: переменной t присвоить значение TRUE, если множество X является подмножеством множества Y, и значение FALSE иначе.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.09.2014, 18:52     Определить, является ли множество X подмножеством множества Y
Посмотрите здесь:

C++ Даны два множества чисел. Используя дополнительное множество, переписать в первое – четные элементы, во второе - нечетные
C++ Си является подмножеством С++?
C++ Проверить, является ли один массив подмножеством другого
Разработать класс, представляющий собой множество целых чисел, с методом определения множества C++
C++ Число изъять из множества А, если оно является элементом множества А, но не является элементом множества В
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
05.09.2014, 19:01     Определить, является ли множество X подмножеством множества Y #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Алгоритм:
В цикле проходите по множеству X и проверяете
- есть ли такой элемент в Y
- его значение равно значению из X,
Если Да, то продолжаете проверку.
В противном случае прерываете проверку
с сообщением, что X не является подмножеством Y.
Dgaizer
41 / 41 / 1
Регистрация: 25.03.2014
Сообщений: 328
10.09.2014, 00:24  [ТС]     Определить, является ли множество X подмножеством множества Y #3
Что не так и как цикл добавить проверки являются ли массивы подмножествами друг друга
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
38
39
40
41
42
43
44
45
46
#include <vcl.h>
#pragma hdrstop
#define N 10
#include <stdio.h>
//---------------------------------------------------------------------------
typedef int Tarray[100];
Tarray y;
int N,i;
void vvod_dd(Tarray m,int n)
{  int i;
for(i=0;i<=n;i++)
{ printf("Vvedite chislo:",i);
scanf("%d", &m[i]);
}
}
Tarray x;
int N,k;
void vvod_tt(Tarray j, int l)
{int k;
for(k=0;k<=l;k++)
{ printf("vvedite chislo:",k);
scanf("%d", &j[k]);
}
}
Tarray z;
int N,p;
void vvod_ss(Tarray a,int u)
{  int p;
for(p=0;p<=u;p++)
{ printf("Vvedite chislo:",p);
scanf("%d", &a[p]);
}
}
 
 
#pragma argsused
int main(int argc, char* argv[])
{
printf("vvedite razmernost massiva N: ");
scanf("%d", &N);
vvod_tt(y,N);
vvod_ss(z,N);
vvod_dd(,N);
system("pause");
        return 0;
}
Добавлено через 34 минуты
Подскажите вот что не так какую то ересь пишу
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
38
39
40
#include <vcl.h>
#pragma hdrstop
#include <stdio.h>
#include<iostream.h>
//---------------------------------------------------------------------------
int n,i,h,u,t;
int masX(int, float[n]);
{ int i;
for(i=0;i<n;i++)
cout<<"masX="<<m[i];
}
int h,k;
int masY(int, float[h]);
{ int k;
for(k=0;k<h;k++)
cout<<"masY="<<g[k];
}
int u,t;
int masZ(int, float[u]);
{ int t;
for(t=0;t<u;t++)
cout<<"masZ="<<d[t];
}
 
 
 
#pragma argsused
int main(int argc, char* argv[])
{  cout<<"\nVvedite n-kol-vo elementov massiva X";
cin>>n;
  cout<<"\nVvedite n-kol-vo elementov massiva Y";
cin>>h;
cout<<"\nVvedite n-kol-vo elementov massiva Z";
cin>>u;
 
 
 
system("pause");
        return 0;
}
zss
Модератор
Эксперт С++
 Аватар для zss
5950 / 5555 / 1786
Регистрация: 18.12.2011
Сообщений: 14,195
Завершенные тесты: 1
11.09.2014, 09:56     Определить, является ли множество X подмножеством множества Y #4
Вот правильно организованный ввод-вывод и проверка на принадлежность
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <iostream>
using namespace std;
//---------------------------------------------------------------------------
void OutMas(int n, double* m) // ; не ставим!
{ 
    for(int i=0;i<n;i++)
        cout<<m[i]<<' ';
    cout<<endl;
}
void InputMas(int n,double* m)  
{ 
    for(int i=0;i<n;i++)
    {
        cout<<"\nVvedite "<<i<< " element:";
        cin>>m[i];
    }
}
// --------------------------------------------------------
// принадлежит ли множество b множеству a
bool IsSubSet(int n1,int* a,int n2,int* b)
{
    
    for(int i=0;i<n2;i++) // идем по элементам b
    {
        bool notfound=true; // считаем пока , что b[i] нет
        for(int j=0;j<n1;j++) // сравниваем со всеми a[j] по очереди
        {
            if(b[i]==a[j]) // нашли
            {
                notfound=false;
                break;
            }
        }
        if(notfound)return false; // если не нашли возвращаем false
    }
    return true; // все найдены
}
//------------------------------------------------
int main()
{  
    cout<<"\nVvedite kol-vo elementov massiva X:";
    int nx;cin>>nx;
    double* x=new double[nx];
    InputMas(nx,x);
 
    cout<<"\nVvedite kol-vo elementov massiva Y:";
    int ny;cin>>ny;
    double* y=new double[ny];
    InputMas(ny,y);
        cout<<"massiv x=\n";
    OutMas(nx,x);
        cout<<"massiv x=\n";
    OutMas(ny,y);
 
    if(IsSubSet(nx,x,ny,y))
              cout<<"y Prinadlezhit x";
        else
              cout<<"y NE Prinadlezhit x";
 
        delete[] x;
    delete[] y;
    system("pause");
        return 0;
}
Yandex
Объявления
11.09.2014, 09:56     Определить, является ли множество X подмножеством множества Y
Ответ Создать тему
Опции темы

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