Blog literacki, portal erotyczny - seks i humor nie z tej ziemi


#include
#include
#include
#include

const int H=4,S=10,Y=6;
int h[4],s[10],s1[10],so[10],y[6],z[10];

/*maciez generujaca*/
const int G[4][10]={
{1,0,0,0,1,1,0,0,0,1},
{0,1,0,0,1,0,1,0,0,1},
{0,0,1,0,1,0,0,1,0,1},
{0,0,0,1,1,0,0,0,1,1}};

/*maciez kontrolna transponowana*/
const int HT[10][6]={
{1,1,0,0,0,1},
{1,0,1,0,0,1},
{1,0,0,1,0,1},
{1,0,0,0,1,1},
{1,0,0,0,0,0},
{0,1,0,0,0,0},
{0,0,1,0,0,0},
{0,0,0,1,0,0},
{0,0,0,0,1,0},
{0,0,0,0,0,1}};

char menu(void)
{
char z;
clrscr();
printf("\n\tDekoder dla kodu (%2d,%2d)\n\tEnter koder\
\n\tEsc koniec",S,H);
z=getche();
return(z);
}

void zeruj(int *string,int lenght)
{
int i;
for(i=0;i string[i]=0; /* ciagu */
}

/*pobieranie ciagu z klawiatury z echem na ekranie w okr. pozycji*/

void pobierz(int lenght,int *string,int posx,int posy)
{
int i;
for(i=0;i {
fflush(stdin);
string[i]=getch()-'0';
if((string[i]==1)||(string[i]==0))
{
gotoxy(posx+i,posy);
printf("%d",string[i]);
i++;
}
}
}

/* wypisywanie ciagu na ekranie w okr. pozycji*/

void wypisz(int *string,int lenght,int x,int y)
{
int i;
for(i=0;i {
gotoxy(x+i,y);
printf("%d",string[i]);
}
}

void koder(void) /*kodowanie ciagu informacyjnego h -> s */
{
int i,j;
clrscr();
printf("\n podaj ciag informacyjny %2d znakow ",H);
gotoxy(10,4);
printf("ciag informacyjny");
pobierz(H,h,10,5);
zeruj(s,S);
for(j=0;j {
for(i=0;i {
s[j]+=h[i]*G[i][j];
}
s[j]%=2;
}
gotoxy(10,6);
printf("ciag kodowy");
wypisz(s,S,10,7);
gotoxy(10,8);
printf("podaj maciez bledu %2d znakow",S);
zeruj(z,S);
pobierz(S,z,10,9);
for(i=0;i s1[i]=(s[i]+z[i])%2;
gotoxy(10,10);
printf("ciag odebrany");
wypisz(s1,S,10,11);
}

int test(void) /*waga syndromu */
{
int i,wynik=0;
for(i=0;i<6;i++)
{
wynik+=y[i];
}
return(wynik);
}

void przes_l(void)
{
int j,pom;
pom=so[0];
for(j=0;j {
so[j]=so[j+1];
}
so[S-1]=pom;
}

void przes_p(void)
{
int j,pom;
pom=s1[9];
for(j=9;j>0;j--)
{
s1[j]=s1[j-1];
}
s1[0]=pom;
}

void dekoder(void) /* dekoduje ciag kodowy*/
{
int i,j,x,k=0,e=0,d=0;
gotoxy(10,12);
zeruj(so,S);
do
{
zeruj(y,Y);
for(j=0;j<6;j++)
{
for(i=0;i<10;i++)
{
y[j]+=s1[i]*HT[i][j];
}
y[j]%=2;
}
x=test();

switch(x) /* 1 */
{
case 0:
{
for(i=0;i<10;i++)
{
so[i]=s1[i];
so[i]%=2;
}
break;
}
case 1:
{
for(i=0;i<10;i++)
{
if(i<4)
so[i]=s1[i];
else
so[i]=s1[i]+y[i-4];
so[i]%=2;
}
break;
}
default:
{
zeruj(y,Y);
przes_p();
e++;
break;
}
}

}
while((x!=1)&&(x!=0)&&(e<11));
if((e!=0)&&(e<10))
{
for(i=0;i {
przes_l();
}
printf("ciag odebrany skorygowany");
}
if(e==0)
{
printf("ciag odebrany skorygowany");
}
if(e==11)
{
for(i=0;i<10;i++)
{
d+=z[i];
}
printf("zdolno˜† korekcyjna przekroczona,wykryto bˆ©d¢w %d\n",d);
printf("\t ci¡g bˆ©dnie skorygowany");
for(i=0;i<10;i++)
{
if(i<4)
so[i]=s1[i];
else
so[i]=s1[i]+y[i-4];
so[i]%=2;
}
}
wypisz(so,S,10,14+k);

getch();
}

void main(void)
{
char z;
do
{
switch(z=menu())
{
case 13:{koder();dekoder();}break;
case 27:break;
default: break;
}
}
while(z!=27);
}
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • qualintaka.pev.pl
  •