马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
最近我们数字信号处理实验用了TC编程软件编程,但是不是这个版本。我把之前实验中的代码输进去但是编译有好多基本语法有问题无法通过编译。
我想请问是版本问题,还是我软件根本下错了呢?代码附下:
#include"stdarg.h" #include"graphics.h" #include"math.h" #include"stdio.h" void conv(float x[],int M,float h[],intN,float y[]); void figure(float x[],int m,float y[],intn,float z[],int o,char p); main() { int M,N,n;float a;float A,q,w0,T;char c; float y[81]={0}; float x1[32]={0}; float x2[32]={0}; float x3[32]={0}; float xa[50]={0}; for(n=0;n<32;n++) {x1[n]=n;} for(n=0;n<32;n++) {x3[n]=1;} printf("please select x1(z),x2(y),xa(x):\n"); c=getch(); if(c=='z') { printf("signal x1,x2,y1(n):\n"); clrscr(); conv(x1,32,x3,32,y); figure(x1,32,x3,32,y,63,c); getch(); } if(c=='y') { printf("signal x2:\n"); loop: printf("please input a(0<a<1):\n");scanf("%f",&a); if(a<=0) goto loop; if(a>=1) goto loop; for(n=0;n<32;n++) { x2[n]=pow(a,n);} clrscr(); conv(x2,32,x3,32,y); figure(x2,32,x3,32,y,63,c); getch(); } } void conv(float x[],int M,float h[],int N,float y[]) { int n,m; double w=0; for(n=0;n<M+N-1;n++) {w=0; for(m=0;m<M;m++) {if(((n-m)>=0)&&((n-m)<N)) /*m<=n<N+m*/ {w+=x[m]*h[n-m];} } y[n]=w; } } void figure(float x[],int m,float y[],int n,float z[],int o,char p) { int gdriver,gmode,i; float mul[3]={0,0,0}; gdriver=VGA; gmode=VGAHI; initgraph(&gdriver,&gmode," "); line(5,120,315,120); line(5,5,5,235); line(325,120,635,120); line(325,5,325,235); line(165,360,475,360); line(165,245,165,475); for(i=0;i<m;i++) { if(x>mul[0]) {mul[0]=x;} } for(i=0;i<m;i++) { if(y>mul[1]) {mul[1]=x;} } for(i=0;i<m;i++) { if(y>mul[2]) {mul[2]=x;} } mul[0]=mul[0]/120; mul[1]=mul[1]/120; mul[2]=mul[2]/120; for(i=0;i<m;i++) {setcolor(2); line(310/m*i+5,120-x/(mul[0]),310/m*i+5,120); } for(i=0;i<n;i++) {setcolor(2); line(310/n*i+325,120-y/(mul[1]),310/n*i+325,120); } if(p=='z'){ for(i=0;i<o;i++) {setcolor(2); line(310/o*i+165,360-z/(mul[2]+5),310/o*i+165,360); } } else { for(i=0;i<o;i++) {setcolor(2); line(310/o*i+165,360-z/(mul[2]+0.03),310/o*i+165,360); } } }
|