文档库 最新最全的文档下载
当前位置:文档库 › 第5章例题源程序

第5章例题源程序

第5章例题源程序
第5章例题源程序

例5.1 在0≤X ≤2π区间内,绘制曲线y=2e

-0.5x sin(2πx)。

x=0:pi/100:2*pi;

y=2*exp(-0.5*x).*sin(2*pi*x);

plot(x,y) 例5.2 绘制曲线

ππ≤≤-?

??==t sin 3cos 2,t t y t t x t=-pi:pi/100:pi;

x=t.*cos(3*t);

y=t.*sin(t).*sin(t);

plot(x,y);

例5.3 用不同线型和颜色在同一坐标内绘制曲线y=2e -0.5x sin(2πx)及其包络线。

x=(0:pi/100:2*pi)';

y1=2*exp(-0.5*x)*[1,-1];

y2=2*exp(-0.5*x).*sin(2*pi*x);

x1=(0:12)/2;

y3=2*exp(-0.5*x1).*sin(2*pi*x1);

plot(x,y1,'k:',x,y2,'b--',x1,y3,'rp');

例5.4 用不同标度在同一坐标内绘制曲线y1=e -0.5x sin(2πx)及曲线y2=1.5e -0.1x sin(x)。

x1=0:pi/100:2*pi;

x2=0:pi/100:3*pi;

y1=exp(-0.5*x1).*sin(2*pi*x1);

y2=1.5*exp(-0.1*x2).*sin(x2);

plotyy(x1,y1,x2,y2);

例5.5 绘制分段函数曲线并添加图形标注。

??

?

