⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 c4_6_2.c

📁 dsp入门与实践一书的源代码
💻 C
字号:
#include"graphics.h"
			#include"math.h"
			#include"stdio.h"
			static int N;
			static float a[2048],b[2048],c[2048];
			char th1[20],th2[20];
			char o;
			       Phuitu()
		    {  int graphdriver=DETECT,graphmode;
		       int i,x,y,j,k1=0,k2=0;
		       long  float am=0,e[2048];
		       char st[20];
		       initgraph(&graphdriver,&graphmode,"");
		       cleardevice();
		       setbkcolor(1);setcolor(3);
		       line(50,400,50,10);line(50,400,610,400);
		       rectangle(5,5,620,440);
		       for(i=0;i<N;i++)
		      { if(a[i]>am) am=a[i];
			if(b[i]>am) am=b[i];
			if(a[i]!=0) k1=1;
			if(b[i]!=0) k2=1; }
		    for(j=0;j<2;j++)
		    {  if(j==0)
			  if(k1==1)
			      {    for(i=0;i<N;i++)
				   e[i]=a[i];
				   goto hui;}
			  else goto endj;
		       if(j==1)
			  if(k2==1)
			       {   for(i=0;i<N;i++)
				   e[i]=b[i];
				   goto hui;}
			  else goto endj;
		hui:   moveto(50,(int)(400-(e[0]/am)*380));
		       setcolor(9+j);
		       for(i=0;i<N;i++)
			{ x=(int)(50+(i*1.0/(N-1))*540.0);
			  y=(int)(400-(e[i]/am)*380);
			  setlinestyle(0,0,1);
			  lineto(x,y);    }
		endj: ;}
			  setcolor(5);
			  for(i=0;i<5;i++)
			 {x=(int)(50+i*540/4);
			  putpixel(x,400,5);}
			  settextstyle(2,0,5);
			  for(i=0;i<=8;i++)
			  {sprintf(st,"%d\n",i*N/8);
			   outtextxy((int)(45+i*540/8.0),405,st);
		line((int)(50+i*540/8.0),400,(int)(50+i*540/8.0),395);}
			  for(i=1;i<=4;i++)
			  {sprintf(st,"%3.2f\n",am*i/4);
			   outtextxy(5,400-380*i/4,st);
			  line(50,400-380*i/4,55,400-380*i/4);}
			  outtextxy((int)(35+540),385,"f");
			  if(k1==1) outtextxy(60,20,th1);
			  if(k2==1) outtextxy(150,20,th2);
			  o=getchar();closegraph();
			  return(0);
		    }
			    Nhuitu()
		       {int graphdriver=DETECT,graphmode;
			int i,x,y,k,j,j1,k1=0,k2=0/*,k3=0,k4=0*/;
			char st[20];
			long float am=0,e[2048];
			initgraph(&graphdriver,&graphmode,"");
			cleardevice();
			setbkcolor(1);setcolor(3);
			line(50,420,50,20);
			line(50,220,620,220);
			rectangle(5,5,640,440);
			for(i=0;i<N;i++)
		       {if(fabs(a[i])>am) am=fabs(a[i]);
			if(fabs(b[i])>am) am=fabs(b[i]);
			if(a[i]!=0) k1=1;
			if(b[i]!=0) k2=1;}
		for(j=0;j<2;j++)
		{   setcolor(j+8);
		 if(j==0)
			if(k1==1)
			   { for(j1=0;j1<N;j1++)
			     e[j1]=a[j1];
			     goto hui;}
		       else goto  endj;
		  if(j==1)
		       if(k2==1)
			   {  for(i=0;i<N;i++)
			      e[i]=b[i];
			      goto hui;}
		       else goto endj;
	 hui:   moveto(50,(int)(220+(e[0]/am)*200));
			setcolor(9+j);
			for(i=0;i<N;i++)
		      { x=(int)(50+(i*1.0/N)*570.0);
			y=(220-(e[i]/am)*200);
			lineto(x,y);}
	      endj:  ;}
			settextstyle(1,0,1);
			setcolor(5);
			for(i=0;i<=8;i++)
			{sprintf(st,"%d\n",(int)(N*i/8.0));
			 outtextxy((int)(45+520*i/8.0),225,st);
		line((int)(50+520*i/8.0),220,(int)(50+520*i/8.0),215);}
			for(i=1;i<=2;i++)
			{sprintf(st,"%3.2f\n",am*i/4.0);
			 outtextxy(5,220-200*i/4,st);
			 sprintf(st,"%3.2f\n",0-am*i/4);
			 outtextxy(5,220+180*i/4,st);
			 line(50,220-200*i/4,55,220-200*i/4);
			 line(50,220+200*i/4,55,220+200*i/4);}
			if(k1==1) outtextxy(80,130,th1);
			if(k2==1) outtextxy(240,130,th2);
			o=getchar();closegraph();
			return(0);
		     }
			void main(void)
		     { int i,k=0,m;
		       float am;
		       FILE *fp1,*fp2,*fp3,*fp4;
		       printf("\nPlease input the data sum N,\n N=");
		       scanf("%d",&N);flushall();
		       printf("\nPlease input the first data name:");
		       scanf("%s",th1);flushall();
		       printf("\nthe second data name:");
		       scanf("%s",th2);flushall();
		       fp1=fopen(th1,"r");
		       fp2=fopen(th2,"r");
		       for(i=0;i<N;i++)
		      { fscanf(fp1," %f\n",&a[i]);
			fscanf(fp2," %f\n",&b[i]);
		/*	fscanf(fp1," %f%f\n",&am,&a[i]);
			fscanf(fp2," %f%f\n",&am,&b[i]);*/
		/*	a[i]=a[i]-6.0;
			b[i]=b[i]-6.0;*/
		      }
		       fclose(fp1);fclose(fp2);
		       for(i=0;i<N;i++)
		       if((a[i]<0)||(b[i]<0)) k=1;
		       if(k==1) Nhuitu();
		       else
		       Phuitu();
			}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -