Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab / DM / classPost

.cpp
Скачиваний:
11
Добавлен:
20.03.2016
Размер:
3 Кб
Скачать
#include <iostream>

int M(int a[]);
int L(int a[]);
int S(int a[]);
int fix(int x);

using namespace std;

int main()
{
    int n;
    cout << "Vvedite kolichestvo funkciy = ";
    cin >> n;
    if((n>5)||(n<1))
        return -1;
    int k=8, POST[n][5]; int f[n][8];
    for(int i=0;i<n;i++)
        for(int j=0;j<5;j++)
            POST[i][j]=0;

    for(int i=0;i<n;i++)
    {
          cout << endl << "Vvedite funkciu № " << i+1 << endl;
          for(int j=0;j<k;j++)
            cin>>f[i][j];
    }
    for(int i=0;i<n;i++)
        if(f[i][0]==0)
            POST[i][0] = 1;

    for(int i=0;i<n;i++)
        if(f[i][k-1]==1)
            POST[i][1]=1;

    for(int i=0;i<n;i++)
    {
        POST[i][2] = S(f[i]);
        POST[i][3] = M(f[i]);
        POST[i][4] = L(f[i]);
    }

    cout << "T0 T1 S M L" << endl;
    for(int i=0;i<n;i++)
        {
            for(int j=0;j<5;j++)
                cout << POST[i][j] << "  ";
                cout << endl;
        }

    int t0=0, t1=0, s=0, m=0, l=0;
    for(int i=0;i<n;i++)
    {
        if(POST[i][0]==1)
            t0++;
        if(POST[i][1]==1)
            t1++;
        if(POST[i][2]==1)
            s++;
        if(POST[i][3]==1)
            m++;
        if(POST[i][4]==1)
            l++;
    }

    if((s==n)||(m==n)||(l==n))
    {
        cout << "Ne funkcionalno-polnaya";
        return 0;
    }
    if((t0==n)||(t1==n))
       {
        cout<< "Oslablenno-plnaya";
        return 0;
       }
    cout << "Funkcionalno-polnayaя";
    return 0;
}

int S(int a[])
{
    int b[8];
    int i;
    for(i=0;i<8;i++)
    {
        if(a[i]==0)
        b[8-1-i] = 1;
        else if(a[i]==1)
        b[8-1-i] = 0;
    }

    int k=0;
    for(i=0;i<8;i++)
    {
         if(b[i]==a[i])
                k=k+1;
    }
    if(k==8)
        return 1;
    else return 0;
}

int M(int a[])
{
    int i;
    int x1[8],x2[8],x3[8];

    for(i=0;i<8;i++)
        {
		x1[i]=x2[i]=x3[i]=0;
		if(i%2==1)
			x3[i]=1;
		if((i==2)||(i==3)||(i==6)||(i==7))
			x2[i] = 1;
		if(i>3)
            x1[i] = 1;
        }

    for(i=0;i<8;i++)
    {
        if(a[0]>a[i])
            return 0;
        if((x3[i]==1)&&(a[1]>a[i]))
                return 0;
        if((x2[i]==1)&&(a[2]>a[i]))
            return 0;
        if((x1[i]==1)&&(a[4]>a[i]))
            return 0;
    }
 return 1;
}
int L(int a[])
{
    int b[9];
    b[0] = a[0];//a0
    b[1] = b[0]^a[4];//a1
    b[2] = b[0]^a[2];//a2
    b[3] = b[0]^a[1];//a3
    b[4] = b[0]^b[2]^b[3]^a[3];//a23
        if(b[4]!= 0)
            return 0;
    b[5] = b[0]^b[1]^b[3]^a[5];//a13
        if(b[5]!=0)
            return 0;
    b[6] = b[0]^b[1]^b[2]^a[6];//a12
        if(b[6]!=0)
           return 0;
    b[7] = b[0]^b[1]^b[2]^b[3]^b[4]^b[5]^b[6]^a[7];//a123
        if(b[7]!=0)
            return 0;
            cout<<endl;
 return 1;
}



Соседние файлы в папке DM