????≥<≤-<≤<≤=81862/564240)(x x x x x x x f ,,,, x=linspace(0,10,100);

y=[];

for x0=x

if x0>=8

y=[y,1];

elseif x0>=6

y=[y,5-x0/2];

elseif x0>=4

y=[y,2];

elseif x0>=0

y=[y,sqrt(x0)];

end

end

plot(x,y)

axis([0 10 0 2.5]) %设置坐标轴

title('分段函数曲线'); %加图形标题

xlabel('Variable X'); %加X轴说明

ylabel('Variable Y'); %加Y轴说明

text(2,1.3,'y=x^{1/2}'); %在指定位置添加图形说明

text(4.5,1.9,'y=2');

text(7.3,1.5,'y=5-x/2');

text(8.5,0.9,'y=1');

例5.6 用图形保持功能在同一坐标内绘制曲线y=2e-0.5x sin(2πx)及其包络线。

x=(0:pi/100:2*pi)';

y1=2*exp(-0.5*x)*[1,-1];

y2=2*exp(-0.5*x).*sin(2*pi*x);

plot(x,y1,'b:');

axis([0,2*pi,-2,2]); %设置坐标

hold on; %设置图形保持状态

plot(x,y2,'k');

legend('包络线','包络线','曲线y'); %加图例

hold off; %关闭图形保持

grid %网格线控制

例5.7在一个图形窗口中以子图形式同时绘制正弦、余弦、正切、余切曲线。

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

t=sin(x)./(cos(x)+eps);

ct=cos(x)./(sin(x)+eps);

subplot(2,2,1);

plot(x,y);

title('sin(x)');axis([0,2*pi,-1,1]);

subplot(2,2,2);

plot(x,z);

title('cos(x)');axis([0,2*pi,-1,1]);

subplot(2,2,3);

plot(x,t);

title('tangent(x)');axis([0,2*pi,-40,40]);

subplot(2,2,4);

plot(x,ct);

title('cotangent(x)');axis([0,2*pi,-40,40]);

请看下面的程序。

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

t=sin(x)./(cos(x)+eps);

ct=cos(x)./(sin(x)+eps);

subplot(2,2,1); %选择2×2个区中的1号区

2

stairs(x,y);title('sin(x)-1');axis ([0,2*pi,-1,1]);

subplot(2,1,2); %选择2×1个区中的2号区

stem(x,y);title('sin(x)-2');axis ([0,2*pi,-1,1]);

subplot(4,4,3); %选择4×4个区中的3号区

plot(x,y);title('sin(x)');axis ([0,2*pi,-1,1]);

subplot(4,4,4); %选择4×4个区中的4号区

plot(x,z);title('cos(x)');axis ([0,2*pi,-1,1]);

subplot(4,4,7); %选择4×4个区中的7号区

plot(x,t);title('tangent(x)');axis ([0,2*pi,-40,40]);

subplot(4,4,8); %选择4×4个区中的8号区

plot(x,ct);title('cotangent(x)');axis ([0,2*pi,-40,40]); 例5.8分别以条形图、填充图、阶梯图和杆图形式绘制曲线y=2e-0.5x。

x=0:0.35:7;

y=2*exp(-0.5*x);

subplot(2,2,1);bar(x,y,'g');

title('bar(x,y,''g'')');axis([0,7,0,2]);

subplot(2,2,2);fill(x,y,'r');

title('fill(x,y,''r'')');axis([0,7,0,2]);

subplot(2,2,3);stairs(x,y,'b');

title('stairs(x,y,''b'')');axis([0,7,0,2]);

subplot(2,2,4);stem(x,y,'k');

title('stem(x,y,''k'')');axis([0,7,0,2]);

例5.9 绘制ρ=sin(2θ)cos(2θ)的极坐标图。

theta=0:0.01:2*pi;

rho=sin(2*theta).*cos(2*theta);

polar(theta,rho,'k');

例5.10绘制y=10x2的对数坐标图并与直角线性坐标图进行比较。

x=0:0.1:10;

y=10*x.*x;

subplot(2,2,1);

plot(x,y);

title('plot(x,y)');grid on;

subplot(2,2,2);

semilogx(x,y);

title('semilogx(x,y)');grid on;

subplot(2,2,3);

semilogy(x,y);

title('semilogy(x,y)');grid on;

subplot(2,2,4);

loglog(x,y);

title('loglog(x,y)');grid on;

例5.11用fplot函数绘制f(x)=cos(tan(πx))的曲线。

先建立函数文件myf.m:

function y=myf(x)

y=cos(tan(pi*x));

3

4

再用fplot 函数绘制myf.m 函数的曲线:

fplot('myf',[-0.4,1.4],1e-4)

得到如图5.12所示曲线。从图5.12中可看出,在x=0.5附近采样点十分密集。

也可以直接用fplot 函数绘制f(x)=cos(tan(πx))的曲线:

fplot('cos(tan(pi*x))',[ -0.4,1.4],1e-4)

例5.12 绘制图形:

(1)某次考试优秀、良好、中等、及格、不及格的人数分别为:7,17,23,19,5,试用饼图作成绩统计分析。

(2)绘制复数的相量图:3+2i 、5.5-i 和-1.5+5i 。

subplot(1,2,1);

pie([7,17,23,19,5]);

title('饼图');legend('优秀','良好','中等','及格','不及格');

subplot(1,2,2);

compass([3+2i,5.5-i,-1.5+5i]);title('相量图');

例5.13 绘制空间曲线:

222640

x y z y z ?++=?+=? t=0:pi/50:2*pi;

x=8*cos(t);

y=4*sqrt(2)*sin(t);

z=-4*sqrt(2)*sin(t);

plot3(x,y,z,'p');

title('Line in 3-D Space');

text(0,0,0,'origin');

xlabel('X'),ylabel('Y'),zlabel('Z');grid;

例5.14 已知6

x=7:29;

y=16:35;

[x,y]=meshgrid(x,y); %在[7,29]×[16,35]区域生成网格坐标

z=2*x+5*y;

k=find(z==126); %找出解的位置

x(k)',y(k)' %输出对应位置的x,y 即方程的解

例5.15 用三维曲面图表现函数z=sin(y)cos(x)。

程序1:

x=0:0.1:2*pi;

[x,y]=meshgrid(x);

z=sin(y).*cos(x);

mesh(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

title('mesh');

程序2:

x=0:0.1:2*pi;

[x,y]=meshgrid(x);

z=sin(y).*cos(x);

surf(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

title('surf');

程序3:

x=0:0.1:2*pi;

[x,y]=meshgrid(x);

z=sin(y).*cos(x);

plot3(x,y,z);

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

title('plot3-1');grid;

例5.16 绘制两个直径相等的圆管的相交图形。

%两个等直径圆管的交线

m=30;

z=1.2*(0:m)/m;

r=ones(size(z));

theta=(0:m)/m*2*pi;

x1=r'*cos(theta);y1=r'*sin(theta); %生成第一个圆管的坐标矩阵z1=z'*ones(1,m+1);

x=(-m:2:m)/m;

x2=x'*ones(1,m+1);y2=r'*cos(theta); %生成第二个圆管的坐标矩阵z2=r'*sin(theta);

surf(x1,y1,z1); %绘制竖立的圆管

axis equal,axis off

hold on

surf(x2,y2,z2); %绘制平放的圆管

axis equal,axis off

title('两个等直径圆管的交线');

hold off

例5.17分析由函数z=x2-2y2构成的曲面形状及与平面z=a的交线。

5

[x,y]=meshgrid(-10:0.2:10);

z1=(x.^2-2*y.^2)+eps; %第1个曲面

a=input('a=?');

z2=a*ones(size(x)); %第2个曲面

subplot(1,2,1);

mesh(x,y,z1);hold on;mesh(x,y,z2); %分别画出两个曲面

v=[-10,10,-10,10,-100,100];axis(v);grid; %第1子图的坐标设置

hold off;

r0=abs(z1-z2)<=1; %求两曲面z坐标差小于1的点

xx=r0.*x; yy=r0.*y; zz=r0.*z2; %求这些点上的x,y,z坐标,即交线坐标subplot(1,2,2);

plot3(xx(r0~=0),yy(r0~=0),zz(r0~=0),'*'); %在第2子图画出交线axis(v);grid; %第2子图的坐标设置

例5.18在xy平面内选择区域[-8,8]×[-8,8],绘制函数

2 22

2 sin

y

x y

x z

++

=

的4种三维曲面图。

[x,y]=meshgrid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

subplot(2,2,1);

meshc(x,y,z);

title('meshc(x,y,z)')

subplot(2,2,2);

meshz(x,y,z);

title('meshz(x,y,z)')

subplot(2,2,3);

surfc(x,y,z)

title('surfc(x,y,z)')

subplot(2,2,4);

surfl(x,y,z)

title('surfl(x,y,z)')

例5.19绘制标准三维曲面图形。

t=0:pi/20:2*pi;

[x,y,z]= cylinder(2+sin(t),30);

subplot(1,3,1);

surf(x,y,z);

subplot(1,3,2);

[x,y,z]=sphere;

surf(x,y,z);

subplot(1,3,3);

6

[x,y,z]=peaks(30);

meshz(x,y,z);

下面语句绘制一个球面

[x,y,z]=sphere(10);

Surf(x,y,z)

[x,y,z]=sphere(20);

Surf(x,y,z)

[x,y,z]=sphere(100);

Surf(x,y,z)

绘制柱面

[x,y,z]=cylinder(10);

Surf(x,y,z)

绘制圆锥

[x,y,z]=cylinder([10,1]);

Surf(x,y,z)

绘制正弦型柱面

t=0:pi/10:4*pi;

R=sin(t);

Cylinder(R, 30)

例5.20绘制三维图形:

(1)绘制魔方阵的三维条形图。

(2)以三维杆图形式绘制曲线y=2sin(x)。

(3)已知x=[2347,1827,2043,3025],绘制三维饼图。

(4)用随机的顶点坐标值画出五个黄色三角形。

subplot(2,2,1);

bar3(magic(4))

subplot(2,2,2);

y=2*sin(0:pi/10:2*pi);

stem3(y);

subplot(2,2,3);

pie3([2347,1827,2043,3025]);

subplot(2,2,4);

fill3(rand(3,5),rand(3,5),rand(3,5), 'y' )

例5.21绘制多峰函数的瀑布图和等高线图。

subplot(1,2,1);

[X,Y,Z]=peaks(30);

waterfall(X,Y,Z)

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

subplot(1,2,2);

7

contour3(X,Y,Z,12,'k'); %其中12代表高度的等级数

xlabel('X-axis'),ylabel('Y-axis'),zlabel('Z-axis');

例5.22从不同视点绘制多峰函数曲面。

subplot(2,2,1);mesh(peaks);

view(-37.5,30); %指定子图1的视点

title('azimuth=-37.5,elevation=30')

subplot(2,2,2);mesh(peaks);

view(0,90); %指定子图2的视点

title('azimuth=0,elevation=90')

subplot(2,2,3);mesh(peaks);

view(90,0); %指定子图3的视点

title('azimuth=90,elevation=0')

subplot(2,2,4);mesh(peaks);

view(-7,-10); %指定子图4的视点

title('azimuth=-7,elevation=-10')

例5.233种图形着色方式的效果展示。

z=peaks(20);colormap(copper);

subplot(1,3,1);surf(z);

subplot(1,3,2); surf(z);shading flat;

subplot(1,3,3);surf(z);shading interp;

例5.24绘制两个球面,其中一个球在另一个球里面,将外面的球裁掉一部分,使得能看见里面的球。

[x,y,z]=sphere(20);

%生成外面的大球

z1=z;

z1(:,1:4)=NaN; %将大球裁掉一部分

c1=ones(size(z1));

surf(3*x,3*y,3*z1,c1);

%生成里面的小球

hold on

z2=z;

c2=2*ones(size(z2));

c2(:,1:4)=3*ones(size(c2(:,1:4)));

surf(1.5*x,1.5*y,1.5*z2,c2);

colormap([0,1,0;0.5,0,0;1,0,0]);

grid on

hold off

8

例5.25隐函数绘图应用举例。

subplot(2,2,1);

ezplot('x^2+y^2-9');axis equal

subplot(2,2,2);

ezplot('x^3+y^3-5*x*y+1/5')

subplot(2,2,3);

ezplot('cos(tan(pi*x))',[ 0,1])

subplot(2,2,4);

ezplot('8*cos(t)','4*sqrt(2)*sin(t)',[0,2*pi])

例5.26在同一坐标下画红、绿两根不同曲线,希望获得绿色曲线的句柄,并对其进行设置。

x=0:pi/50:2*pi;

y=sin(x);

z=cos(x);

plot(x,y,'r',x,z,'g');

H=get(gca,'Children'); %获取两曲线句柄向量H

for k=1:length(H)

if get(H(k),'Color')==[0 1 0] %[0 1 0]代表绿色

Hg=H(k); %获取绿色线条句柄

end

end

pause %便于观察设置效果

set(Hg,'LineStyle',':','Marker','p'); %对绿色曲线进行设置例5.27建立一个图形窗口。该图形窗口没有菜单条,标题名称为“图形窗口示例”,起始于屏幕左下角、宽度和高度分别为300像素点和150像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将显示“Hello,Keyboard Key Pressed.”字样。

hf=figure('Color',[0,1,0],'Position',[1,1,300,150],...

'Name','图形窗口示例','NumberTitle','off','MenuBar','none',...

'KeyPressFcn','disp(''Hello,Keyboard Key Pressed.'')');

例5.28分别在4个不同的图形窗口绘制出正弦、余弦、正切、余切曲线。要求先建立一个图形窗口并绘图,然后每关闭一个再建立下一个,直到建立第4个窗口并绘图。

x=linspace(0,2*pi,60);

y=sin(x);

z=cos(x);

t=tan(x);

ct=1./(t+eps);;

%命令组待用

C4=['figure(''Name'',''cotangent(x)'',''NumberTitle'',',...

9

10

'''off'');plot(x,ct);axis([0,2*pi,-40,40]);'];

C3=['figure(''Name'',''tangent(x)'',''DeleteFcn'',C4,',...

'''NumberTitle'',''off'');plot(x,t);axis([0,2*pi,-40,40]);'];

C2=['figure(''Name'',''cos(x)'',''DeleteFcn'',C3,',...

'''NumberTitle'',''off'');plot(x,z);axis([0,2*pi,-1,1]);'];

%先创建1个图形窗口并绘制曲线

figure('Name','sin(x)','DeleteFcn',C2,'NumberTitle','off');

plot(x,y);

axis([0,2*pi,-1,1]);

例5.29 利用坐标轴对象实现图形窗口的任意分割。

clf; %清图形窗口

x=linspace(0,2*pi,20);

y=sin(x);

axes('Position',[0.2,0.2,0.2,0.7] ,'GridLineStyle','-.');

plot(y,x);title('sin(x)-1');

axes('Position',[0.4,0.5,0.2,0.1]);

stairs(x,y);title('sin(x)-2');

axes('Position',[0.55,0.6,0.25,0.3]);

stem(x,y);title('sin(x)-3');

axes('Position',[0.55,0.2,0.25,0.3]);

[x,y]=meshgrid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

mesh(x,y,z); title('mesh(x,y,z)');

例5.30 利用曲线对象绘制曲线sin(2)y t π=和

4sin 23t y π-??=

+ ??

?。 t=0:pi/100:pi/2;

y1=sin(2*pi*t); y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);

figh=figure;

axes('GridLineStyle',':','XLim',[0,pi/2],'YLim',[-1,1]);

line('XData',t,'YData',y1,'LineWidth',1);

line(t,y2);

grid on

例5.31 利用曲线对象绘制1sin y θ=和2cos y θ=并利用文字对象完成标注。

theta=-pi:.1:pi;

y1=sin(theta);

y2=cos(theta);

h=line(theta,y1,'LineStyle',':','Color','g');

line(theta,y2,'LineStyle','--','Color','b');

xlabel('-\pi \leq \theta \leq \pi')

ylabel('sin(\theta)')

title('Plot of sin(\theta)')

text(-pi/4,sin(-pi/4),'\leftarrow sin(-\pi\div4)','FontSize',12)

set(h,'Color','r','LineWidth',2) %改变曲线1的颜色和线宽

例5.32利用曲面对象绘制三维曲面z=sin(y)cos(x)。

x=0:0.1:2*pi;

[x,y]=meshgrid(x);

z=sin(y).*cos(x);

axes('view',[-37.5,30]);

hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat');

grid on;

xlabel('x-axis'),ylabel('y-axis'),zlabel('z-axis');

title('mesh-surf');

pause;

set(hs,'FaceColor','flat');

例5.33绘制两个等直径圆柱体的交线。

作图时,常常需要改变曲线的属性,例如线型、线宽、颜色等。如果对多根曲线做同样的操作可能是很烦琐的,下面的函数可以简化操作。

%PLINE 绘制给定点和属性的直线。

% pline(P,w,c,s)绘制两点间的直线

% 直线的坐标在矩阵P中描述,宽度是w,颜色是c,线型是s

% 矩阵P的格式

% [ x1 x2 … xn

% y1 y2 … yn]

% 其中 x1,y1是坐标的第一个点,其余坐标点类推。三维曲线相应作修改

function pline(P,w,c,s)

[m,n]=size(P);

if m==2 % 二维曲线

H1=plot(P(1,:),P(2,:));

set(H1,'Linewidth',w,'Color',c,'LineStyle',s)

elseif m==3 % 三维曲线

H2=plot3(P(1,:),P(2,:),P(3,:));

set(H1,'LineWidth',w,'Color',c,'LineStyle',s)

else

11

error('Input argument P has inadequate dimensions')

end

下面是绘制两个等直径圆柱体管交线的程序。

r1=5; % 第一个圆柱体的半径

r2=5; % 第二个圆柱体的半径

%前视图

% 开始做水平圆柱

P0=[0;0]; P1=[-5;5];

P2=[-13;5]; P3=[-13;-5];

P4=[13;-5]; P5=[13;5];

P6=[5;5];

patch([P0(1),P6(1),P5(1),P4(1),P3(1),P2(1),P1(1)],...

[P0(2),P6(2),P5(2),P4(2),P3(2),P2(2),P1(2)],'y')

axis([-15 30 -27 18]),axis equal,axis off

hold on

%开始做垂直圆柱

P7=[5;15];P8=[-5;15];

patch([P0(1),P6(1),P5(1),P4(1),P3(1),P2(1),P1(1)],...

[P0(2),P6(2),P5(2),P4(2),P3(2),P2(2),P1(2)],'g')

pline([P0 P1 P2 P3 P4 P5 P6 P0],2.5,'k','-') %设置水平圆柱的外围线pline([P6 P7 P8 P1],2.5,'k','-') %设置垂直圆柱的外围线%侧视图

t=0:pi/90:2*pi; %水平圆柱

xc=23+r1*cos(t); zc=r1*sin(t);

patch(xc,zc,'y')

% 开始做垂直圆柱

z1=0;

P11=[28;z1];P12=[28;15];

P13=[18;15];P14=[18;z1];

%定义交线

ti=0:pi/90:pi;

xi2=23+r1*cos(ti);zi2=r1*sin(ti);

%垂直圆柱

patch([xi2,P11(1),P12(1),P13(1),P14(1)],...

[zi2,P11(2),P12(2),P13(2),P14(2)],'g')

pline([xc;zc],2.5,'k','-')

pline([P11 P12 P13 P14],2,'k','-')

12

ha=plot([-14 29],[0 0],'k-.'); %水平轴

set(ha,'LineWidth',1.5)

ha=plot([0 0],[-6 16],'k-.');

% 侧视图的垂直轴

set(ha,'LineWidth',1.5)

ha=plot([23 23],[-6 16],'k-.');

% 侧视图的垂直轴

set(ha,'LineWidth',1.5)

ht=title('Intersection of perpendicular,equal-diameter cylinders');

set(ht,'FontSize',14)

t1='horizontal cylinder: y^2+z^2=r^2';

ht=text(-12,-10,t1);

set(ht,'FontSize',14)

t2='vertical cylinder: x^2+y^2=r^2';

ht=text(-12,-15,t2);

set(ht,'FontSize',14)

ht=text(-12,-20,'projection of intersection:z^2-x^2=0');

set(ht,'FontSize',14)

hold off

例5.34在同一个图形窗口中创建矩形、圆角矩形、椭圆和圆各一个,并使用了不同的线型和线宽。

subplot(2,2,1);

rectangle('Position',[2,3,25,15],'LineWidth',3);

subplot(2,2,2);

rectangle('Position',[3,5,15,8], 'Curvature',0.4,'LineWidth',2);

subplot(2,2,3);

rectangle('Position',[5,3,10,15],'Curvature',[1,1]);

subplot(2,2,4);

rectangle('Position',[5,3,10,10],'Curvature',[1,1],...

'LineStyle','--','FaceColor','r');

axis equal

例5.35光照处理后的球面并观察不同光照模式下的效果。

[x,y,z]=sphere(20);

subplot(1,4,1);

surf(x,y,z);axis equal;

shading interp;

hold on;

13

subplot(1,4,2);

surf(x,y,z);axis equal;

light('Position',[0,1,1]);

shading interp;lighting flat;

hold on;

plot3(0,1,1,'p');text(0,1,1,' light');

subplot(1,4,3);

surf(x,y,z);axis equal;

light('Position',[0,1,1]);

shading interp;lighting gouraud;

hold on;

subplot(1,4,4);

surf(x,y,z);axis equal;

light('Position',[0,1,1]);

shading interp;lighting phong;

例5.36生成一个球体和一个立方体,观察不同光照属性对应的显示效果。

sphere(36);

h=findobj('Type','surface');

set(h,'FaceLighting','phong','FaceColor','interp',...

'EdgeColor',[0.4,0.4,0.4],'BackFaceLighting','lit') hold on

vert=[2,0,-1;2,1,-1;3,0,0;3,0,-1;2,0,0;2,1,0;3,1,0;3,0,0];

fac=[1,2,3,4;2,6,7,3;4,3,7,8;1,5,8,4;1,2,6,5;5,6,7,8];

patch('Faces',fac,'Vertices',vert,'FaceColor','y');

light('Position',[1,3,2]);

light('Position',[-3,-1,3]);

material shiny

axis equal

hold off

例5.37 在E盘根目录下有一图像文件flower.jpg,在图形窗口显示该图像。

[x,cmap]=imread('e:\flower.jpg'); %读取图像的数据阵和色图阵image(x); %显示图像

colormap(cmap);

axis image off %保持宽高比并取消坐标轴

例5.38播放一个直径不断变化的球体。

[x,y,z]=sphere(50);

m=moviein(30); %建立一个30列大矩阵

14

for i=1:30

surf(i*x,i*y,i*z) %绘制球面

m(:,i)=getframe; %将球面保存到m矩阵

end

movie(m,10); %以每秒10幅的速度播放球面

例5.39模拟布朗运动。

n=30; %指定布朗运动的点数

s=0.02; %指定温度或速率

%产生n个随机点(x,y),处于-0.5到0.5之间

x=rand(n,1)-0.5;

y=rand(n,1)-0.5;

h=plot(x,y,'.'); %绘制随机点

axis([-1 1 -1 1]) ;

axis square

grid off

set(h,'EraseMode','Xor','MarkerSize',20); %设置擦除模式为Xor %循环5000次,产生动画效果

for i=linspace(1,10,5000)

drawnow

x=x+s*randn(n,1); %在坐标点附近添加随机噪声

y=y+s*randn(n,1);

set(h,'XData',x,'YData',y); %通过改变数据属性来重新绘图

end

15

显示果果照片

[x,cmap]=imread('c:\004.jpg'); %读取图像的数据阵和色图阵image(x); %显示图像

colormap(cmap);

axis image off

16

第8章 微机原理习题库

一.填空题 1.类型码为()的中断所对应的中断向量存放在0000H:0058H开始的4个连续单元中,若这4个单元的内容分别为(),则相应的中断服务程序入口地址为5060H:7080H。 2.CPU在指令的最后一个时钟周期检测INTR引脚,若测得INTR为()且IF为(),则CPU在结束当前指令后响应中断请求。 3.从CPU的NMI引脚产生的中断叫做(),它的响应不受()的影响。 4.中断类型码为15H的中断,其服务程序的入口地址一定存放在()四个连续的单元中,若这四个单元的的内容为:66H、50H、88H、30H,则其服务程序的入口地址为()。5.中断控制器8259A中的中断屏蔽寄存器IMR的作用是()。 6.CPU响应可屏蔽中断的条件是()、()和()。 7.在8086/8088微机系统中,INT20H指令中断向量存放在()中。 8.CPU在响应中断时,首先是保护(),然后将中断服务程序入口地址送入()。9.在8086/8088微机中,实现CPU关中断的指令是(),实现开中断的指令是()。10.如果CPU同时接收到中断请求和总线请求,则CPU应先响应()。 11.当用8259A管理INTR中断时,要发出EOI命令结束中断是操作()命令字。12.执行INTn指令时,其中断类型号由()提供,响应INTR时,中断类型号由()提供,响应NMI时,中断类型号由()提供,执行BOUND指令时,中断类型号由( )提供。 13.INTR、NMI均属于外中断,其中INTR被称为()中断,NMI被称为()中断。 14.80486在实模式下,当某中断源的中断类型码为70H时,中断服务程序的偏移地址和段基址将分别填入()单元和()单元。 15.CUP复位时,由于()被清零,使从INTR输入的可屏蔽中断不被响应。 16.2片8259A级联可管理()个可屏蔽中断。 17.INTR输入是()有效。 18.级连系统中,从8259A中的INT引脚应与主8259A的()连接。 19.()时,使用8259A的CS2~CS0引脚。 20.用二片8259A级连后,CPU的可屏蔽方式硬中断可扩充到()级。

数据库应用系统开发案例-程序代码

数据库应用系统开发 数据库系统开发案例—图书现场采购系统系统主窗体的实现 1.数据表结构的实现 经过前面的需求分析和概念结构设计以后,得到了数据库的逻辑结构。现在就可以在SQL Server 2000数据库系统中实现该逻辑结构。可以直接在SQL Server 2000企业管理器中创建表,也可以在SQL查询分析器中创建。下面给出在查询分析器中创建这些表的SQL语句,读者可以将这些表创建在系统的pubs数据库中。 (1)创建书商图书基本信息表bookseller_bookinfo CREATE TABLE bookseller_bookinfo( rec_id Bigint identity(1,1) PRIMARY KEY, isbn varchar(20) null, bookname varchar(200) null, author varchar(50) null, publisher_date varchar(50) null, publisher varchar(50) null, class_name varchar(50) null, book_price numeric DEFAULT 0, book_num int DEFAULT 0, provider varchar(50) null ) (2)创建图书馆图书馆藏基本信息表library_bookinfo CREATE TABLE library_bookinfo ( rec_id Bigint identity(1,1) PRIMARY KEY, isbn varchar(20) null, bookname varchar(200) null, author varchar(50) null, publisher_date varchar(50) null, publisher varchar(50) null, class_name varchar(50) null, book_price numeric DEFAULT 0, book_num int DEFAULT 0, provider varchar(50) null ) (3)创建用户注册表user_info CREATE TABLE user_info ( user_ID varchar(10) PRIMARY KEY , user_PWD varchar(10) null )

数据库原理例题及解答

一、实验目的: 1、了解SQL语言的特点和基本概念。 2、能够针对某种具体的DBMS(本实验采用Access2003),熟练地运用单表查询、连接查询、嵌套查询、集合 查询等各种SQL查询语句对数据库中的表进行操作。 3、对相同的查询要求,能够采用多种查询方法实现,并能分析各种方法的优劣,从中选择合适的方法。 二、实验过程: 1、Print the names of professors who work in departments that have fewer than 50 PhD students. 解:(1)分析:本题是查询在博士生人数少于50个人的系工作的教师名字。查询教授名字可以通过prof 表,而所查询的教授名字是有限制条件的, 他所工作的系名要属于特定的集合(所有系名的一个子集),显然这个子集可以通过查询 dept表获得,所以带有谓词in的嵌套子查询可以实现题目要求。 (2)语句实现: ' SELECT Prof.字段1 FROM Prof WHERE Prof.字段2 IN (SELECT Dept.字段1 FROM Dept WHERE Dept.字段2 < 50); ****************************************************; (3)查询结果: | 2、Print the name(s) of student(s) with the lowest gpa 解:(1)分析:本题是查询成绩点最低的学生的名字。最低的成绩点可以在student表中通过函数min(gpa)获得,而所查询学生的名字的限制为成绩点等于min(gpa), 因此可用如下嵌套子查询实现。 (2)语句实现: > SELECT Student.字段2

c语言程序设计-向艳-书上例题源代码教学提纲

第五章函数 1.定义一个求两个整数和的函数 int sum(x,y) int x,y; { int z; z=x+y; return(z); } 2.编写函数求两个数的最大值 #include float max(float x,float y) { float z; if(x>y) z=x; else z=y; return (z); } void main() { float a,b,c; scanf("%f%f",&a,&b); c=max(a,b); printf("max=&f\n",c); } 3.计算并输出一个圆台两底面积之和 #include float area(float x,float y) { float s; s=3.1415*(x*x+y*y); return s; } void printstar() { int i; for(i=0;i<30;i++) printf("*"); printf("\n"); } void main() {

float r1,r2,s; printstar(); scanf("%f,%f",&r1,&r2); s=area(r1,r2); printf("s=%.2f\n",s); printstar(); } 4.实参求值顺序的例子 #include int fun(int a,int b) { if (a>b) return 1; else if (a==b) return 0; else return -1; } void main() { int k=3,s; s=fun(k,++k); printf("s=%d\n",s); } 5.计算Σn i=1 i #include void main() { void s(int); int n; printf("input number\n"); scanf("%d",&n); s(n); printf("n=%d\n",n); } void s(int n) { int i; for(i=n-1;i>=1;i--) n=n+i; printf("n=%d\n",n); } 6.全局变量被“屏蔽” #include

数据库原理及应用 练习题及参考答案

数据库原理与应用练习题及参考答案 一、选择题 1.一下关于关系的说法正确的是( A ) A.一个关系就是一张二维表 B.在关系所对应的二维表中,行对应属性,列对应元组。 C.关系中各属性不允许有相同的域。 D.关系的各属性名必须与对应的域同名。 2.关系数据表的关键字可由( D )属性组成。 A.一个 B.两个 C.多个 D.一个或多个 3.进行自然连接运算的两个关系( A ) A.至少存在一个相同的属性名 B.可不存在任何相同的属性名 C.不可存在个相同的属性名 D.所有属性名必须完全相同 4.概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的( B )。 A.数据模型 B.概念模型 C.层次模型 D.关系模型 5.Access 2010 数据库具有很多特点,下列叙述中,正确的是( B )。 A. Access 2010数据表可以保存多种数据类型,但是不包括多媒体数 B. Access 2010可以通过编写应用程序来操作数据库中的数据 C. Access 不能支持 Internet/Intranet 应用 D. Access 2010 使用切换面板窗体管理数据库对象 6.数据表的基本对象是( A ) A.表 B.查询 C.报表 D.窗体 7.利用Access 2010 创建数据库文件,其扩展名是( B ) A.mdb B.accdb C.xlsx D. acc 8.启动Access 2010 后,最先显示的是什么界面( C ) A.数据库工作界面 B.“打开”窗口 C. Backstage D导航窗格 9.在 Access 数据库对象中,不包括的是( B ) A.表 B.向导 C.窗体 D.模块 10.表的组成内容包括( C ) A.查询和字段 B.报表和字段 C.字段和记录 D.记录和窗体 11.在 Access 2010 数据库的表设计视图中,不能进行的操作是( A ) A.修改字段类型 B.设置索引 C.增加字段 D.删除记录

实验八 访问数据库应用实例

实验八访问数据库应用实例 一.实验目的:能够熟练运用某种高级语言进行数据库编程 二.实验内容:编写一个访问数据库的程序,要求该程序具备查询、 插入、删除、修改四个基本功能。 三.实验过程:(将程序的实验过程简单描述并将相关界面截图,关键 代码附在文中) 四.实验总结 三.实验过程: 本实验要求用程序实现访问数据库,并进行增删改查四个功能。我想到了可以做一个简单的网站,用来记录英语学习的生词本。 相对应的,生词本的基本单位是词条,通过这个网站,可以实现——1.增加一个词条;2.删除一个词条;3.修改一个词条;4.搜索一个词条——这四个功能。 未经修饰的网页效果如下:

1.增加数据 在输入框中输入,并点击post键 Post按钮绑定了一个Ajax请求,发送表单中的内容到服务器,服务器接收数据,并插入到数据库中。 服务器端相关代码如下: @app.route('/entry_submit') def entry_submit(): """ json api 接收词条数据,添加到数据库,返回True or False """ # a = request.args.get('a', 0, type=int) original = request.args.get('original') translation = request.args.get('translation') timestamp = str(datetime.datetime.now()) status = entry_add(original=original, translation=translation, timestamp=timestamp) # 成功则返回True return jsonify(result = status) def entry_add(original, translation, timestamp): """ 添加成功则返回True,失败则返回False """ connection = pymysql.connect( host='localhost', user='root',

第06章_MATLAB数值计算_例题源程序汇总

第6章 MATLAB 数值计算 例6.1 求矩阵A 的每行及每列的最大和最小元素,并求整个矩阵的最大和最小元素。 1356 78256323578255631 01-???? -? ?=???? -??A A=[13,-56,78;25,63,-235;78,25,563;1,0,-1]; max(A,[],2) %求每行最大元素 min(A,[],2) %求每行最小元素 max(A) %求每列最大元素 min(A) %求每列最小元素 max(max(A)) %求整个矩阵的最大元素。也可使用命令:max(A(:)) min(min(A)) %求整个矩阵的最小元素。也可使用命令:min(A(:)) 例6.2 求矩阵A 的每行元素的乘积和全部元素的乘积。 A=[1,2,3,4;5,6,7,8;9,10,11,12]; S=prod(A,2) prod(S) %求A 的全部元素的乘积。也可以使用命令prod(A(:)) 例6.3 求向量X =(1!,2!,3!,…,10!)。 X=cumprod(1:10) 例6.4 对二维矩阵x ,从不同维方向求出其标准方差。 x=[4,5,6;1,4,8] %产生一个二维矩阵x y1=std(x,0,1) y2=std(x,1,1) y3=std(x,0,2) y4=std(x,1,2) 例6.5 生成满足正态分布的10000×5随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵。 X=randn(10000,5); M=mean(X) D=std(X) R=corrcoef(X)

例6.6 对下列矩阵做各种排序。 185412613713-?? ??=?? ??-?? A A=[1,-8,5;4,12,6;13,7,-13]; sort(A) %对A 的每列按升序排序 -sort(-A,2) %对A 的每行按降序排序 [X,I]=sort(A) %对A 按列排序,并将每个元素所在行号送矩阵I 例6.7 给出概率积分 2 (d x x f x x -? e 的数据表如表6.1所示,用不同的插值方法计算f (0.472)。 x=0.46:0.01:0.49; %给出x ,f(x) f=[0.4846555,0.4937542,0.5027498,0.5116683]; format long interp1(x,f,0.472) %用默认方法,即线性插值方法计算f(x) interp1(x,f,0.472,'nearest') %用最近点插值方法计算f(x) interp1(x,f,0.472,'spline') %用3次样条插值方法计算f(x) interp1(x,f,0.472,'cubic') %用3次多项式插值方法计算f(x) format short 例6.8 某检测参数f 随时间t 的采样结果如表6.2,用数据插值法计算t =2,7,12,17,22,17,32,37,42,47,52,57时的f 值。 T=0:5:65; X=2:5:57;

数据库原理及应用(第2版)习题参考答案..

第1章数据概述 一.选择题 1.下列关于数据库管理系统的说法,错误的是C A.数据库管理系统与操作系统有关,操作系统的类型决定了能够运行的数据库管理系统的类型 B.数据库管理系统对数据库文件的访问必须经过操作系统实现才能实现 C.数据库应用程序可以不经过数据库管理系统而直接读取数据库文件 D.数据库管理系统对用户隐藏了数据库文件的存放位置和文件名 2.下列关于用文件管理数据的说法,错误的是D A.用文件管理数据,难以提供应用程序对数据的独立性 B.当存储数据的文件名发生变化时,必须修改访问数据文件的应用程序 C.用文件存储数据的方式难以实现数据访问的安全控制 D.将相关的数据存储在一个文件中,有利于用户对数据进行分类,因此也可以加快用户操作数据的效率 3.下列说法中,不属于数据库管理系统特征的是C A.提供了应用程序和数据的独立性 B.所有的数据作为一个整体考虑,因此是相互关联的数据的集合 C.用户访问数据时,需要知道存储数据的文件的物理信息 D.能够保证数据库数据的可靠性,即使在存储数据的硬盘出现故障时,也能防止数据丢失 5.在数据库系统中,数据库管理系统和操作系统之间的关系是D A.相互调用 B.数据库管理系统调用操作系统 C.操作系统调用数据库管理系统 D.并发运行 6.数据库系统的物理独立性是指D A.不会因为数据的变化而影响应用程序 B.不会因为数据存储结构的变化而影响应用程序 C.不会因为数据存储策略的变化而影响数据的存储结构 D.不会因为数据逻辑结构的变化而影响应用程序 7.数据库管理系统是数据库系统的核心,它负责有效地组织、存储和管理数据,它位于用户和操作系统之间,属于A A.系统软件B.工具软件 C.应用软件D.数据软件 8.数据库系统是由若干部分组成的。下列不属于数据库系统组成部分的是B A.数据库B.操作系统 C.应用程序D.数据库管理系统 9.下列关于客户/服务器结构和文件服务器结构的描述,错误的是D A.客户/服务器结构将数据库存储在服务器端,文件服务器结构将数据存储在客户端 B.客户/服务器结构返回给客户端的是处理后的结果数据,文件服务器结构返回给客户端的是包含客户所需数据的文件 C.客户/服务器结构比文件服务器结构的网络开销小 D.客户/服务器结构可以提供数据共享功能,而用文件服务器结构存储的数据不能共享

PLSQL 示例代码

PL/SQL 示例代码 这些PL/SQL 代码示例演示了如何在Oracle 数据库中使用各种PL/SQL 特性。 示例代码— Oracle 数据库10g PL/SQL 示例应用程序— FORALL [2005 年 1 月12 日] Oracle 数据库10g 通过集合中的非连续索引,引入了对FORALL 语法的支持。INDICES OF 子句允许将FORALL 语法用于稀疏集合,而VALUE OF 子句用于指向其他集合的索引集合。该示例显示了如何在PL/SQL 应用程序中使用这些特性。 自述文件下载(ZIP) 正则表达式—用户搜索示例 [2004 年12 月13 日] 本示例演示了如何使用正则表达式API 通过TRIGGER、ROCEDURE、CURSOR 等从数据库中验证、搜索和提取信息。借助用户信息系统的场景,本示例使用各种模式来搜索和提取存储在数据库表中的用户信息(如爱好和兴趣、位置信息等)。 自述文件下载(ZIP) 正则表达式—DNA 示例 [2004 年12 月 1 日] 本示例使用正则表达式API 来分析从SGD 数据库接收到的原始HTTP 流,并且仅提取DNA 序列。该序列存储在本地的表中,并使用正则表达式函数进一步分析它以识别特定的酶切图谱。 自述文件下载(ZIP) 正则表达式—用户验证示例[2004 年9 月28 日] 借助一个典型的用户注册情景,本示例应用程序使用了在Oracle 数据库10g中实现的正则表达式函数来验证用户输入。 自述文件下载(ZIP) 示例代码— Oracle9i数据库版本2 除了依赖于公共模式中的对象(特别是员工表)外,这些示例是完全独立的。这些对象已经安装在预先构建的数据库中。可以通过运行Oracle HOME 目录下的demo/schema 目录中的mksample.sql 在定制的数据库中创建它们。 关联数组(index-by-varchar2 表) 在PL/SQL 程序中使用SQL 的RECORD 绑定 Utl_File:在Oracle9i数据库9.2.0 版中所引入增强功能的概述 示例代码— Oracle9i数据库版本1 除了依赖于公共模式中的对象(特别是员工表)外,这些示例是完全独立的。这些对象已经安装在预先构建的数据库中。可以通过运行Oracle HOME 目录下的demo/schema 目录中的mksample.sql 在定制的数据库中创建它们。 PL/SQL 静态SQL 中的游标重用 在PL/SQL 程序中使用CASE 语句 批量绑定增强 表函数和游标表达式

第2章例题源程序

例2.1 计算表达式 i 27147cos 5-++? 的值,并将结果赋给变量x ,然 后显示出结果。 x=(5+cos(47*pi/180))/(1+sqrt(7)-2*i) %计算表达式的值 例2.2 利用M 文件建立MYMAT 矩阵。 (1)启动有关编辑程序或MATLAB 文本编辑器(见第4章),并输 入待建矩阵: MYMAT=[101,102,103,104,105,106,107,108,109 ; 201,202,203,204,205,206,207,208,209; 301,302,303,304,305,306,307,308,309]; (2)把输入的内容存盘(设文件名为mymatrix.m)。 (3)在MATLAB 命令窗口中输入mymatrix ,即运行该M 文件,就会自动建立一个名为MYMAT 的矩阵,可供以后使用。 例2.3 建立5阶方阵A ,判断A 的元素是否能被3整除。 A =[24,35,13,22,63;23,39,47,80,80; ... 90,41,80,29,10;45,57,85,62,21;37,19,3 1,88,76] P=rem(A,3)==0 %判断A 的元素是否可以被3整 除 例2.4 在[0,3π]区间,求y=sin(x)的值。要求: (1)消去负半波,即(π,2π)区间内的函数值置0。

2 (2) (3π,32π)和(37π,38π)区间内取值均为sin 3 π。 方法1: x=0:pi/100:3*pi; y=sin(x); y1=(x2*pi).*y; %消去负半波 q=(x>pi/3&x<2*pi/3)|(x>7*pi/3&x<8*pi/3); qn=~q; y2=q*sin(pi/3)+qn.*y1; %按要求处理第 (2)步 方法2: x=0:pi/100:3*pi; y=sin(x); y1=(y>=0).*y; %消去负半波 p=sin(pi/3); y2=(y>=p)*p+(y=10 & A<=20) ans = 3 6 7 例2.6 建立一个字符串向量,然后对该向量做如下处理:

数据库原理与应用考试试题及答案

1.消除了非主属性对码的部分函数依赖的1NF的关系模式,必定是()。 A.1NF B.2NF C.3NF D.BCNF 2 .下列关于数据库恢复说法不正确的是() A.事物故障恢复采用日志文件 B.系统故障恢复采用日志文件 C.介质故障恢复采用日志文件 D.以上故障恢复均不采用日志文件 3.下面()不是常用的数据模型? A.关系模型 B.线性模型 C.层次模型 D.网状模型 4 .在数据库设计中,将E-R图转换成关系数据模型的过程属于()A.需求分析阶段B.概念设计阶段 C.逻辑设计阶段 D.物理设计阶段 5 .DBMS中实现事务持久性的子系统是() A.安全性管理子系统 B.完整性管理子系统 C.并发控制子系统 D.恢复管理子系统 6.数据库与文件系统的根本区别在于() A.提高了系统效率 B.方便了用户使用 C.数据的结构化 D.节省了存储空间 7.SQL语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 8.为了防止一个用户的工作不适当地影响另一个用户,应该采取()。 A.完整性控制 B.访问控制

C.安全性控制 D.并发控制 9.DBMS普遍采用()方法来保证调度的正确性。 A.索引 B.授权 C.封锁 D.日志 10.事务T在修改数据R之前必须先对其加X锁,直到事务结束才释放,这是()。 A.一级封锁协议 B.二级封锁协议 C.三级封锁协议 D.零级封锁协议 11.下面的选项不是关系数据库基本特征的是()。 A.不同的列应有不同的数据类型 B.不同的列应有不同的列名 C.与行的次序无关 D.与列的次序无关 12.关系模型中实现实体间N:M联系是通过增加一个()。 A.关系实现 B.属性实现 C.关系或一个属性实现 D.关系和一个属性实现 13.关系代数运算是以()为基础的运算。 A.关系运算 B.谓词演算 C.集合运算 D.代数运算 14.数据库设计可划分为七个阶段,每个阶段都有自己的设计内容,“为哪些关系,在哪些属性上、键什么样的索引”这一设计内容应该属于()设计阶段。 A.概念设计 B.逻辑设计 C.物理设计 D.全局设计 15.SQL语言中的COMMIT语句的主要作用是()。 A.结束程序 B.返回系统 C.提交事务 D.存储数据 16.一个事务的执行,要么全部完成,要么全部不做,一个事务中对数据库的所有操作都是一个不可分割的操作序列的属性是()。 A.原子性 B.一致性 C.独立性 D.持久性 17.关系的主属性不能取空值,属于()

数据库设计以及源代码

系统建设详细设计 1.数据库设计 管理员用户表信息: 学生用户表: 学生信息表:

电子邮箱文本50 学生的电子邮箱 备注/ / 学生的其他信息 性别文本50 性别 入学时间文本50 学生入学的时间 班级文本50 所在班级 专业文本50 所学专业 2 系统程序文件设计与编写 与数据库连接的代码: <% db="message.mdb" set Conn=server.createobject("adodb.Connection") conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(db) %> 登陆界面代码:

代码为: <% if request("Submit")<>"" then set rs=server.createobject("adodb.recordset") sql="SELECT username,password from users where username='"&request("username")&"'" rs.open sql,conn,1,3 if rs.bof and rs.eof then msg="错误:用户名不存在" else if rs("password")=request("password") then Session("admin")=true response.redirect "index.asp?users=admin" else msg="错误:密码不正确" end if end if rs.close set rs=nothing

数据库原理试题及答案

全国2001年10月自学考试数据库原理试题及答案2 作者:ryan 点击:时间:2003-10-11 上午 23:05:00 来源: 第一部分选择题 (共30分) 一、单项选择题 (本大题共15小题,每小题2分,共30分) 在每小题列出的四个选项中只有一个是符合题目要求的,请将其代码填在题后的括号内。错选或未选均无分。 1. 单个用户使用的数据视图的描述称为【】 A. 外模式 B. 概念模式 C. 内模式 D. 存储模式 2. 子模式DDL用来描述【】 A. 数据库的总体逻辑结构 B. 数据库的局部逻辑结构 C. 数据库的物理存储结构 D. 数据库的概念结构 3. 在DBS中,DBMS和OS之间的关系是【】 A. 相互调用 B. DBMS调用OS C. OS调用DBMS D. 并发运行 4. 五种基本关系代数运算是【】 A. ∪,-,×,π和σ B. ∪,-,∞,π和σ C. ∪,∩,×,π和σ D. ∪,∩,∞,π和σ 5. 当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是【】 A. 左外联接 B. 右外联接 C. 外部并 D. 外联接 6. 下列聚合函数中不忽略空值 (null) 的是【】 A. SUM (列名) B. MAX (列名) C. COUNT ( * )

D. AVG (列名) 7. 设关系模式R (A,B,C),F是R上成立的FD集,F = {B→C},则分解ρ = {AB,BC}相对于F 【】 A. 是无损联接,也是保持FD的分解 B. 是无损联接,但不保持FD的分解 C. 不是无损联接,但保持FD的分解 D. 既不是无损联接,也不保持FD 的分解 8. 关系模式R分解成ρ = {R1,…,Rk},F是R上的一个FD集,那么R中满足F的每一个关系r,与其投影联接表达式mρ(r) 间的关系满足【】 A. rí mρ(r) B. mρ(r) í r C. r = mρ(r) D. r≠mρ(r) 9. 在数据库设计中,将ER图转换成关系数据模型的过程属于【】 A. 需求分析阶段 B. 逻辑设计阶段 C. 概念设计阶段 D. 物理设计阶段 10. SQL中,下列涉及空值的操作,不正确的是【】 A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL) 11. 如果事务T获得了数据项Q上的排它锁,则T对Q 【】 A. 只能读不能写 B. 只能写不能读 C. 既可读又可写 D. 不能读不能写 12. DBMS中实现事务持久性的子系统是【】 A. 安全性管理子系统 B. 完整性管理子系统 C. 并发控制子系统 D. 恢复管理子系统 13. SQL的全局约束是指基于元组的检查子句和【】 A. 非空值约束 B. 域约束子句 C. 断言

数据库应用系统设计实例

第八章数据库应用系统设计实例前面章节主要介绍数据库系统的有关理论和方法,开发应用系统是多方面知识和技能的综合运用,本章将以一个高校教学管理系统的设计过程,来说明数据库系统设计的有关理论与实际开发过程的对应关系,使读者更深入地理解理论如何指导实践,从而提高灵活、综合运用知识的系统开发能力。 本章偏重于数据库应用系统的设计,没有涉及应用程序的设计。对此,读者可参考有关开发工具和软件工程方面的相关资料。 本章学习目的和要求: 系统总体需求描述与设计; 利用DFD及DD描述系统需求; 利用ERM设计系统概念模型; ERM向关系模型转换; 表结构设计; 数据库、表、视图、索引等的创建。 8.1系统总体需求简介 高校教学管理,在不同的高校有其自身的特殊性,业务关系复杂程度各有不同。本章的主要目的,是为了说明应用系统开发过程。由于篇幅有限,将对实际的教学管理系统进行简化,如教师综合业绩的考评和考核、学生综合能力的评价等,都没有考虑。8.1.1用户总体业务结构 高校教学管理业务,包括4个主要部分:学生的学籍及成绩管理、制定教学计划、学生选课管理以及执行教学调度安排。各业务包括的主要内容为: ①学籍及成绩管理包括:各院系的教务员完成学生学籍注册、毕业、学籍异动处理,各授课教师完成所讲授课程成绩的录人,然后由教务员进行学生成绩的审核认可。 ②制定教学计划包括:由教务部门完成学生指导性教学计划、培养方案的制定,开设课程的注册以及调整。 ③学生选课管理包括:学生根据开设课程和培养计划选择本学期所修课程,教务员对学生所选课程确认处理。 ④执行教学调度安排包括:教务员根据本学期所开课程、教师上课情况以及学生选课情况完成排课、调课、考试安排、教室管理。 8.1.2总体安全要求 系统安全的主要目标,是保护系统资源免受毁坏、替换、盗窃和丢失。系统资源包括:设备、存储介质、软件、数据等。具体来说,应达到以下安全要求: (1)保密性机密或敏感数据在存储、处理、传输过程中要保密,并确保用户在授权后才能访问。 (2)完整性保证系统中的信息处于一种完整和未受损害的状态,防止因非授权访问、部件故障或其他错误而引起的信息篡改、破坏或丢失。学校的教学管理系统的信息,对不同的用户应有不同的访问权限,每个学生只能选修培养计划中的课程,学生只能查询自己的成绩,成绩只能由讲授该门课程的老师录入,经教务人员核实后则不能修改。 (3)可靠性保障系统在复杂的网络环境下提供持续、可靠的服务。

第十章 输入输出系统习题

第十章输入输出系统习题 一、单项选择题: 1、“总线忙”信号是由__ __建立的。 A.获得总线控制权的设备B.发出“总线请求”的设备 C.总线控制器D.CPU 2、在不同速度的设备之间传送数据__ __。 A.必须采用同步控制方式B.必须采用异步控制方式 C.可以选用同步方式,也可选用异步方式D.必须采用应答方式 3、挂接在总线上的多个部件___ _。 A.只能分时向总线发送数据,并只能分时从总线接收数据 B.只能分时向总线发送数据,但可同时从总线接收数据 C.可同时向总线发送数据,并同时从总线接收数据 D.可同时向总线发送数据,但只能分时从总线接收数据 4、总线从设备是____。 A.掌握总线控制权的设备 B.申请作为从设备的设备 C.被主设备访问的设备D.总线裁决部件 5、假设某系统总线在一个总线周期中传输4个字节信息,一个总线周期占用2个时钟周期,总线时钟频率为10MHz,则总线带宽是__ __。 A.10 MB/s B.20 MB/s C.40 MB/s D.80 MB/s 6、波特率表示传输线路上____。 A.信号的传输速率B.有效数据的传输速率 C.校验信号的传输速率D.干扰信号的传输速率 7、中断系统中的断点是指____。 A.子程序入口地址B.中断服务子程序入口地址 C.中断服务程序入口地址表D.中断返回地址 8、显示器的主要参数之一是分辨率,其含义是____。 A.显示屏幕的水平和垂直扫描频率 B.显示屏幕上光栅的列数和行数 C.可显示不同颜色的总线 D.同一个画面允许显示不同颜色的最大数目 9、下列选项中,能引起外部中断的事件是____。 A.键盘输入B.除数为0 C.浮点运算下溢D.访存缺页 10.CPU响应中断时,最先完成的两个步骤是_ __和保护现场信息。 A.开中断 B.恢复现场 C.关中断 D.不可屏蔽中断 11、在独立编址方式下,存储单元和I/O设备是靠来区分的。 A.不同的地址代码B.不同的地址总线 C.不同的指令和不同的控制信号D.上述都不同 12、计算机系统的输入/输出接口通常是__ __。 A.CPU与存储器之间的交界面B.存储器与打印机之间的交界面 C.主机与外围设备之间的交界面D.CPU与系统总线之间的交界面 13.根据连线的数量,总线可分为串行总线和_____ ___总线

第3章例题源程序

例3.1分别建立3×3、3×2和与矩阵A同样大小的零矩阵。 (1) 建立一个3×3零矩阵。 zeros(3) ans = 0 0 0 0 0 0 0 0 0 (2) 建立一个3×2零矩阵。 zeros(3,2) ans = 0 0 0 0 0 0 (3) 设A为2×3矩阵,则可以用zeros(size(A))建立一个与矩阵A同样大小零矩阵。 A=[1 2 3;4 5 6]; %产生一个2×3阶矩阵A zeros(size(A)) %产生一个与矩阵A同样大小的零矩阵 ans = 0 0 0 0 0 0 例3.2建立随机矩阵: (1) 在区间[20,50]内均匀分布的5阶随机矩阵。 (2) 均值为0.6、方差为0.1的5阶正态分布随机矩阵。 x=20+(50-20)*rand(5) y=0.6+sqrt(0.1)*randn(5) 例3.3将101~125等25个数填入一个5行5列的表格中,使其每行每列及对角线的和均为565。 M=100+magic(5) 例3.4求4阶希尔伯特矩阵及其逆矩阵。 命令如下: format rat %以有理形式输出 H=hilb(4) H=invhilb(4) format short %恢复默认输出格式 例3.5求(x+y)5的展开式。 pascal(6) 例3.6先建立5×5矩阵A,然后将A的第一行元素乘以1,第二行乘以2,…,第五行乘以5。 A=[17,0,1,0,15;23,5,7,14,16;4,0,13,0,22;10,12,19,21,3;... 11,18,25,2,19]; D=diag(1:5); D*A %用D左乘A,对A的每行乘以一个指定常数 例3.7 求方阵A的逆矩阵,且验证A与A-1是互逆的。

数据库原理-期末考试试题及答案

数据库原理-期末考试试题及答案 (本大题共15小题,每小题2分,共30分) 在每小题列出的四个备选项中只有一个是符合题目要求的,错选、 多选或未选均无分。 1. 要保证数据库的数据独立性,需要修改的是() A.三层模式之间的两种映射B.模式与内模式 C.模式与外模式D.三层模式 2. 下列四项中说法不正确的是() A.数据库减少了数据冗余B.数据库中的数据可以共享 C.数据库避免了一切数据的重复D.数据库具有较高的数据独立性 3. 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员, 从职员到部门的联系类型是() A.多对多B.一对一 C.多对一D.一对多 4.将E-R模型转换成关系模型,属于数据库的() A.需求分析B.概念设计 C.逻辑设计D.物理设计 5.五种基本关系代数运算是() A.∪,—,×,π和σB .∪,—,,π和σ C.∪,∩,×,π和σD .∪,∩,,π和σ 6.下列聚合函数中不忽略空值 (NULL) 的是()。 A.SUM (列名) B.MAX (列名) C.COUNT ( * ) D.AVG (列名) 7. SQL中,下列涉及空值的操作,不正确的是()。 A. AGE IS NULL B. AGE IS NOT NULL C. AGE = NULL D. NOT (AGE IS NULL) 8. 已知成绩关系如表1所示。 执行SQL语句: SELECT COUNT(DISTINCT学号) FROM成绩 WHERE分数>60 查询结果中包含的元组数目是() 表1 成绩关系

A. 1 B. 2 C. 3 D. 4 9. 在视图上不能完成的操作是( ) A. 更新视图 B. 查询 C. 在视图上定义新的基本表 D. 在视图上定义新视 图 10. 关系数据模型的三个组成部分中,不包括( ) A. 完整性约束 B. 数据结构 C. 恢复 D. 数据操作 11. 假定学生关系是S (S #,SNAME ,SEX ,AGE ),课程关系是C (C #,CNAME ,TEACHER ), 学生选课关系是SC (S #,C #,GRADE )。 要查找选修“COMPUTER ”课程的“女”学生姓名,将涉及到关系( ) A .S B .S C ,C C .S ,SC D .S ,SC ,C 12. 关系规范化中的删除操作异常是指( ) A .不该删除的数据被删除 B .不该插入的数据被插入 C .应该删除的数据未被删除 D .应该插入的数据未被插入 13. 从E-R 模型关系向关系模型转换时,一个m:n 联系转换为关系模式时,该关系模式的码 是( ) A .M 端实体的码 B .N 端实体的码 C .M 端实体码与N 端实体码组合 D .重新选取其他属性 14.已知关系R={A ,B ,C ,D ,E ,F},F={A →C ,BC →DE ,D →E ,CF →B}。则(AB)F + 的闭包 是( ) A .ABCDEF B .ABCDE C .ABC D .AB 15.设有关系R (A ,B ,C )和S (C ,D )。与SQL 语句select A,B,D from R,S where R.C=S.C 等价的关系代数表达式是( ) A .σR.C=S.C (πA,B,D (R×S)) B .πA,B,D (σR,C= S.C (R×S)) C .σR.C=S.C ((πA,B (R))×(π D (S))) D .σR,C=S.C (πD ((πA,B (R))×S)) 二、多项选择题 (本大题共5小题,每小题2分,共10分) 在每小题列出的四个备选项中有多个是符合题目要 求的,多选、少选、错选、不选均无分。

第10章例题源程序

例10.1 设系统的微分方程为: ?????==-t e x x t x x 5.02'22'1 试建立系统仿真模型。 例10.2 利用Simulink 构建函数曲线y=5t 2+16。 例10.3 利用Simulink 仿真求I=? +10)1ln(dx x x 。 例10.4 有初始状态为0的二阶微分方程x"+0.2x'+0.4x=0.2u (t), 其中u(t)是单位阶跃函数,试建立系统模型并仿真。 例10.5 PID 控制器是在自动控制中经常使用的模块,在工程应用中其标准的数学模型为 )()/11()(s E N s T s T s T K s U d d i p ++= 其中采用了一阶环节来近似纯微分动作,为保证有良好的微分近似的效果,一般选N ≥10。试建立PID 控制器的模型并建立子系统。 例10.6 利用使能子系统构成一个正弦半波整流器。 例10.7 利用触发子系统将一锯齿波转换成方波。 例10.8 采用S 函数实现模块y=nx ,即模块的功能是把一个输入信号n 倍以后再输出。 (1) 利用MATLAB 语言编写S 函数。程序如下: %************************************************* %S 函数timesn.m ,其输出是输入的n 倍 %************************************************* function [sys,x0,str,ts]=timesn(t,x,u,flag,n) switch flag, case 0 %初始化 [sys,x0,str,ts]=mdlInitializeSizes; case 3 %计算输出量 sys=mdlOutputs(t,x,u,n); case {1,2,4,9} %未使用的flag 值 sys=[]; otherwise %出错处理 error(['Unhandle flag=',num2str(flag)]); end %************************************************* %mdlInitializeSizes :当flag 为0 时进行整个系统的初始化 %************************************************* function [sys,x0,str,ts]=mdlInitializeSizes(T) %调用函数simsizes 以创建结构体sizes

相关文档
相关文档 最新文档