人工地震动生成程序

人工地震动生成程序
人工地震动生成程序

clear

clc

close all hidden %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

fni=input('生成人工地震波-输入数据文件名(20041012):','s');

fid=fopen(fni,'r');

fs=fscanf(fid,'%f',1);%采样频率

tu=fscanf(fid,'%f',1);%上升时间长度

%上升时间包络线线形(1-直线、2-抛物线、3-指数曲线)

iu=fscanf(fid,'%f',1);

%上升时间包络线线形参数(只有指数曲线需要具体参数,其均为1)

cu=fscanf(fid,'%f',1);

ta=fscanf(fid,'%f',1);%持时时间长度

td=fscanf(fid,'%f',1);%下降时间长度

%下降时间包络线线形(1-直线、2-抛物线、3-指数曲线)

id= fscanf(fid,'%f',1);

%下降时间包络线线形(只有抛物线,指数曲线需要具体参数,其余为1)

cd=fscanf(fid,'%f',1);

dp=fscanf(fid,'%f',1);%阴尼比值

p=fscanf(fid,'%f',1);%概率系数(一般可取P=0.85)

nn=fscanf(fid,'%f',1);%迭代次数

fno=fscanf(fid,'%f',1);%输出数据文件名

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %对目标反应谱取值

x=fscanf(fid,'%f',[2,inf]);%反应谱频率和幅值数据

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% tatus=fclose(fid);

%计算生成地震波的数据长度

tl=tu+ta+td;

%计算生成地震波的数据长度

nt=round(fs*tl+1);

%大于并最接近nt的2的幂次方为FFT长度

nfft=2^nestpow2(nt)

%计算频率间隔(Hz)

df=fs/nfft

%定义反应谱的离散频率向量

f=0:df:(nfft/2-1)*df

%计算时间间隔(s)

dt=1/fs;

%定义的离散时间向量

t=0:dt:(nt-1)*dt

%生成0到2PI的随机数为随机相位

g=rand(1,nfft/s)*2*pi;

%建立时间包络线

%建立与地震波长度相同元素为1的向量

en=ones(1,nt);

%上升时间阶段

%确定上升时间段的长度

l=round(tu*fs)+1

%产生上升时间段的包络线数组元素

switch iu

case 1 %直线

en(1:l)=linspace(0,1,1);% y = linspace(a,b,n) generates a row vector y of n points linearly

spaced between and including a and b.

case 2 %抛物线

a=0:l-1;

en(1:l)=(a/(l-1)).^2;

case 3 %指数曲线

a=0:l-1;

en(1:l)=1-exp(-cu*a/(l-1));

end

%持续时间阶段

%确定0时刻到持续时间结束时刻时间段的长度

m=round((tu+ta)*fs)+1;

%下降时间阶段

%产生下降时间段的包络线数组元素

switch id

case 1 %直线

en(m:nt)=linspace(1,0,nt-m+1);

case 2 %抛物线

a=0:nt-m;

en(m:nt)=1-cd*(a/(nt-m)).^2;

case 3 %指数曲线

a=0:nt-m;

en(m:nt)=exp(-cd*a/(nt-m));

end

%按线性插值建立目标反应谱离散数据

%按目标反应谱的长度生成元素为0的向量

a0=zeros(x(1,:));

%取目标反应谱数据的长度

n=length(x(1,:));

%四舍五入取整求反应谱最大频率对应数组元素的下标

nb=round(x(1,n)/df)+1;

for k=1:n-1

%四舍五入取整求反应谱前一个频率数据对应数组元素的下标 l=round(x(1,K)/df)+1;

%四舍五入取整求反应谱后一个频率数据对应数组元素的下标

m=round(x(1,K+1)/df)+1;

%线性插值产生前后两个频率数据间的反应谱数组元素 a0(1:m)=linspace(x(2,k),x(2,k+1),m-l+1)

end

%根据目标反应谱计算对应的近似功率谱

a1=a0;

s=zeros(1,nfft/2);

k=nb:ne;

s(k)=2*dp/(pi.*(a1(k).^2)./f(k)./(-2*log(-log(p)*pi/tl)./f(k)));

%将功率谱转换成傅里叶幅值谱

b1=sqrt(4*df*s)*nfft/2;

%定义元素为0的反谱传递函数矩阵

hf=zeros(ne,nfft);

%计算加速度反应谱传递函数矩阵

for j-0:ne-1

w=2*pi*df*j

wd=w*sqrt(1-dp*dp);

e=exp(-t.*W*dp);

a=t.*wd;

s=sin(a)>*((1-2*dp*dp)/(1-dp*dp));

c=cos(a).*(2*dp/sqrt(1-dp*dp));

%计算加速度反应谱的脉冲响应函数向量

h=wd*e.*(s+c)/fs;

%通过FFT变换求加速度反应谱传递函数向量

hf(j+1,:)=fft(h,nfft);

end

mm=nn

%进行生成人工地震波迭代计算

%100为最大迭代次数

for k=1:100

%将幅值谱和相位谱转化为实部和虚部

c=b1.*exp(i*g);

%将正负圆频率傅里叶谱向量组合成一仙向量

d=[c,c(nfft/2:-1:1)];

%IFFT变换,并取变换结果实部为生成的地震波

e=ifft(d,nfft);

%给生成的地震波加上强度包络线

y=en.*real(e(1:nt));

%计算反应谱

%对生成的地震波进行FFT变换

yf=fft(y,nfft);

for j=1:ne

%用地震波FFT变换结果和反应谱传递函数的乘积的逆变换做卷积运算 d=ifft(yf.*hf(j,:),nfft);

%求各频率对应地震的最大响应

al(j)=max(real(d(1:nt)));

end

%如果达到指定的迭代次数显于图形

if k==mm

subplot(2,1,1);

%m 同时显示生成的地震波的强度包络线

plot(t,y,t,en,t,-en);

xlabel('时间(s)');

ylabel('加速度(g)');

grid on

sublpot(2,1,2);

%同时显示期望反应谱与反应谱计算谱、

l=1:ne

plot(f(l),a0(l),':'f(l),a1(l));

xlabel('频率(Hz)');

ylabel('加速度(g)');

legend('目标谱','计算谱');

grid on;

ig=input('继续迭代次数[取值1-9,否则退出]:');

if ig>0&ig<10 %如果输入数字是1-9

mm=mm+ig

