📄 m-squence.c
字号:
#include "stdio.h"
#include "conio.h"
#include"stdlib.h"
main ()
{
int n;
int f;
int k;
int g;
int l=1;
int i;
int y;
int h;
int b,t=0;
int r=0,r1=0;
int k1=0,k2=0;
int R[17];
int A[200000];
printf ("******************************************************************\n") ;
printf ("| 文件名: M_squence\n") ;
printf ("| 描 述: M序列(单片机的软件补助)的软件实现及游程计算\n") ;
printf ("| 作 者: 覃 光\n") ;
printf ("| 日 期: 4/12/2007\n") ;
printf ("| 注意事项:\n") ;
printf ("| 本程序输入M序列级数k的范围为 [4,17] ^ ^\n") ;
printf ("| M序列的初值为二进制,即0,1,每输入一个数按空格或回车 ^ ^\n") ;
printf ("| Copyright(C)By qgsky \n") ;
printf ("| All right reserved\n") ;
printf ("*******************************************************************\n") ;
printf("\n");
printf("| 继续----请输入 1,退出----请输入 2\n");
goto next;
chan:
printf ("无此选项,请重新选择") ;
printf("\n");
next:
scanf (" %2d",&k) ;
if(k==2)
{
exit(0);
}
if(k==1) printf ("") ;
else goto chan;
printf ("请输入M序列的级数 k(4~17):") ;
lp:
scanf (" %2d",&k) ;
if((k<4)||(k>17))
{
printf ("输入出错,请重新输入k: ") ;
goto lp;
}
printf ("请输入%d个序列初始值: ",k) ;
printf("\n");
for(i=k-1;i>=0;i--)
{
scanf (" %2d",&R[i]) ;
if(R[i]>1)
{
printf ("输入出错,请重新输入R[%d]: ",i) ;
i++;
}
}
printf ("你输入的初值为") ;
for(i=k-1;i>=0;i--)
{
printf ("%2d",R[i]) ;
}
printf("\n");
printf ("请输入输出序列的周期数 : ");
scanf (" %2d",&y) ;
for(i=0;i<k;i++)
{
l=l*2;
}
l=l;
n = y*l;
b=n;
printf ("输出%d级M序列的周期为 l=%2d \n",k,l);
printf ("输出序列0,1的总个数为 n=%2d \n",n);
while (n)
{
g=0;
f = R[0] ^ R[1];
for(h=k-1;h>0;h--)
if(!R[h])
continue;
else break;
if(h == 0)
f=~f;
if(f<0)
f=1;
A[n]=R[0];
if(n-1)
{
t=R[0]+R[1];
if(t==0)
{
r++;
if(n==k1)
{
r--;
}
k1=n-1;
}
if(t==2)
{
r1++;
if(n==k2)
{
r1--;
}
k2=n-1;
}
}
for(i=0;i<k-1;i++)
{
R[i] = R[i+1];
}
R[k-1] = f;
n--;
}
printf ("单个周期序列0的游程数目r1=%d",r);
printf("\n");
printf ("单个周期序列1的游程数目r2=%d ",r1);
printf("\n");
g=r1+r;
printf ("输出序列的总游程数目g=%d ",y*g);
printf("\n");
printf ("以下是%d个周期的%d级M序列",y,k);
printf("\n");
printf ("M序列: ");
for(g=1;g<=b;g++)
{
printf ("%d", A[g]);
}
printf("\n");
printf("\n");
printf ("最后感谢您的使用!请按任意键退出");
printf("\n");
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -