//Генерация всех разбиений множества. Шестернин ИВБ-4-12
#include <iostream>
using std::cin;
using std::cout;
//a - исходное множество
//b - разбиение
void PrintPartition(int size, int *a, int* b)
{
//Вычисляем количество подмножеств в данном разбиении
int parts=1;
for(int i=0;i<size;i++)
if(b[i]>parts)
parts=b[i];
//Выводим каждое подмножество
for(int i=0;i<parts;i++)
{
for(int j=0;j<size;j++)
if(b[j]==i+1)
cout << a[j] << ' ';
if(i!=parts-1)
cout << "& ";
}
cout << '\n';
}
//а - исходное множество
//size - размер множества
void CreatePartition(int position, int max, int size, int *a, int *b)
{
//Если достигнут конец массива, то вывести разбиение
if(position>=size)
{
PrintPartition(size,a,b);
return;
}
//Цикл по всем возможным вариантам для данной позиции массива
for(int i=0;i<max;i++)
{
b[position]=i+1;
//Переход к следующему элементу массива при этом, если номер элемента достиг максимума, то максимум щего номера увеличивается на 1
if(i+1==max)
CreatePartition(position+1,max+1,size,a,b);
else
CreatePartition(position+1,max,size,a,b);
}
}
int main()
{
//Ввод размера множества
int n;
cin >> n;
if(n<=0)
return 0;
//Ввод множества
int *A = new int[n];
for(int i=0;i<n;i++)
cin >> A[i];
cout << '\n';
int *B = new int[n];
//Генерация разбиений
//Начальное значение: нулевой элемент массива, максимальный индекс - 1
CreatePartition(0,1,n,A,B);
delete[] A;
delete[] B;
return 0;
}
// Генерация перестановок множества. Шестернин ИВБ-4-12
#include <iostream>
using std::cin;
using std::cout;
//Множество
int* A;
//Размер множества
int size;
//Вывод множества
void Output()
{
for(int i=0;i<size;i++)
cout<<A[i]<<" ";
cout<<"\n";
}
//Функция перемены мест элементов
void Swap(int i,int j)
{
int temp = A[i];
A[i] = A[j];
A[j] = temp;
}
//Функция генерации следующей перестановки
void Create(int k)
{
//Вывод множества
if (k==size)
{
Output();
}
else
{
//Продолжение генерации
for(int j=k;j<size;j++)
{
Swap(k,j);
Create(k+1);
Swap(k,j);
}
}
}
int main()
{
//Ввод размера множества
std::cout<<"Size: ";
std::cin>>size;
//Ввод множества
std::cout<<"Set: ";
A = new int[size];
for(int i = 0;i<size;i++)
cin >> A[i];
Create(0);
delete[] A;
return 0;
}
№3 Добавить сущности (от 1 до 3) к двум заданным в таблице сущностям. Создать ER-модель предметной области. По ER-модели предметной области построить схему реляционной базы данных.
Сущности: Повар, блюда, ресторан, ингредиенты, зарплата
a) b)
c) d)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.