else

break;

end

end

c=bl

%期望谱与计算谱的比值来修改傅里叶值谱

j=nb:ne;

bl(j)=c(j).*a0(j)./a1(j);

end

%打开文件输入人工地震动数据

fid=fopen(fno,'W');

for K=1:nt

%每一行输出两个实型数据,t为时间,y为人工地震动信号值 fprintf(fid,'%f%f\n',t(k),y(k));

end

status=fclose(fid);

编译原理作业参考答案

第1章引言 1、解释下列各词 源语言:编写源程序的语言(基本符号,关键字),各种程序设计语言都可以作为源语言。 源程序: 用接近自然语言(数学语言)的源语言(基本符号,关键字)编写的程序,它是翻译程序处理的对象。 目标程序: 目标程序是源程序经过翻译程序加工最后得到的程序。目标程序 (结果程序)一般可由计算机直接执行。 低级语言:机器语言和汇编语言。 高级语言:是人们根据描述实际问题的需要而设计的一个记号系统。如同自然语言(接近数学语言和工程语言)一样,语言的基本单位是语句,由符号组和一组用来组织它们成为有确定意义的组合规则。 翻译程序: 能够把某一种语言程序(源语言程序)改变成另一种语言程序(目标语言程序),后者与前者在逻辑上是等价的。其中包括:编译程序,解释程序,汇编程序。 编译程序: 把输入的源程序翻译成等价的目标程序(汇编语言或机器语言), 然后再执行目标程序(先编译后执行),执行翻译工作的程序称为编译程序。 解释程序: 以该语言写的源程序作为输入,但不产生目标程序。按源程序中语句动态顺序逐句的边解释边执行的过程,完成翻译工作的程序称为解释程序。 2、什么叫“遍”? 指对源程序或源程序的中间形式(如单词,中间代码)从头到尾扫描一次,并作相应的加工处理,称为一遍。 3、简述编译程序的基本过程的任务。 编译程序的工作是指从输入源程序开始到输出目标程序为止的整个过程,整个过程可以划分5个阶段。 词法分析:输入源程序,进行词法分析,输出单词符号。 语法分析:在词法分析的基础上,根据语言的语法规则把单词符号串分解成各类语法单位,并判断输入串是否构成语法正确的“程序”。 中间代码生成:按照语义规则把语法分析器归约(或推导)出的语法单位翻译成一定形式的中间代码。 优化:对中间代码进行优化处理。 目标代码生成:把中间代码翻译成目标语言程序。 4、编译程序与解释程序的区别? 编译程序生成目标程序后,再执行目标程序;然而解释程序不生成目标程序,边解释边执行。 5、有人认为编译程序的五个组成部分缺一不可,这种看法正确吗? 编译程序的5个阶段中,词法分析,语法分析,语义分析和代码生成生成是必须完成的。而中间代码生成和代码优化并不是必不可少的。优化的目的是为了提高目标程序的质量,没有这一部分工作,仍然能够得到目标代码。 6、编译程序的分类 目前基本分为:诊断编译程序,优化编译程序,交叉编译程序,可变目标编译程序。

程序设计、人工智能、网络中发布信息试题

题号 1 2 3 4 5 6 7 8 9 10 答案A B D A A A D A B B 题号11 12 13 14 15 16 17 18 19 20 答案 C C C D A B A 1.某地驾照考试规定,考试成绩不低于80分为合格,下图是根据成绩判断是否合格的部分流 程图: 如果输入的成绩为85,则该流程的执行顺序为 ( ) (A)①→②→③(B)①→②→④(C)①→②→④→③(D)①→②→③→④ 2. 某汽车厂家正在研制一款新车,司机坐在驾驶室内喊"启动引擎",汽车立即开始发动,这 里用到了( ) (A)手写识别技术(B)语音识别技术 (C)指纹识别技术(D)视网膜识别技术 3.下列属于程序设计软件的是() (A)Media Player (B)Word (C)Excel (D)QBASIC 4. 某算法的流程图如下所示:

当输入a,b的值分别为7,9,该算法的输出结果为() (A)16 (B)9 (C) 7 (D)2 5.在编程的主要步骤中,( )是编程的核心,是解决问题的方法和步骤。 A.算法设计 B.界面设计 C.代码编写 D.调试运行 6.程序设计语言是用于编写计算机程序的语言,是人们与计算机打交道的桥梁,下列属于程序设计语言的是( )。 ①VB ②WPS ③Pascal ④C ⑤Excel ⑥Wor d ⑦PowerPoint A.①③④ B.②⑤⑥ C.①②⑤⑥⑦ D.⑤⑥⑦ 7.下面活动中,涉及了人工智能实际应用的是( )。 A.李强使用扫描仪把报纸上的文字资料以图像文件保存到计算机里 B.星期日上午,张雷同学与父母在商场购买数码相机 C.王鹏在编辑视频时,遇到疑难问题,通过论坛发帖子与网友交流 D.徐慧使用手机的语音识别功能,自动查找到要联系的人 8.下列不属于人工智能的是( )。 A.刘明通过QQ与别人下五子棋游戏 B.近日国内推出一款机器人,他不仅可以准确指挥交通,还可以回答别人的问题 C.李明用手写板在计算机中绘制卡通 D.张杰利用语音设备输入文字 9.下列不属于通过模式识别输入的是( )。 A.手写板输入 B.键盘输入 C.光学字符识别输入 D.语音输入 10.方华利用VB软件编制了一个“学生成绩统计分析系统”对学校学生的考试成绩进行汇总并分析。这属于信息加工一般过程的( )阶段。

人工智能实验一指导

实验1: Prolog语言程序设计 人工智能(AI)语言是一类适应于人工智能和知识工程领域的、具有符号处理和逻辑推理能力的计算机程序设计语言。能够用它来编写求解非数值计算、知识处理、推理、规划、决策等具有智能的各种复杂问题。 Prolog是当代最有影响的人工智能语言之一,由于该语言很适合表达人的思维和推理规则,在自然语言理解、机器定理证明、专家系统等方面得到了广泛的应用,已经成为人工智能应用领域的强有力的开发语言。 尽管Prolog语言有许多版本,但它们的核心部分都是一样的。Prolog的基本语句仅有三种,即事实、规则和目标三种类型的语句,且都用谓词表示,因而程序逻辑性强,方法简捷,清晰易懂。另一方面,Prolog是陈述性语言,一旦给它提交必要的事实和规则之后,Prolog就使用内部的演绎推理机制自动求解程序给定的目标,而不需要在程序中列出详细的求解步骤。 一、实验目的 1、加深学生对逻辑程序运行机理的理解。 2、掌握Prolog语言的特点、熟悉其编程环境。 3、为今后人工智能程序设计做好准备。 二、实验内容 1、编写一个描述亲属关系的Prolog程序,然后再给予出一些事实数据,建立一个小型演绎数据库。 提示:可以以父亲和母亲为基本关系(作为基本谓词),再由此来描述祖父、祖母、兄弟、姐妹以及其他所属关系。 2、编写一个路径查询程序,使其能输出图中所有路径。 提示:程序中的事实描述了下面的有向图,规则是图中两节点间通路的定义。 e

3、一个雇主在发出招聘广告之后,收到了大量的应聘申请。为了从中筛选出不量的候选人,该雇主采用下列判据:申请者必须会打字、开车,并且住在伦敦。 (a)用Prolog规则表述这个雇主的选择准则。 (b)用Prolog事实描述下列申请者的情况: 史密斯住在剑桥,会开车但不会打字。 布朗住在伦敦,会开车也会打字。 简住在格拉斯哥,不会开车但会打字。 埃文斯住在伦敦,会开车也会打字。 格林住在卢顿,会开车也会打字。 (c)要求Prolog提供一个候选人名单。 4、实现递归谓词remove(X,Y,Z),它用于从表Y中除去所有整型数X的倍数值后得到新表Z。例如,对于询问 remove(2,[3,4,5,6,7,8,9,10],Z). 的回答为: Z=[3,5,7,9] 三、实验建议 1、首先运行Prolog安装目录中PROGRAM目录下的示例程序,对Prolog功能有一个感性认识。 (1)HANOI.PRO 实现汉诺塔演示的程序。 程序运行界面如图所示。

空间直角坐标系与大地坐标系转换程序

空间直角坐标系与大地坐标系转换程序 #include #include #include using namespace std; #define PI (2.0*asin(1.0)) void main() { double a,b,c,d1,d2,f1,f2,m1,m2,B,L,H,X,Y,Z,W,N,e; //cout<<"请分别输入椭球的长半轴、短半轴(国际单位)"<>a>>b; a=6378137; //以WGS84为例 b=6356752.3142; e=sqrt(a*a-b*b)/a; c=a*a/b; int x; cout<<"请输入0或1,0:大地坐标系到空间直角坐标系;1:空间直角坐标系到大地坐标系"<>x; switch(x) { case 0: { cout<<"请分别输入该点大地纬度、经度、大地高(国际单位,纬度经度请按度分秒,分别输入)"<>d1>>f1>>m1>>d2>>f2>>m2>>H; B=PI*(d1+f1/60+m1/3600)/180; L=PI*(d2+f2/60+m2/3600)/180; W=sqrt(1-e*e*sin(B)*sin(B)); N=a/W; X=(N+H)*cos(B)*cos(L); Y=(N+H)*cos(B)*sin(L); Z=(N*(1-e*e)+H)*sin(B); cout<<"空间直角坐标系中X,Y,Z,坐标值(国际单位)分别为"<>X>>Y>>Z; double t,m,n, P,k,B0; m=Z/sqrt(X*X+Y*Y); //t0 B0=atan(m); //初值 n=Z/sqrt(X*X+Y*Y);

地震波使用说明

地震波使用说明 此目录下提供了四类场地土的地震波时程曲线和上海人工波。 按照场地土类型(1,2,3或4),选择时程曲线。在定义时程工况时,对于多遇或罕遇地震,按比例调整时程曲线的最大值。中国抗震规范规定,作为抗震计算中底部剪力法和振型分解反应谱法的补充方法,对于特别不规则,特别重要的和较高的结构应采用时程分析法进行多遇地震下的补充计算。 可取多条时程曲线的计算结果的平均值与振型分解反应谱法计算结果的较大值。 采用时程分析法时,应咱建筑场地类别和设计地震分组选用不少于二组的实际强震记录和一组人工模拟的加速度时程曲线,其平均地震影响系数曲线应与振型分解反应谱法所采用的地震影响系数曲线在统计意义上相符。 其加速度时程最大值可按规范中对于多遇和罕遇地震在不同烈度下的值。 弹性时程分析时,每条时程曲线计算所得结构底部剪力不应小于振型分解反应谱法计算结果的65%,多条时程曲线计算所得结构底部剪力的平均值不应小于振型分解反应谱法计算结果的80% 。 可使用弹塑性时程分析法计算罕遇地震下结构的变形。 时程分析是一个承受随时间变化的指定荷载结构的逐步动态反应分析,可以是线性或非线性的。 此章对时程分析进行一般的描述,特别是线性时程分析。 定义时程函数 用户可使用“从文件中添加函数”,导入已定义的文本文件,即实测的时程曲线;也可使用程序内置的时程函数。

时程函数定义对话框 时程函数定义对话框中的条目解释如下: ?函数名 通过在编辑框中直接键入以指定或修改时程函数的名称。 ?函数文件 1.在函数文件域点击浏览按钮以调出一个对话框,在此可找出包含时程函数的 文本文件名。注意文件名显示在文件名框中 2.在 "要跳过的标题行" 编辑框中输入一个希望ETABS在文本文件中跳过的 行数。 3.在 "每行要跳过的前缀字符" 编辑框中输入一个希望ETABS在文本文件中 每行要跳过的字符数。 4.在 "每行的点数" 编辑框中输入一个数告诉ETABS文本文件每行的绘图点 数。

编译程序和解释程序

编译程序和解释程序 程序设计语言处理系统是系统软件中的一大类,它随被处理的语言及其处理方法和处理过程的不同而不同。任何一个语言处理系统通常都包括一个编译程序,它把一种语言的程序翻译成等价的另一种语言的程序。被翻译的语言和程序分别称为源语言和源程序,而翻译生成的语言和程序分别称为目标语言和目标程序,按照不同的翻译处理方法,翻译程序可分为以下三类: ⑴从汇编语言到及其语言的翻译程序,称为汇编程序。 ⑵按源程序中语句的执行顺序,逐条翻译并立即执行相关功能的处理程序、称为解释程序。 ⑶从高级语言到汇编语言(或机器语言)的翻译程序,称为编译语言。 除了翻译程序外,语言处理系统通常还包括连接程序(将多个分别编译或汇编过的目标程序和库文件进行组合)和装入程序(将目标程序装入内存并启动执行)等。 由于汇编语言的指令与机器语言指令大体上保持一一对应关系,因而汇编程序较为简单,一下只对解释程序和编译程序做简单说明。 1、解释程序 解释程序对源程序进行翻译的方法相当于两种自然语言间的口译。解释程序对源程序的语句从头到尾逐句扫描、逐句翻译、并且翻译一句执行一句,因而这种翻译方式并不形成机器语言形式的目标程序。 解释程序的优点是实现算法简单,且易于在解释过程中灵活方便地插入所需要的修改和测试措施;其缺点是运行效率低。例如,对于源程序中需要多次重复执行的语句,解释程序将要反复的取出、翻译和执行它们。根据这些特点,解释程序通常适合于以交互方式工作的、或在测试状态下运行的、或运行时间与解释时间差不多的程序。 2、编译程序 编译程序对源程序进行解释的方法相当于笔译。在编译程序的执行过程中,要对源程序扫描一遍或几遍,最终形成一个可在具体计算机上执行的目标程序。编译程序的实现算法较为复杂,但通过编译程序的处理可以产生高效运行的目标程序,并把它保存在磁盘上,以备多次执行。因此,编译程序更适合于翻译那些规模大、结构复杂、运行时间长的大的应用程序。

坐标系转换问题

坐标系转换问题--WGS84坐标 BJ54 BJ80 2012-10-18 14:37 对于坐标系的转换,给很多GPS的使用者造成一些迷惑,尤其是对于刚刚接触的人,搞不明白到底是怎么一回事。我对坐标系的转换问题,也是一知半解,对于没学过测量专业的人来说,各种参数的搞来搞去实在让人迷糊。在我有限的理解范围内,我想在这里简单介绍一下,主要是抛砖引玉,希望能引出更多的高手来指点迷津。 我们常见的坐标转换问题,多数为WGS84转换成北京54或西安80坐标系。其中WGS84坐标系属于大地坐标,就是我们常说的经纬度坐标,而北京54或者西安80属于平面直角坐标。对于什么是大地坐标,什么是平面直角坐标,以及他们如何建立,我们可以另外讨论。这里不多啰嗦。 那么,为什么要做这样的坐标转换呢? 因为GPS卫星星历是以WGS84坐标系为根据而建立的,我国目前应用的地形图却属于1954年北京坐标系或1980年国家大地坐标系;因为不同坐标系之间存在着平移和旋转关系(WGS84坐标系与我国应用的坐标系之间的误差约为80),所以在我国应用GPS进行绝对定位必须进行坐标转换,转换后的绝对定位精度可由80提高到5-10米。简单的来说,就一句话,减小误差,提高精度。 下面要说到的,才是我们要讨论的根本问题:如何在WGS84坐标系和北京54坐标系之间进行转换。 说到坐标系转换,还要罗嗦两句,就是上面提到过的椭球模型。我们都知道,地球是一个近似的椭球体。因此为了研究方便,科学家们根据各自的理论建立了不同的椭球模型来模拟地球的形状。而且我们刚才讨论了半天的各种坐标系也是建立在这些椭球基准之上的。比如北京54坐标系采用的就是克拉索夫斯基椭球模型。而对应于WGS84坐标系有一个WGS84椭球,其常数采用IUGG第17届大会大地测量常数的推荐值。WGS84椭球两个最常用的几何常数:长半轴:6378137±2(m);扁率:1:298.257223563 之所以说到半长轴和扁率倒数是因为要在不同的坐标系之间转换,就需要转换不同的椭球基准。这就需要两个很重要的转换参数dA、dF。 dA的含义是两个椭球基准之间半长轴的差;dF的含义是两个椭球基准之间扁率倒数的差。在进行坐标转换时,这两个转换参数是固定的,这里,我们给出在进行84—〉54,84—〉80坐标转换时候的这两个参数如下: WGS84>北京54:DA:-108;DF:0.0000005 WGS84>西安80:DA: -3 ;DF: 0 椭球的基准转换过来了,那么由于建立椭球的原点还是不一致的,还需要在dXdYdZ这三个空间平移参量,来将两个不同的椭球原点重合,这样一来才能使两个坐标系的椭球完全转换过来。而由于各地的地理位置不同,所以在各个地方的这三个坐标轴平移参量也是不同的,因此需要用当地的已知点来计算这三个参数。具体的计算方法是: 第一步:搜集应用区域内GPS“B”级网三个以上网点WGS84坐标系B、L、H值及我国坐标系(BJ54或西安80)B、L、h、x值。(注:B、L、H分别为大地坐标系中的大地纬度、大地经度及大地高,h、x分别为大地坐标系中的高程及高程异常。各参数可以通过各省级测绘局或测绘院具有“A”级、“B”级网的单位获得。) 第二步:计算不同坐标系三维直角坐标值。计算公式如下: X=(N+H)cosBcosL Y=(N+H)cosBsinL Z=[N(1-e2)+H]sinB

地震波的选取方法 (MIDAS内部技术资料)

地震波的选取方法(MIDAS内部技术资料) (GB50011-2001)的 5.1.2条文说明中规定,正确选择输入的地震加速度时程曲线,要满足地震动三要素的要求,即频谱特性、有效峰值和持续时间要符合规定。 频谱特性可用地震影响系数曲线表征,依据所处的场地类别和设计地震分组确定。这句话的含义是选择的实际地震波所处场地的设计分组(震中距离、震级大小)和场地类别(场地条件)应与要分析的结构物所处场地的相同,简单的说两者的特征周期Tg值应接近或相同。特征周期Tg 值的计算方法见下面公式(1)、(2)、(3)。 加速度有效峰值按建筑抗震设计规范(GB50011-2001)中的表5.1.2-2采用。地震波的加速度有效峰值的计算方法见下面公式(1)及下面说明。持续时间的概念不是指地震波数据中总的时间长度。持时Td的定义可分为两大类,一类是以地震动幅值的绝对值来定义的绝对持时,即指地震地面加速度值大于某值的时间总和,即绝对值|a(t)|>k*g的时间总和,k常取为0.05;另一类为以相对值定义的相对持时,即最先与最后一个k*amax之间的时段长度,k一般取0.3~0.5。不论实际的强震记录还是人工模拟波形,一般持续时间取结构基本周期的5~10倍。 说明: 有效峰值加速度EPA=Sa/2.5(1) 有效峰值速度EPV=Sv/2.5(2) 特征周期Tg=2*EPV/EPA(3)

1978年美国ATC-3规范中将阻尼比为5%的加速度反应谱取周期为0.1-0.5秒之间的值平均为Sa,将阻尼比为5%的速度反应谱取周期为0.5-2秒之间的值平均为Sv(或取1s附近的平均速度反应谱),上面公式中常数2.5为0.05组尼比加速度反应谱的平均放大系数。 上述方法使用的是将频段固定的方法来求EPA和EPV,1990年的《中国地震烈度区划图》采用了不固定频段的方法分析各条反应谱确定其相应的平台频段。具体做法是:在对数坐标系中同时做出绝对加速度反应谱和拟速度反应谱,找出加速度反应谱平台段的起始周期T0和结束周期T1,然后在拟速度反应谱上选定平台段,其起始周期为T1(即加速度反应谱平台段的结束周期T1),结束周期为T2,将加速度反应谱在T0至T1之间的谱值求平均得Sa,拟速度反应谱在T1至T2之间的谱值求平均得Sv,加速度反应谱和拟速度反应谱在平台段的放大系数采用2.5,按公式(1)、(2)、(3)求得EPA、EPV、Tg。 在MIDAS程序中提供将地震波转换为绝对加速度反应谱和拟速度反应谱的功能(工具地震波数据生成器,生成后保存为SGS文件),用户可利用保存的SGS文件(文本格式文件)根据上面所述方法计算Sv、Sa、Tg。通过Tg值可判断该地震波是否适合当地场地和地震设计分组,然后将抗震规范中表5.1.2-2中的EPA值与Sa相比求出调整系数,将其代入到地震波调整系数中。将地震波转换为绝对加速度反应谱和拟速度反应谱时注意周期范围要到6秒(建筑抗震规范规定)。 建筑抗震设计规范5.1.2条中规定,采用时程分析方法时,应按照场地类别和设计地震分组选用不少于二组的实际强震记录和一组人工模拟

编译和解释的区别

编译和解释的区别 编译和解释的区别在哪?编译器是把源程序的每一条语句都编译成机器语言,并保存成 二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运 行速度是不如编译后的程序运行的快的. 这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的 形式) 一、低级语言与高级语言 最初的计算机程序都是用0和1的序列表示的,程序员直接使用的是机器指令,无需 翻译,从纸带打孔输入即可执行得到结果。后来为了方便记忆,就将用0、1序列表示的机器指令都用符号助记,这些与机器指令一一对应的助记符就成了汇编指令,从而诞生了汇编语言。无论是机器指令还是汇编指令都是面向机器的,统称为低级语言。因为是针对特定机器的机器指令的助记符,所以汇编语言是无法独立于机器(特定的CPU体系结构)的。但汇 编语言也是要经过翻译成机器指令才能执行的,所以也有将运行在一种机器上的汇编语言翻译成运行在另一种机器上的机器指令的方法,那就是交叉汇编技术。 高级语言是从人类的逻辑思维角度出发的计算机语言,抽象程度大大提高,需要经过 编译成特定机器上的目标代码才能执行,一条高级语言的语句往往需要若干条机器指令来完成。高级语言独立于机器的特性是靠编译器为不同机器生成不同的目标代码(或机器指令)来实现的。那具体的说,要将高级语言编译到什么程度呢,这又跟编译的技术有关了,既可以编译成直接可执行的目标代码,也可以编译成一种中间表示,然后拿到不同的机器和系统上去执行,这种情况通常又需要支撑环境,比如解释器或虚拟机的支持,Java程序编译成bytecode,再由不同平台上的虚拟机执行就是很好的例子。所以,说高级语言不依赖于机器,是指在不同的机器或平台上高级语言的程序本身不变,而通过编译器编译得到的目标代码去适应不同的机器。从这个意义上来说,通过交叉汇编,一些汇编程序也可以获得不同机器之间的可移植性,但这种途径获得的移植性远远不如高级语言来的方便和实用性大。 二、编译与解释 编译是将源程序翻译成可执行的目标代码,翻译与执行是分开的;而解释是对源程序的翻译与执行一次性完成,不生成可存储的目标代码。这只是表象,二者背后的最大区别是:对解释执行而言,程序运行时的控制权在解释器而不在用户程序;对编译执行而言,运行时 的控制权在用户程序。 解释具有良好的动态特性和可移植性,比如在解释执行时可以动态改变变量的类型、 对程序进行修改以及在程序中插入良好的调试诊断信息等,而将解释器移植到不同的系统上,则程序不用改动就可以在移植了解释器的系统上运行。同时解释器也有很大的缺点,比如执行效率低,占用空间大,因为不仅要给用户程序分配空间,解释器本身也占用了宝贵的系统资源。 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时 计算机可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运 行速度是不如编译后的程序运行的快的.

人工智能发展史解读

人工智能学科诞生于20世纪50年代中期,当时由于计算机的产生与发展,人们开始了具有真正意义的人工智能的研究。(虽然计算机为AI提供了必要的技术基础,但直到50年代早期人们才注意到人类智能与机器之间的联系. Norbert Wiener是最早研究反馈理论的美国人之一.最熟悉的反馈控制的例子是自动调温器.它将收集到的房间温度与希望的温度比较,并做出反应将加热器开大或关小,从而控制环境温度.这项对反馈回路的研究重要性在于: Wiener从理论上指出,所有的智能活动都是反馈机制的结果.而反馈机制是有可能用机器 模拟的.这项发现对早期AI的发展影响很大。) 1956年夏,美国达特莫斯大学助教麦卡锡、哈佛大学明斯基、贝尔实验室申龙、IBM公司信息研究中心罗彻斯特、卡内基——梅隆大学纽厄尔和赫伯特.西蒙、麻省理工学院塞夫里奇和索罗门夫,以及IBM公司塞缪尔和莫尔在美国达特莫斯大学举行了以此为其两个月的学术讨论会,从不同学科的角度探讨人类各种学习和其他职能特征的基础,并研究如何在远离上进行精确的描述,探讨用机器模拟人类智能等问题,并首次提出了人工智能的术语。从此,人工智能这门新兴的学科诞生了。这些青年的研究专业包括数学、心理学、神经生理学、信息论和电脑科学,分别从不同角度共同探讨人工智能的可能性。他们的名字人们并不陌生,例如申龙是《信息论》的创始人,塞缪尔编写了第一个电脑跳棋程序,麦卡锡、明斯基、纽厄尔和西蒙都是“图灵奖”的获奖者。 这次会议之后,在美国很快形成了3个从事人工智能研究的中心,即以西蒙和纽威尔为首的卡内基—梅隆大学研究组,以麦卡锡、明斯基为首的麻省理工学院研究组,以塞缪尔为首的IBM公司研究组。随后,这几个研究组相继在思维模型、数理逻辑和启发式程序方面取得了一批显著的成果: (1)1956年,纽威尔和西蒙研制了一个“逻辑理论家“(简称LT)程序,它将每个问题都表示成一个树形模型,然后选择最可能得到正确结论的那一枝来求解问题,证明了怀特黑德与罗素的数学名著《数学原理》的第2章中52个定理中的38个定理。1963年对程序进行了修改,证明了全部定理。这一工作受到了人们的高度评价,被认为是计算机模拟人的高级思维活动的一个重大成果,是人工智能的真正开端。 (2)1956年,塞缪尔利用对策论和启发式搜索技术编制出西洋跳棋程序Checkers。该程序具有自学习和自适应能力,能在下棋过程中不断积累所获得的经验,并能根据对方的走步,从许多可能的步数中选出一个较好的走法。这是模拟人类学习过程第一次卓有成效的探索。这台机器不仅在1959年击败了塞缪尔本人,而且在1962年击败了美国一个州的跳棋冠军,在世界上引起了大轰动。这是人工智能的一个重大突破。 (3)1958年,麦卡锡研制出表处理程序设计语言LISP,它不仅可以处理数据,而且可以方便的处理各种符号,成为了人工智能程序语言的重要里程碑。目前,LISP语言仍然是研究人工智能何开发智能系统的重要工具。 (4)1960年纽威尔、肖和西蒙等人通过心理学实验,发现人在解题时的思维过程大致可以分为3个阶段:1。首先想出大致的解题计划;2。根据记忆中的公理、定理和解题规划、按计划实施解题过程;3.在实施解题过程中,不断进行方法和目标分析,修改计划。这是一个具有普遍意义的思维活动过程,其中主要是方法和目的的分析。(也就是人们在求解数学问题通常使用试凑的办法进行的试凑是不一定列出所有的可能性,而是用逻辑推理来迅速缩小搜索范围的办法进行的),基于这一发现,他们研制了“通用问题求解程序GPS”,用它来解决不定积分、三角函数、代数方程等11种不同类型的问题,并首次提出启发式搜索概念,从而使启发式程序具有较普遍的意义。

坐标转换源代码--GPS定位程序(C--)

坐标转换源代码--GPS定位程序(C++) GPS数据处理中为了满足不同的需要,处理的数据要进行坐标转换,得到在不同坐标系统下的结果,下面是笛卡尔坐标系,大地坐标系,站心地平坐标系(线型和极坐标形式)之间的转换源代码: 头文件: #ifndef _COORDCOVERT_H #define _COORDCOVERT_H #include "stdlib.h" //WGS-84椭球体参数 const double a=6378137.0;//长半轴 const double flattening=1/298.257223563;//扁率 const double delta=0.0000001; typedef struct tagCRDCARTESIAN{ double x; double y; double z; }CRDCARTESIAN; typedef CRDCARTESIAN *PCRDCARTESIAN;

//笛卡尔坐标系 typedef struct tagCRDGEODETIC{ double longitude; double latitude; double height; }CRDGEODETIC; typedef CRDGEODETIC *PCRDGEODETIC; //大地坐标系 typedef struct tagCRDTOPOCENTRIC{ double northing; double easting; double upping; }CRDTOPOCENTRIC; typedef CRDTOPOCENTRIC *PCRDTOPOCENTRIC; //站心地平坐标系(线坐标形式) typedef struct tagCRDTOPOCENTRICPOLAR{ double range;

编译原理第二版课后习答案

《编译原理》课后习题答案第一章 第 1 章引论 第 1 题 解释下列术语: (1)编译程序 (2)源程序 (3)目标程序 (4)编译程序的前端 (5)后端 (6)遍 答案: (1)编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。 (2)源程序:源语言编写的程序称为源程序。 (3)目标程序:目标语言书写的程序称为目标程序。 (4)编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶 段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符 号表管理等工作。 (5)后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。 (6)遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。 第 2 题 一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程 序的总体结构图。 答案: 一个典型的编译程序通常包含 8 个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。其各部分的主要功能简述如下。 词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机表达形式。 语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。 语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。 中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式 的中间语言代码,如三元式或四元式。 中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。 目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。 表格管理程序:负责建立、填写和查找等一系列表格工作。表格的作用是记录源程序的 各类信息和编译各阶段的进展情况,编译的每个阶段所需信息多数都从表格中读取,产生的中间结果都记录在相应的表格中。可以说整个编译过程就是造表、查表的工作过程。需要指出的是,这里的“表格管理程序”并不意味着它就是一个独立的表格管理模块,而是指编译程序具有的表格管理功能。 错误处理程序:处理和校正源程序中存在的词法、语法和语义错误。当编译程序发现源

反应谱理论与人工模拟地震波技术简介

