信息工程实验报告1.docx
《信息工程实验报告1.docx》由会员分享,可在线阅读,更多相关《信息工程实验报告1.docx(25页珍藏版)》请在冰豆网上搜索。
![信息工程实验报告1.docx](https://file1.bdocx.com/fileroot1/2023-5/15/af982da1-44b4-4cb5-855f-52f408d96a4d/af982da1-44b4-4cb5-855f-52f408d96a4d1.gif)
信息工程实验报告1
版权声明
本文内的全部内容均由本人编写,可以用来参考学习,但不可用来进行商业活动。
一切代码解释权均归作者扎楠所有。
所有题目以实验指导书为准。
之所以制作这个word只是为了给将来和即将面对席大林老师以及他的课程的同学一些程序上的参考,避免走弯路,花更多的时间在缤纷多彩的大学生活中,不要纠结于这些琐事。
信息工程实验例程
指导教师:
席大林
实验1
doublestep(doublet)
{return(t>=0)?
1:
0;}
doublexiebian(doublet)
{return(t>=0)?
t:
0;}
doublesquarewave(doublet,doubleT[2])
{doublea;
if(T[0]<=0||T[1]<=0)
{printf("squareWave()inputerror\n");exit
(1);}
a=fmod(t,T[0]);
if(a>0)return(a<=T[1])?
1.0:
0.0;
elsereturn(a>(-T[0]+T[1]))?
0.0:
1.0;}
doubletrianglewave(doublet,doubleT[1])
{doublea;
if(T[0]<=0)
{printf("triangleWave()inputerror\n");exit
(1);}
a=fmod(t,T[0]);
if(a>0)return(a/T[0]);
elsereturn(1+a/T[0]);}
doublehfunc(doublea,double*b)
{doublefz,fm;
fz=a*a+b[0]*b[0];
fm=((a-1)*(a-1)+b[0]*b[0])*((a-3)*(a-3)+b[0]*b[0]);
if(fm==0.0)returnMAXDOUBLE;
if(fm<1.0)returnsqrt(fz/fm);
elsereturnsqrt(fz*fm)/fm;}
doublesinc(doublea,double*b)
{doublefz,fm;
fz=sin(0.5*a)*cos(a*b[0]);
fm=0.5*a;
if(fm==0.0)returnMAXDOUBLE;
elsereturn(fz/fm);}
实验2
/*#include*/
#include
#include"c:
\xxgc\zn.c"
main()
{initgd("");
{setbkcolor(WHITE);
setvp2(0,0,500,400,"2dimensionfigure","typeanykeytonext",BLUE);
coord2(-10.0,2.0,10.0,-2.0);
frame2("x","y",LIGHTRED);
xy2(RED);
plotxy2(BLUE,xiebian);getch();}
clearviewport();xy2(RED);
{doubleT[2]={4,3};plotxy2(BLUE,trianglewave,T);getch();}
setvp3(0,0,400,"3dimensionfigure","typeanykeyexit",BLUE);
coord3(-1,-1,0,8,7,5);
frame3("t","w","f(a,)",RED);
xyz3(GREEN);
plotxyz3(BLUE,sinc);getch();
closegraph();
}
实验3
1)
#include
doublea[20],b[20],c[20],d[20],T=3.1415925;inti,N=4;
doublelsinl(doublet)
{
if(sin(t)>=0)returnsin(t);
elsereturn-1*sin(t);
}
doubleWC1(doublet,double*T,doublea[],doubleb[],int*N)
{returnlsinl(t)-FouSer(t,T,a,b,N);}
doubleWC2(doublet,double*T,doublec[],int*N)
{returnlsinl(t)-WalSer(t,T,c,N);}
main()
{
for(i=0;i{a[i]=fcosCoef(i,T,lsinl);
b[i]=fsinCoef(i,T,lsinl);
c[i]=WalCoef(i,T,lsinl);
}
initgd("");
window2("hecheng",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,FouSer,&T,a,b,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,lsinl);getch();
clearviewport();xy2(BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WalSer,&T,c,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,lsinl);getch();
clearviewport();
window2("WC1",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC1,&T,a,b,&N);getch();
clearviewport();
window2("WC2",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC2,&T,c,&N);getch();
closegraph();
}
2)
#include
doublea[20],b[20],c[20],d[20],T=4;inti,N=20;
doubletrianglewave(doublet)
{doublea;
a=fmod(t,1);
if(a>0)return(a/1);
elsereturn(1+a/1);}
doubleWC1(doublet,double*T,doublea[],doubleb[],int*N)
{returntrianglewave(t)-FouSer(t,T,a,b,N);}
doubleWC2(doublet,double*T,doublec[],int*N)
{returntrianglewave(t)-WalSer(t,T,c,N);}
main()
{
for(i=0;i{a[i]=fcosCoef(i,T,trianglewave);
b[i]=fsinCoef(i,T,trianglewave);
c[i]=WalCoef(i,T,trianglewave);}
initgd("");
window2("hecheng",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,FouSer,&T,a,b,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,trianglewave);getch();
clearviewport();xy2(BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WalSer,&T,c,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,trianglewave);getch();
clearviewport();
window2("WC1",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC1,&T,a,b,&N);getch();
clearviewport();
window2("WC2",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC2,&T,c,&N);getch();
closegraph();
}
3)
#include
doublea[20],b[20],c[20],d[20],Z=3;inti,N=5;
doublesquarewave(doublet)
{doublea;
a=fmod(t,3);
if(a>0)return(a<=1)?
1.0:
0.0;
elsereturn(a>(-3+1))?
0.0:
1.0;}
doubleWC1(doublet,double*Z,doublea[],doubleb[],int*N)
{returnsquarewave(t)-FouSer(t,Z,a,b,N);}
doubleWC2(doublet,double*Z,doublec[],int*N)
{returnsquarewave(t)-WalSer(t,Z,c,N);}
main()
{
for(i=0;i{a[i]=fcosCoef(i,Z,squarewave);
b[i]=fsinCoef(i,Z,squarewave);
c[i]=WalCoef(i,Z,squarewave);}
initgd("");
window2("hecheng",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,FouSer,&Z,a,b,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,squarewave);getch();
clearviewport();xy2(BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WalSer,&Z,c,&N);
setlinestyle(SOLID_LINE,0,NORM_WIDTH);
plotxy2(LIGHTRED,squarewave);getch();
clearviewport();
window2("WC1",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC1,&Z,a,b,&N);getch();
clearviewport();
window2("WC2",
-5,3,5,-3,
"x","y",BLUE,BLUE);
setlinestyle(SOLID_LINE,0,THICK_WIDTH);
plotxy2(BLUE,WC2,&Z,c,&N);getch();
closegraph();
}
实验4
1)
#include
doubletrianglewave(doublet)
{doubleu;
if(t<0)t=-1*t;
u=fmod(t,4);
if(u<1)returnu;
elsereturn4/3-u/3;}
main()
{doublea[20],b[20],c[20],A,B,x,T=4;
inti,N=20;
for(i=0;i<20;i++)
{a[i]=fcosCoef(i,T,trianglewave);
b[i]=fsinCoef(i,T,trianglewave);
c[i]=WalCoef(i,T,trianglewave);}
A=a[3];B=b[3];
initgd("");
window2("distortionanalyse(=-ESC)",
-5,3,5,-3,
"t","f",BLUE,WHITE);
/*fudushizhen:
(x+1)Acoswt+(x+1)Bsinwt
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,4,20);)
{a[3]=A*(x+1);b[3]=B*(x+1);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*xiangweishizhen:
Acos(wt+x)+Bsin(wt+x)
=Acoswtcosx-Asinwtsinx+Bsinwtcosx+Bcoswtsinx
=(Acosx+Bsinx)coswt+(Bcosx-Asinx)sinwt
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,3.14,20);)
{a[3]=A*cos(x)+B*sin(x);
b[3]=B*cos(x)-A*sin(x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
a[3]=A;b[3]=B;
/*"feixianxingshizhen",
zhengjiaxingdepinlvfenliang**/
for(x=5,instKeyCtr();keyCtr(&x,5,10,5);)
{N=(int)x;
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&xiangweishizhen",
A(1+x)cos(wt+x)+B(1+x)sin(wt+x)
=(1+x)[Acoswtcosx-Asinwtsinx+Bsinwtcosx+Bcoswtsinx]
=(1+x)[(Acosx+Bsinx)coswt+(Bcosx-Asinx)sinwt]
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,3.14,20);)
{a[3]=(A*cos(x)+B*sin(x))*(1+x);
b[3]=(B*cos(x)-A*sin(x))*(1+x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&pinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=A*(x+1);b[3]=B*(x+1);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"xiangweipinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=A*cos(x)+B*sin(x);
b[3]=B*cos(x)-A*sin(x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&xiangwei&pinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=(A*cos(x)+B*sin(x))*(1+x);
b[3]=(B*cos(x)-A*sin(x))*(1+x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
closegraph();
}
2)
#include
doublesquarewave(doublet)
{doublea;
a=fmod(t,3);
if(a>0)return(a<=1)?
1.0:
0.0;
elsereturn(a>(-3+1))?
0.0:
1.0;}
main()
{doublea[20],b[20],c[20],A,B,x,T=4;
inti,N=5;
for(i=0;i<20;i++)
{a[i]=fcosCoef(i,T,squarewave);
b[i]=fsinCoef(i,T,squarewave);
c[i]=WalCoef(i,T,squarewave);}
A=a[3];B=b[3];
initgd("");
window2("distortionanalyse(=-ESC)",
-5,3,5,-3,
"t","f",BLUE,WHITE);
/*:
(x+1)Acoswt+(x+1)Bsinwt
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,4,20);)
{a[3]=A*(x+1);b[3]=B*(x+1);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*:
Acos(wt+x)+Bsin(wt+x)
=Acoswtcosx-Asinwtsinx+Bsinwtcosx+Bcoswtsinx
=(Acosx+Bsinx)coswt+(Bcosx-Asinx)sinwt
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,3.14,20);)
{a[3]=A*cos(x)+B*sin(x);
b[3]=B*cos(x)-A*sin(x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
a[3]=A;b[3]=B;
/*"feixianxingshizhen",
zhengjiaxingdepinlvfenliang**/
for(x=5,instKeyCtr();keyCtr(&x,5,10,5);)
{N=(int)x;
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&xiangweishizhen",
A(1+x)cos(wt+x)+B(1+x)sin(wt+x)
=(1+x)[Acoswtcosx-Asinwtsinx+Bsinwtcosx+Bcoswtsinx]
=(1+x)[(Acosx+Bsinx)coswt+(Bcosx-Asinx)sinwt]
=a[3]coswt+b[3]sinwt*/
for(x=0,instKeyCtr();keyCtr(&x,0,3.14,20);)
{a[3]=(A*cos(x)+B*sin(x))*(1+x);
b[3]=(B*cos(x)-A*sin(x))*(1+x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&pinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=A*(x+1);b[3]=B*(x+1);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"xiangweipinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=A*cos(x)+B*sin(x);
b[3]=B*cos(x)-A*sin(x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
/*"fudu&xiangwei&pinlvshizhen"*/
a[3]=A;b[3]=B;
for(x=10,instKeyCtr();keyCtr(&x,10,20,10);)
{N=(int)x;
a[3]=(A*cos(x)+B*sin(x))*(1+x);
b[3]=(B*cos(x)-A*sin(x))*(1+x);
/*clearviewport();*/
plotxy2(BLUE,FouSer,&T,a,b,&N);}
closegraph();
}
3)
#include
doubletrianglewave(doublet)
{doubleu;
if(t<0)t=-1*t;
u=fmod(t,4);
if(u<1)returnu;
elsereturn4/3-u/3;}
doublesquarewave(doublet)
{doublea;
a=fmod(t,3);
if(a>0)return(a<=1)?
1.0:
0.0;
elsereturn(a>(-3+1))?
0.0:
1.0;}
doublezuhe(doublet)
{
return2*trianglewave(t)+squarewave(t);
}
main()
{doublea[20],b[20],c[20],A,B,x,T=3;
inti,N=5;
for(i=0;i<20;i++)
{a[i]=fcosCoef(i,T,zuhe);
b[i]=fsinCoef(i,T,zuhe);
c[i]=WalCoef(i,T,zuhe);}
A=a[3];B