Cuprins
- 1. ENUNȚUL PROBLEMEI
- 2. FUNDAMENTAREA TEORETICĂ A METODEI DE REZOLVARE
- 3. ALGORITMUL
- 4. MODUL DE FUNCȚIONARE A ALGORITMULUI
- 5. MODEL
- 6. ILUSTRARE REZULTATE ALGORITM
- BIBLIOGRAFIE
Extras din proiect
CERINȚĂ
Determinați formele XNOR ale tuturor funcțiilor F3 și coeficienți XNOR asociați (a0, a1, a2, a3, a4, a5, a6, a7).
FUNDAMENTAREA TEORETICĂ A METODEI DE REZOLVARE
Teoremă: Orice funcție de comutație f(x_1,…,x_n ) se poate exprima într-o formă polinomială bazată pe operatorul XNOR și variabilele complementare astfel: f(x_1,…,x_n )= a_0 - (a_1+ (x_1 ) ̅ ) - (a_2+ (x_2 ) ̅ ) - … - (a_n+ (x_n ) ̅ ) -
- (a_(n+1)+ (x_1 ) ̅+ (x_2 ) ̅ ) - (a_(n+2)+ (x_1 ) ̅+ (x_3 ) ̅ ) - … - (a_(2^n-1)+ (x_1 ) ̅+
+ (x_2 ) ̅+⋯+(x_n ) ̅)
unde: a_i ≡ {0,1},i ∈0,2^n-1 sunt coeficienți binari
Dacă a_i=1 atunci termenul sumă corespunzător este inhibat datorită agresivității lui 1 asupra lui OR ; dacă a_i=0 termenul sumă este reținut în formă polinomială. Fiecare funcție de comutație este caracterizată de mulțimea proprie de coeficienți binari {a_0,a_1,…,a_(2^n-1) } în reprezentarea polinomială.
Pentru un n dat sunt definite 2^(2^n )funcții de comutație diferite. În această expresie există 2^ncoeficienți binari diferiți astfel încât numărul total de combinații este 2^(2^n ).
Dacă n=3 atunci:
f(x_1 x_2 x_3 )=(a_0+0)⊗(a_1+(x_3 ) ̅ ) ⊗(a_2+(x_2 ) ̅ ) ⊗(a_3+ (x_3 ) ̅+ (x_2 ) ̅)⊗(a_4+(x_1 ) ̅ ) ⊗(a_5+ (x_1 ) ̅+ (x_3 ) ̅)⊗(a_6+ (x_1 ) ̅+ (x_2 ) ̅)⊗(a_7+ (x_1 ) ̅+ (x_2 ) ̅+(x_3 ) ̅)
ALGORITMUL
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
void main(void)
{
int ultim,p,i,j,v[8],c,t3[8][8]={0},k,a[8],x;
char b[8][11];
cout<<"Functia NXOR in reprezentarea polinomiala este reprezentata de simbolul ""(*)"".";
cout<<endl;
cout<<"Toti termeni sunt complementati, fiind reprezentati astfel x1,x2,x3."<<endl;
//construirea lui T3
for(i=0;i<=7;i++)
{t3[i][i]=1;
t3[i][0]=1;
t3[7][i]=1;
}
t3[3][1]=1;
t3[3][2]=1;
t3[5][1]=1;
t3[5][4]=1;
t3[6][2]=1;
t3[6][4]=1;
//afisarea lui t3
for(i=0;i<=7;i++)
{
for(j=0;j<=7;j++)
cout<<t3[i][j]<<" ";
cout<<endl;
}
cout<<endl;
for(i=0;i<=255;i++)
{cout<<"f "<<i;
x=i;
j=0;
for(c=0;c<=7;c++)
v[c]=0;
while(x!=0)
{
v[7-j]=x%2;
x=x/2;
j++;
}
//afisarea in baza 2
/* cout<<"vertorul d al functiei "<<i<<" este ";
for(j=0;j<=7;j++)
cout<<v[j]<<" ";
cout<<endl;*/
//complemntrea vectorului
for(j=0;j<=7;j++)
v[j]=1-v[j];
for(j=0;j<=7;j++)
{
p=0;
for(k=0;k<=7;k++)
{ if(v[k]*t3[j][k]==0)
{p++;
}
Preview document
Conținut arhivă zip
- Reprezentarea sub Forma XNOR Polinomiala a Tuturor Functiilor F3
- xnor
- Debug
- .exe
- .ilk
- .obj
- .pch
- .pdb
- vc60.idb
- vc60.pdb
- .cpp
- .dsp
- .dsw
- .ncb
- .opt
- .plg
- Reprezentarea sub Forma XNOR Polinomiala a Tuturor Functiilor F3.docx