第33卷第26期?106?2007年9月山西建筑 SHANXIARCHITECTURE Vd33No.26 Sep.2007 文章编号:1009—6825{2007)26—0106—03 反应谱理论与人工模拟地震波技术简介 邱玉国王玉富 摘要:介绍了反应谱理论的发展历程和国内外研究现状,分析了研究问题的思路,指出了利用反应谱理论来解决实际工程时遇到的问题,并简单介绍了国外对人工模拟地震波技术的应用和研究,为抗震理论提供了参考依据。 关键词:反应谱理论,地震波,随机振动,非弹性地震波 中图分类号:TU352文献标识码:A 1概述 反应谱理论是建筑结构抗震设计的重要理论基础之一。从20世纪50年代开始,反应谱理论逐渐成为结构抗震设计的重要方法,经过50多年的发展,目前这种方法已经为世界上大多数国家的设计规范所采用。但是,由于地震产生机理和作用效果的复杂性,采用反应谱理论进行分析和设计与工程实践还存在很多与实际不相符合之处。此外,对于反应地震重要特性的时间问题,反应谱法也无能为力。 人工模拟地震波技术是近年来才发展起来的一项新的结构抗震设计的技术手段,目前主要用于计算机模拟和特别重要结构模型的振动台试验。它能够通过模拟地震波的特性来用于对结构进行时程分析,是~种新兴的、具有革命性意义的试验手段。 图2数值模拟结果2.3计算结果分析 通过数值模拟和试验得到瓦斯管承载力等数值如表2所示。 表2数值模拟和试验结果 I研究方法承载力仆但a最大应变/%最大剪应力/SPaI数值模拟7.14O.0842160室内试验6.620.0964 3结语 通过对丁集煤矿瓦斯管材质和整体抗外压的试验研究以及数值模拟分析,可以获得如下重要结论: 1)通过对管材材质的试验研究表明:工作管材质采用Q345,尺寸为柘30rfllTl×14inln,能够满足强度和稳定性要求。 2)瓦斯管整体抗外压试验结果表明:工作管抗外压承载力为6,62MPa;通过大变形有限元数值计算,采用变形稳定性控制其承载力,结果为7.14MPa,两者数值十分接近,说明用文中方法模拟大直径瓦斯管的承载力是可行的。 参考文献: [1]李正来.瓦斯抽排钻孔定向技术的改进[J].安徽科技,2006(3):49—50. [2]汪东生.瓦斯抽排技术治理本煤层采空区瓦斯涌出的实践[J].煤矿安全,2006(1):13—15. [3]张敦伍,任胜杰.瓦斯抽排钻孔防偏斜实践[J].矿业安全与环保,2005(8):67—68. [4]刘克功,范再良,赵新华.采空区瓦斯抽排法治理综放面瓦斯超限[J].煤,1998(2):48—50. Studyingonradialstabilitynumericalsimulationoflargepipeinmine TONGWen-lin Abstract:TheexperimentalandvaluesimulationmethodshavestudiedtheDingiicoalminelargediametergastubeundermechanicscharacter—istie.Resultindicated:thelargediametergastubeispresentedstabilityfailuremodelinencirclespressesshape,itssafetyfactorreaches3.0,itisdesignthelargediametergastubeandtheconstructpmvidesthereference. Keywords:largediametergastube,experimentalinlab,numericalsimulation,stabilityfailuremodel 收稿日期:2007.04.06 作者简介:邱玉国(1973。),男,工程师,辽宁工程技术大学软件学院,辽宁阜新123000 王玉富(1970.),男,工程师,中铁十九局集团第三工程有限公司,辽宁辽阳111000

《人工智能》课程教学大纲

人工智能》课程教学大纲 、课程基本信息 二、课程教学目标 《人工智能》是计算机科学与技术专业的一门专业拓展课,通过本课程的学习使本科生对人工智能的基本内容、基本原理和基本方法有一个比较初步的认识,掌握人工智能的基本概念、基本原理、知识的表示、推理机制和智能问题求解技术。启发学生开发软件的思路,培养学生对相关的智能问题的分析能力,提高学生开发应用软件的能力和水平。 三、教学学时分配

四、教学内容和教学要求 第一章人工智能概述(3 学时) (一)教学要求 1.掌握人工智能的基本概念; 2.理解人工智能的发展状况。 3.理解人工智能的基本技术; 4.了解人工智能的研究途径与方法; 5.了解人工智能的分支领域; (二)教学重点与难点教学重点:人工智能的基本技术。教学难点:三大学派的研究途径与方法。 (三)教学内容 第一节人工智能的基本概念 1.什么是人工智能 2.强人工智能与弱人工智能 3.脑智能和群智能 4.符号智能和计算智能 第二节人工智能发展概况 1.人工智能学科的产生

2.人工智能学科的发展 3.人工智能三大学派 第三节人工智能研究途径与方法 1.人工智能的研究目标 2.人工智能的研究方法 3.人工智能的研究内容 第四节人工智能基本技术 1.推理技术 2.搜索技术 3.知识库技术 4.归纳技术 5.联想技术第五节人工智能的应用 1.难题求解 2.机器定理证明 3.自动程序设计 4.模式识别 5.机器翻译 6.智能管控 7.智能决策 8.智能人机接口 第六节人工智能的影响 1.人工智能对人类的影响 2.人工智能对社会的影响 本章习题要点:对基本概念、技术、方法的理解。 第二章智能程序设计语言(5 学时)(一)教学要求 1.了解常见的几种人工智能程序设计语言;

人工智能开发教程有哪些

人工智能开发教程有哪些 就像大多数软件应用程序的开发一样,开发人员也在使用多种语言来编写人工智能项目,但是现在还没有任何一种完美的编程语言,是可以完全速配人工智能项目的。不过,大家公认的人工智能首选语言是Python,看看教程吧。 python全新基础视频教程 https://https://www.360docs.net/doc/9a6286714.html,/s/1i5kvG5f python课程教学高手晋级视频h ttps://https://www.360docs.net/doc/9a6286714.html,/s/1htJW4KG python高级视频教程https://https://www.360docs.net/doc/9a6286714.html,/s/1nvf3NOt Python的优点: 有丰富多样的库和工具; 支持算法测试,而无需实现它们; Python的面向对象设计提高了程序员的生产力; 与Java和C ++相比,Python的开发速度更快。 Python的缺点: 习惯使用Python来编写人工智能程序的程序员很难适应其它语言的语法; 与c++和Java不同的是,Python需要在解释器的帮助下工作,这就会拖

慢在AI开发中的编译和执行速度; 不适合移动计算。 看完Python教程,也了解了Python语言优缺点的你,大概也还是很想了解人工智能目前的发展状况吧?毕竟,只有人工智能发展好了,我们未来在人工智能这个领域中,也才能得到更好的发展。 人工智能在不久的将来,或者在未来几年,一定会得到质的提升。人工智能得到了全球从学术界到应用领域的高度重视,所以现在正是学习人工智能的黄金时期!在人工智能人才呈现巨大缺口的市场下,企业给予人才的薪酬普遍高于全国平均薪酬。 从目前的情况来看,企业就算给出高薪也很难找到合适的人工智能人才。要想拿到更高的薪资,要想过上更好的生活,那你就不得不选择千锋人工智能开发培训学校了: 经过前期企业调研,将潮流技术完美融入人工智能开发课程体系,实用性强,不掺杂无用讲解,只为给学员极致的教学体验。 而且课程优势突出,注重理论更重实践,融入多家名企案例,结合项目真实

54坐标系、80坐标系、84坐标系之间的转换关系

工程施工过程中,常常会遇到不同坐标系统间,坐标转换的问题。目前国内常见的转换有以下几种:1,大地坐标(BLH)对平面直角坐标(XYZ);2,北京54全国80及WGS84坐标系的相互转换;3,任意两空间坐标系的转换。其中第2类可归入第三类中。所谓坐标转换的过程就是转换参数的求解过程。常用的方法有三参数法、四参数法和七参数法。以下对上述三种情况作详细描述如下: 1,大地坐标(BLH)对平面直角坐标(XYZ) 常规的转换应先确定转换参数,即椭球参数、分带标准(3度,6度)和中央子午线的经度。椭球参数就是指平面直角坐标系采用什么样的椭球基准,对应有不同的长短轴及扁率。一般的工程中3度带应用较为广泛。对于中央子午线的确定有两种方法,一是取平面直角坐标系中Y坐标的前两位*3,即可得到对应的中央子午线的经度。如x=3250212m,y=395121123m,则中央子午线的经度=39*3=117度。另一种方法是根据大地坐标经度,如果经度是在155.5~185.5度之间,那么对应的中央子午线的经度=(155.5+185.5)/2=117度,其他情况可以据此3度类推。 另外一些工程采用自身特殊的分带标准,则对应的参数确定不在上述之列。 确定参数之后,可以用软件进行转换,以下提供坐标转换的程序下载。 2,北京54全国80及WGS84坐标系的相互转换 这三个坐标系统是当前国内较为常用的,它们均采用不同的椭球基准。 其中北京54坐标系,属三心坐标系,大地原点在苏联的普而科沃,长轴6378245m,短轴6356863,扁率1/298.3;西安80坐标系,属三心坐标系,大地原点在陕西省径阳县永乐镇,长轴6378140m,短轴6356755,扁率1/298.25722101;WGS84坐标系,长轴6378137.000m,短轴6356752.314,扁率1/298.257223563。由于采用的椭球基准不一样,并且由于投影的局限性,使的全国各地并不存在一至的转换参数。对于这种转换由于量较大,有条件的话,一般都采用GPS联测已知点,应用GPS软件自动完成坐标的转换。当然若条件不许可,且有足够的重合点,也可以进行人工解算。详细方法见第三类。 3,任意两空间坐标系的转换 由于测量坐标系和施工坐标系采用不同的标准,要进行精确转换,必须知道至少3个重合点(即为在两坐标系中坐标均为已知的点。采用布尔莎模型进行求解。布尔莎公式: 对该公式进行变换等价得到: 解算这七个参数,至少要用到三个已知点(2个坐标系统的坐标都知道),采用间接平差模型进行解算: 其中:V 为残差矩阵; X 为未知七参数; A 为系数矩阵; 解之:L 为闭合差 解得七参数后,利用布尔莎公式就可以进行未知点的坐标转换了,每输入一组坐标值,就能求出它在新坐标系中的坐标。但是要想GPS观测成果用于工程或者测绘,还需要将地方直

编译原理练习题参考答案

一、填空题: 1-01.编译程序的工作过程一般可以划分为词法分析,语法分析,语义分析,之间代码生成,代码优化等几个基本阶段,同时还会伴有表格处理和出错处理 . 1-02.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序 ,则其翻译程序称为编译程序. 1-03.编译方式与解释方式的根本区别在于是否生成目标代码 . 1-04.翻译程序是这样一种程序,它能够将用甲语言书写的程序转换成与其等价的用乙语言书写的程 序 . 1-05.对编译程序而言,输入数据是源程序 ,输出结果是目标程序 . 1-06.如果编译程序生成的目标程序是机器代码程序,则源程序的执行分为两大阶段: 编译阶段和运行阶段 .如果编译程序生成的目标程序是汇编语言程序,则源程序的执行分为三个阶段: 编译阶段 , 汇编阶段和运行阶段 . 1-07.若源程序是用高级语言编写的,目标程序是机器语言程序或汇编程序,则其翻译程序称为编译程序。 1-08.一个典型的编译程序中,不仅包括词法分析、语法分析、中间代码生成、代码优化、目标代码生成等五个部分,还应包括表格处理和出错处理。其中,词法分析器用于识别单词。 1-09.编译方式与解释方式的根本区别为是否生成目标代码。 2-01.所谓最右推导是指:任何一步α β都是对α中最右非终结符进行替换的。 2-02.一个上下文无关文法所含四个组成部分是一组终结符号、一组非终结符号、一个开始符号、一组产生式。 2-03.产生式是用于定义语法成分的一种书写规则。 2-04.设G[S]是给定文法,则由文法G所定义的语言L(G)可描述为:L(G)={x│S x,x∈V T*} 。 2-05.设G是一个给定的文法,S是文法的开始符号,如果S x (其中x∈V*),则称x是文法的一个句型。 2-06.设G是一个给定的文法,S是文法的开始符号,如果S x(其中x∈V T*),则称x是文法的一个句子。 3-01.扫描器的任务是从源程序中识别出一个个单词符号。 4-01.语法分析最常用的两类方法是自上而下和自下而上分析法。 4-02.语法分析的任务是识别给定的终极符串是否为给定文法的句子。 4-03.递归下降法不允许任一非终极符是直接左递归的。 4-04.自顶向下的语法分析方法的关键是如何选择候选式的问题。 4-05.递归下降分析法是自顶向上分析方法。 4-06.自顶向下的语法分析方法的基本思想是:从文法的开始符号开始,根据给定的输入串并按照文法的产生式一步一步的向下进行直接推导,试图推导出文法的句子,使之与给定的输入串匹配。 5-01.自底向上的语法分析方法的基本思想是:从给定的终极符串开始,根据文法的规则一步一步的向上进行直接归约,试图归约到文法的开始符号。 5-02.自底向上的语法分析方法的基本思想是:从输入串入手,利用文法的产生式一步一步地向上进行直接归约,力求归约到文法的开始符号。

相关文档
最新文档