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

Найти Булеан множества типа {a,b,c} - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Кто может сделать олимпиадную задачу? http://www.cyberforum.ru/cpp-beginners/thread679718.html
Нашел одну олимпиадную задачу, не знаю как ее решить. Кто-нибудь может? Четырехзначное число, записанное в восьмеричной системе счисления имеет старшим разрядом единицу. Если эту единицу...
C++ Найти максимальное количество подряд идущих минимальных элементов из данного набора Дано целое число N и набор из N целых чисел. Найти максимальное количество подряд идущих минимальных элементов из данного набора. Выполнить без применения функций. http://www.cyberforum.ru/cpp-beginners/thread679716.html
C++ Дана матрица N на M Записать в другой массив строку
Дана матрица N x M.Записать в другой массив строку, составленную из сумм отрицательных элементов столбцов матрицы. Выполнить без использования процедур и функций.
C++ Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр
Вывести все четырехзначные числа в записи которых нет двух одинаковых цифр. Например 1234;1345;1789;6789. Выполнить без функций и продцедур. Мой код не работает( #include "stdafx.h"...
C++ Определить величины всех отрезков, из которых составился путь шмеля http://www.cyberforum.ru/cpp-beginners/thread679675.html
6. Пункт А расположен на расстоянии 20 км от пункта Б. Из пункта А со скоростью 2км/час вышел пешеход П1, одновременно с ним на встречу ему из пункта Б вышел пешеход П2 со скоростью 3км/час. Между...
C++ Среди элементов матрицы выше главной диагонали найти произведение чётных элементов Среди элементов матрицы, которые находятся выше главной диагонали, найти произведение чётных элементов. Как найти элементы, которые находятся выше главной диагонали? for(int i=0;i<n;++i) for(int... подробнее

Показать сообщение отдельно
Artist
0 / 0 / 0
Регистрация: 13.06.2014
Сообщений: 3
13.01.2015, 17:31
Писали такую программу.
Множество вводится вручную + проверка на повторяющиеся элементы множества.

Однако, в данном коде заморочки с вводом/выводом, которые не нужны в принципе. Их можно легко убрать.

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <cmath>
#include <cstdlib>
#include <vector>
#include <string>
 
using namespace std;
using namespace System;
 
vector <wstring> input(int noe, vector <wstring> vectorx) // Ввод множества
{
    wstring e;
    int k = 1;
 
    for (int i = 0; i < noe; i++)
    {
        Console::Write("Введите {0} элемент множества: ", (i + 1));
        wcin >> e;
        if (i == 0) vectorx.push_back(e);
        else
        {
            for (int j = 0; j < i; j++)
            {
                if (vectorx[j] == e)
                {
                    Console::Write("Множество не может содержать одинаковые элементы!\n");
                    i = (i - 1);
                    j = 0;
                    k = 1;
                    break;
                }
                else 
                {
                    if (k == i)
                    {
                        vectorx.push_back(e);
                        k = 1;
                    }
                    else k++;
                }
            }
        }
    }
    return vectorx;
}
 
void output(vector <wstring> vectorx) // Вывод
{
    int i;
    for (i = 0; i < vectorx.size(); i++)
    {
        if (i == (vectorx.size() - 1))
            wcout << vectorx[i];
        else wcout << vectorx[i] << ", ";
    }
    cout << "} \n";
};
 
void bn(int noe, vector <wstring> vectorx)
{
    int nos = pow(2, noe); // Количество подмножеств
    
    for (int i = 0; i < nos; i++) // Перебор битовых масок
    {
        Console::Write("Подмножество {0}: {1}", i + 1, "{");
        for (int j = 0; j < noe; j++) // Перебор битов в маске
            if (i & (1 << j)) // Если j-й бит установлен
                wcout << vectorx[j] << " "; // То выводим j-й элемент множества
        cout << "}\n";
    }
}
 
void main()
{
    vector <wstring> many;
    int noe;
    string num;
 
    Console::Write("Введите количество элементов множества: ");
    cin >> noe;
    many = input(noe, many);
    
    Console::Write("\nИсходное множество: {0}", "{");
    output(many);
 
    Console::Write("\nБулеан: \n\n");
    bn(noe, many);
 
    cout << "\n";
    system("pause");
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru