钢筋混凝土梁正截面受弯性能实验报告(借鉴资料)

钢筋混凝土梁正截面受弯性能实验报告(借鉴资料)
钢筋混凝土梁正截面受弯性能实验报告(借鉴资料)

钢筋混凝土梁正截面受弯性能实验报告

一、实验记录结果表

应变与挠度记录表

测点荷载钢筋

应变

混凝土应变

με

挠度

mm

荷载级数

荷载值

1 2 1 2 3 4 1 2 3 4 5 KN μ

ε

预载0 -1 1 0 1 0 0 0.0030000.003 4 13 13 21 6 -3 -12 0.0030.1770.007-0.230.017 8 41 41 64 19 -8 -32 -0.060.3630.007-0.060

12 98 83 141 46 -10 -59 -0.1530.5570.0070.10.017

标准加载14 129 107 190 65 -9 -72 -0.1970.680.0070.20.013 16 162 130 224 89 -5 -83 -0.2370.80.0070.310.023 18 195 156 289 116 -3 -98 -0.2530.920.0070.4270.023 20 232 183 351 144 2 -112 -0.273 1.040.0130.5270.023 22 270 214 417 179 9 -127 -0.283 1.1630.0130.7670.017 24 311 245 497 224 19 -147 -0.31 1.30.090.7870.02 26 349 275 570 263 30 -155 -0.333 1.4370.2170.9730.023 28 386 305 643 300 37 -169 -0.36 1.5570.34 1.0270.017 32 450 368 769 361 51 -198 -0.38 1.820.583 1.270.017 34 487 401 838 395 56 -215 -0.37 1.940.727 1.407-0.007

破坏加载38 552 475 964 459 68 -245 -0.38 2.217 1.043 1.68-0.013 42 618 540 1078 524 80 -275 -0.383 2.547 1.327 1.937-0.01 46 685 584 1208 610 96 -306 -0.38 2.783 1.637 2.237-0.007 50 750 655 1386 687 115 -335 -0.38 3.393 1.943 2.543-0.007 54 817 714 1510 776 139 -367 -0.38 3.403 2.273 2.880

58 886 783 1645 853 153 -405 -0.38 4.2 2.74 3.413-0.003 62 949 864 1781 928 164 -439 -0.39 4.757 3.42 3.973-0.003 66 1011 914 1895 991 172 -475 -0.3979.373 3.913 4.503-0.003

70 1180 2487 2113 1133 273 -500 -0.4037.057 4.51 5.230.003

二、实验现象描述及裂缝分布图

如图,随着荷载的逐渐增大,梁逐渐出现裂缝并变大,且裂缝成斜向分布。当最

终梁被破坏是,斜裂缝贯穿整个梁。

三、荷载挠度曲线、荷载应变曲线

1、钢筋荷载—应变曲线图

2、混凝土荷载—应变曲线图

3、梁荷载—挠度曲线图

四、实验值与理论值对比分析

钢筋混凝土梁在荷载为66KN的时候遭到破坏,为破坏荷载。

受力截面积S=2*0.12=0.24平米

破坏强度=66000/0.24=275MP 与理论值相差不多,所以为合格梁

但是从破坏裂缝来看,主要为斜裂缝,其斜筋配筋不够,应当加强。

排序操作实验报告

数据结构与算法设计 实验报告 (2016 — 2017 学年第1 学期) 实验名称: 年级: 专业: 班级: 学号: 姓名: 指导教师: 成都信息工程大学通信工程学院

一、实验目的 验证各种简单的排序算法。在调试中体会排序过程。 二、实验要求 (1)从键盘读入一组无序数据,按输入顺序先创建一个线性表。 (2)用带菜单的主函数任意选择一种排序算法将该表进行递增排序,并显示出每一趟排序过程。 三、实验步骤 1、创建工程(附带截图说明) 2、根据算法编写程序(参见第六部分源代码) 3、编译 4、调试 四、实验结果图 图1-直接输入排序

图2-冒泡排序 图3-直接选择排序 五、心得体会 与哈希表的操作实验相比,本次实验遇到的问题较大。由于此次实验中设计了三种排序方法导致我在设计算法时混淆了一些概念,设计思路特别混乱。虽然在理清思路后成功解决了直接输入和直接选择两种算法,但冒泡

排序的算法仍未设计成功。虽然在老师和同学的帮助下完成了冒泡排序的算法,但还需要多练习这方面的习题,平时也应多思考这方面的问题。而且,在直接输入和直接选择的算法设计上也有较为复杂的地方,对照书本做了精简纠正。 本次实验让我发现自己在算法设计上存在一些思虑不周的地方,思考问题过于片面,逻辑思维能力太过单薄,还需要继续练习。 六、源代码 要求:粘贴个人代码,以便检查。 #include #define MAXSIZE 100 typedef int KeyType; typedef int DataType; typedef struct{ KeyType key; DataType data; }SortItem,SqList[MAXSIZE]; /*******直接插入顺序表*******/ void InsertSort(SqList L,int n) { int i,j,x; SortItem p; for(i=1;i

钢筋混凝土梁正截面

钢筋混凝土梁正截面实验 一、实验目的 1.通过对钢筋混凝土梁的承载力、应变、挠度及裂缝等参数的测定,熟悉钢筋 混凝土受弯构件正截面破坏的一般过程及其特征,加深对书本理论知识的理解。 2.进一步学习常规的结构实验仪器的选择和使用操作方法,培养实验基本技 能。 3.掌握实验数据的整理、分析和表达方法,提高学生分析与解决问题的能力。 二、实验设备和仪器 1.试件—钢筋混凝土简支梁1根、尺寸及配筋如图所示。 混凝土设计强度等级:C25 钢筋:纵筋2φ8,Ⅰ级(实际测得钢筋屈服强度为390Mpa,极限抗拉强度为450 Mpa)箍筋:φ6@100,Ⅰ级 试件尺寸: b=100mm; h=150mm; L=1100mm; 制作和养护特点:常温制作与养护 2.实验所需仪器: 手动油压千斤顶1个,测力仪及压力传感器各1个;静态电阻应变仪一台;百分表及磁性表座各3个;刻度放大镜、钢卷尺;支座、支墩、分配梁。 三、实验方案 为研究钢筋混凝土梁的受力性能,主要测定其承载力、各级荷载下的挠度

和裂缝开展情况,另外就是测量控制区段的应变大小和变化,找出刚度随荷载变化的规律。 1. 加载装置 梁的实验荷载一般较大,多点加载常采用同步液压加载方法。构件实验荷载的布置应符合设计的规定,当不能相符时,应采用等效荷载的原则进行代换,使构件实验的内力图与设计的内力图相近似,并使两者的最大受力部位的内力值相等。 作用在试件上的实验设备重量及试件自重等应作为第一级荷载的一部分。确定试件的实际开裂荷载和破坏荷载时,应包括试件自重和作用在试件上的垫板,分配梁等加荷设备重量(本实验梁的跨度小,这些影响可忽略不计)。 2. 测试内容及测点布置 测试内容钢筋及混凝土应变、挠度和裂缝宽度等。 本次实验测试具体项目:正截面应变;纵向受力钢筋应变;梁挠度;裂缝发展情况;开裂荷载;屈服荷载;破坏荷载。 纯弯区段混凝土表面布置5个电阻应变片(自行设计测点位置),实验前完成应变片粘贴工作。另外梁内受拉主筋各布有电阻应变片1片。 挠度测点三个:跨中点,支座沉降点(2个)。 3. 实验步骤 实验为半开放式:实验前,学生应仔细阅读实验指导书,了解实验过程,在指导教师解答提问、讲明注意事项之后,由学生自己提具体实施方案,经指导教师同意后,分组(每组不多于10人)自行操作实验。教师给出实验所需的仪器设备并实时指导。 具体实验步骤如下: (1)考察实验场地及仪器设备,听实验介绍,写出实验预习报告。

钢筋混凝土正截面受弯实验报告

《混凝土结构设计原理》实验报告实验一钢筋混凝土受弯构件正截面试验 专业12 级 1 班 姓名学号 二零一四年十月二十六号 仲恺农业工程学院城市建设学院

目录 1.实验目的: (3) 2.实验设备: (3) 试件特征 (3) 试验仪器设备: (4) 3.实验成果与分析,包括原始数据、实验结果数据与曲线、根据实验数据绘制曲线等。 (4) 实验简图 (4) 适筋破坏-配筋截面: (5) 超筋破坏-配筋截面 (4) 少筋破坏-配筋截面 (5) 3.1 适筋破坏: (14) (1)计算的开裂弯矩、极限弯矩与模拟实验的数值对比,分析原因。 (14) (2)绘出试验梁p-f变形曲线。(计算挠度) (15) (3)绘制裂缝分布形态图。(计算裂缝) (16) (4)简述裂缝的出现、分布和展开的过程与机理。 (16) (5)简述配筋率对受弯构件正截面承载力、挠度和裂缝宽度的影响。 (18) 3.2 超筋破坏: (5) (1)计算的开裂弯矩、极限弯矩与模拟实验的数值对比,分析原因。 (5) (2)绘出试验梁p-f变形曲线。(计算挠度) (6) (3)绘制裂缝分布形态图。(计算裂缝) (8) (4)简述裂缝的出现、分布和展开的过程与机理。 (9)

(5)简述配筋率对受弯构件正截面承载力、挠度和裂缝宽度的影响。 (10) 3.3 少筋破坏: (11) (1)计算的开裂弯矩、极限弯矩与模拟实验的数值对比,分析原因。 (11) (2)绘出试验梁p-f变形曲线。(计算挠度) (12) (3)绘制裂缝分布形态图。(计算裂缝) (12) (4)简述裂缝的出现、分布和展开的过程与机理。 (13) (5)简述配筋率对受弯构件正截面承载力、挠度和裂缝宽度的影响。 (14) 4.实验结果讨论与实验小结,即实验报告的最后部分,同学们综合所学知识及实验所得结论认真回答思考题并提出自己的见解、讨论存在的问题。 (18) (院、系)专业班组混凝土结构设计原理课

排序问题实验报告

2010级数据结构实验报告 实验名称:排序 姓名:袁彬 班级: 2009211120 班内序号: 09 学号: 09210552 日期: 2010 年12 月19 日 1.实验要求 试验目的: 通过选择试验内容中的两个题目之一,学习、实现、对比各种排序的算法,掌握各种排序算法的优缺点,以及各种算法使用的情况。 试验内容: 题目一: 使用简单数组实现下面各种排序算法,并进行比较。 排序算法如下: ①插入排序; ②希尔排序 ③冒泡排序; ④快速排序; ⑤简单选择排序; ⑥堆排序 ⑦归并排序 ⑧基数排序 ⑨其他。 具体要求如下: ①测试数据分为三类:正序,逆序,随机数据。 ②对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换记为三次移动)。 ③对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙。 ④对②和③的结果进行分析,验证上述各种算法的时间复杂度。 ⑤编写main()函数测试各种排序算法的正确性。 题目二: 使用链表实现下面各种排序算法,并进行比较。 排序算法如下: ①插入排序; ②冒泡排序; ③快速排序;

④简单选择排序; ⑤其他。 具体要求如下: ①测试数据分为三类:正序,逆序,随机数据。 ②对于这三类数据,比较上述排序算法中关键字的比较次数和移动次数(其中关键字交换记为三次移动)。 ③对于这三类数据,比较上述排序算法中不同算法的执行时间,精确到微妙(选作) ④对②和③的结果进行分析,验证上述各种算法的时间复杂度。 ⑤编写main()函数测试各种排序算法的正确性。 2. 程序分析 2.1 存储结构 程序中每一个算法均是用一个类来表示的,类中有自己的构造函数、排序函数。 程序的储存结构采用数组。数组的第一个位置不存储数据。数据从第二个位置开始。数组中的相对位置为数组的下标。 2.2 关键算法分析 ㈠、关键算法: 1、插入排序函数:Insert s ort(int n) ①、从2开始做循环,依次和前面的数进行比较:for(int i=2;i<=n;i++) ②、如果后面的比前面的小,则进行前移:if(number[i]=1;d=d/2) ②、在自己的间隔中进行简单插入排序,进行循环:for(int i=d+1;i<=n;i++) ③、如果后面的数据比前面的小,进行前移:if(number[i]0;j=j-d) ⑥、大的数据后移:number[j+d]=number[j]; ⑦、哨兵归位:number[j+d]=number[0]; 3、冒泡排序函数:Bubble s ort(int n) ①、设置有序无序的边界点:int pos=n; ②、当边界点不为空进行循环:while(pos!=0) ③、边界点传递给bound:int bound=pos; ④、从开始到边界点进行循环:for(int i=1;inumber[i+1]) ⑥、交换:number[0]=number[i];number[i]=number[i+1];number[i+1]=number[0]; ⑦、从小设置边界点:pos=i; 4、一趟快速排序函数:partion(int first,int end) ①、传递设置整个数据的起点和终点:int i=first;int j=end; ②、设置中轴:number[0]=number[i]; ③、当end大于first进行循环:while(i

编译原理实验报告

编译原理实验报告 班级 姓名: 学号: 自我评定:

实验一词法分析程序实现 一、实验目的与要求 通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。 二、实验内容 根据教学要求并结合学生自己的兴趣和具体情况,从具有代表性的高级程序设计语言的各类典型单词中,选取一个适当大小的子集。例如,可以完成无符号常数这一类典型单词的识别后,再完成一个尽可能兼顾到各种常数、关键字、标识符和各种运算符的扫描器的设计和实现。 输入:由符合或不符合所规定的单词类别结构的各类单词组成的源程序。 输出:把单词的字符形式的表示翻译成编译器的内部表示,即确定单词串的输出形式。例如,所输出的每一单词均按形如(CLASS,VALUE)的二元式编码。对于变量和常数,CLASS字段为相应的类别码;VALUE字段则是该标识符、常数的具体值或在其符号表中登记项的序号(要求在变量名表登记项中存放该标识符的字符串;常数表登记项中则存放该常数的二进制形式)。对于关键字和运算符,采用一词一类的编码形式;由于采用一词一类的编码方式,所以仅需在二元式的CLASS字段上放置相应的单词的类别码,VALUE字段则为“空”。另外,为便于查看由词法分析程序所输出的单词串,要求在CLASS字段上放置单词类别的助记符。 三、实现方法与环境 词法分析是编译程序的第一个处理阶段,可以通过两种途径来构造词法分析程序。其一是根据对语言中各类单词的某种描述或定义(如BNF),用手工的方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应的状态矩阵,该状态矩阵同控制程序便组成了编译器的词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序的另外一种途径是所谓的词法分析程序的自动生成,即首先用正规式对语言中的各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行的语义处理工作,然后由一个所谓词法分析程序的构造程序对上述信息进行加工。如美国BELL实验室研制的LEX就是一个被广泛使用的词法分析程序的自动生成工具。 总的来说,开发一种新语言时,由于它的单词符号在不停地修改,采用LEX等工具生成的词法分析程序比较易于修改和维护。一旦一种语言确定了,则采用手工编写词法分析程序效率更高。 四、实验设计 1)题目1:试用手工编码方式构造识别以下给定单词的某一语言的词法分析程序。 语言中具有的单词包括五个有代表性的关键字begin、end、if、then、else;标识符;整型常数;六种关系运算符;一个赋值符和四个算术运算符。参考实现方法简述如下。 单词的分类:构造上述语言中的各类单词符号及其分类码表。 表I 语言中的各类单词符号及其分类码表 单词符号类别编码类别码的助记符单词值

各种排序实验报告

【一】需求分析 课程题目是排序算法的实现,课程设计一共要设计八种排序算法。这八种算法共包括:堆排序,归并排序,希尔排序,冒泡排序,快速排序,基数排序,折半插入排序,直接插入排序。 为了运行时的方便,将八种排序方法进行编号,其中1为堆排序,2为归并排序,3为希尔排序,4为冒泡排序,5为快速排序,6为基数排序,7为折半插入排序8为直接插入排序。 【二】概要设计 1.堆排序 ⑴算法思想:堆排序只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。将序列所存储的元素A[N]看做是一棵完全二叉树的存储结构,则堆实质上是满足如下性质的完全二叉树:树中任一非叶结点的元素均不大于(或不小于)其左右孩子(若存在)结点的元素。算法的平均时间复杂度为O(N log N)。 ⑵程序实现及核心代码的注释: for(j=2*i+1; j<=m; j=j*2+1) { if(j=su[j]) break; su[i]=su[j]; i=j; } su[i]=temp; } void dpx() //堆排序 { int i,temp; cout<<"排序之前的数组为:"<=0; i--) { head(i,N); } for(i=N-1; i>0; i--) {

temp=su[i]; su[i]=su[0]; su[0]=temp; head(0,i-1); } cout<<"排序之后的数组为:"<

混凝土梁正截面试验报告(全)

钢筋混凝土简支梁的正截面破坏实验报告 一、试验目的及要求 1、学习钢弦传感器,荷载传感器和百分表的使用。 2、通过试验理解适筋梁、少筋梁及超筋梁的破坏过程及破坏特征。 3、观察适筋梁纯弯段在使用阶段的裂缝宽度及裂缝间距。 4、学习如何确定开裂荷载、梁的挠度及极限荷载。 5、掌握试验数据处理的方法并绘制曲线。 二、试验仪器及设备 JMZX-215型钢弦传感器、JMZX-212型钢弦传感器、JMZX-200X综合测试仪、MS-50位移传感器,磁性表座,千斤顶。 三、试验内容及步骤 1、将钢弦传感器的底座黏贴在画好的黏贴的位置,再将钢弦传感器安装在底座上,固定好传感器,调整初始读数,并记录初始读数。 2、将百分表安放好,记录钢弦传感器和百分表的初始读数。 3、加载,并记录每级荷载下的钢弦传感器的读数,每一级荷载下观察裂缝的宽度变化。 四、试验报告 1、计算钢筋混凝土梁的开裂荷载和极限荷载。 开裂荷载计算: 极限荷载计算: 2、简述钢弦传感器的使用步骤,数显百分表的使用方法。 钢弦传感器的使用步骤:1、首先确定测试位置,并画出定位线。2、用标准杆将钢弦底座固定在定位线上。3、将标准杆拆下,并将传感器固定在底座上,并记录初始读数。4、分级加载,记录读数。 数显百分表的使用步骤:1、将数显百分表固定在磁性表座上。2、将磁性表座安放在固定支墩上,调整磁性表座到合适位置,使百分表垂直于被测构件的表面。3、记录初始读数,分级加载,记录读数。 3、实验数据记录(荷载、混凝土应变、跨中位移计读数)。 见试验数据记录表 4、根据实验数据绘制荷载荷载-挠度曲线,荷载-应变曲线,沿截面高度砼应变变化曲线。 5、观察裂缝的发展趋势,并解释原因。 在跨中纯弯段,最先出现裂缝并沿着梁高方向发展,裂缝大致与梁长方向垂直;在支座附近弯剪区域,裂缝大致与梁长方向呈45度角出现并发展延伸。 其原因是:在跨中纯弯段,因为混凝土只承受弯曲应力,混凝土承受的主应力方向与梁长方向平行,故此区域的混凝土因主应力而出现的裂缝方向与主应力方向垂直,沿梁高方向出现并发展;在支座附近弯剪区域,因为混凝土同时承受弯曲应力和剪切应力,混凝土承受的主应力方向与梁长方向呈45度,故此区域的混凝土因主应力而出现的裂缝方向与主应力方向垂直,沿梁长方向呈45度角出现并发展延伸。

钢结构演示实验报告

H型截面受弯构件试验实验报告 姓名:居玥辰 学号:1450711 专业:土木工程专业 组别:H梁-1 实验教师:王伟 理论教师:吴明儿

1.试验目的 1、通过试验掌握钢构件的试验方法,包括试件设计、加载装置设计、 测点布置、试验结果整理等方法。 2、通过试验观察H型截面受弯构件的失稳过程和失稳模式。将理论极限承载力和实测承载力进行对比,验证弹性临界弯矩公式和规范计算公式。 2.试验原理 2.1受弯构件的主要破坏形式 ●截面强度破坏:即随着弯矩的增大,截面自外向内逐渐达到屈 服点,截面弹性核逐渐减小,最后相邻截面在玩具作用下几乎 可以自由转动,此时截面即达到了抗弯承载力极限,发生强度 破坏;另外若构件剪力最大处达到材料剪切屈服值,也视为强 度破坏。 ●整体失稳:单向受弯构件在荷载作用下,虽然最不利截面的弯 矩或者与其他内力的组合效应还低于截面的承载强度,但构件 可能突然偏离原来的弯曲变形平面,发生侧向挠曲或者扭转, 即构件发生整体失稳。 ●局部失稳:如果构件的宽度与厚度的比值太大,在一定荷载条 件下,会出现波浪状的鼓曲变形,即局部失稳;局部失稳会恶 化构件的受力性能,是构件的承载强度不能充分发挥。 2.2基本微分方程 距端点为z处的截面在发生弯扭失稳后,截面的主轴和纵轴的切线方

向与变形前坐标轴之间产生了一定的夹角,把变形后截面的两主轴方向和构件的纵轴切线方向分别记为,则: 或: ; 第一式是绕强轴的弯曲平衡方程,仅是关于变位的方程,后两式则是变位耦连方程,表现为梁整体失稳的弯扭变形性质。2.3弯扭失稳的临界荷载值 (1)弹性屈曲范围 由上述基本微分方程可求得纯弯梁的弯扭屈曲临界弯矩公式,即: 又由绕y轴弯曲失稳

数据结构内排序实验报告

一、实验目的 1、了解内排序都是在内存中进行的。 2、为了提高数据的查找速度,需要对数据进行排序。 3、掌握内排序的方法。 二、实验内容 1、设计一个程序e xp10—1.cpp实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序 过程。 (1)源程序如下所示: //文件名:exp10-1.cpp #include #define MAXE 20 //线性表中最多元素个数 typedef int KeyType; typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType } RecType; void InsertSort(RecType R[],int n) //对R[0..n-1]按递增有序进行直接插入排序 { int i,j,k; RecType temp; for (i=1;i=0 && temp.key

编译原理实验报告总结

学年第学期《编译原理》实验报告 学院(系):计算机科学与工程学院 班级:11303070A 学号:11303070*** 姓名:无名氏 指导教师:保密式 时间:2016 年7 月

目录 1.实验目的 (1) 2.实验内容及要求 (1) 3.实验方案设计 (1) 3.1 编译系统原理介绍 (1) 3.1.1 编译程序介绍 (2) 3.1.2 对所写编译程序的源语言的描述 (2) 3.2 词法分析程序的设计 (3) 3.3 语法分析程序设计 (4) 3.4 语义分析和中间代码生成程序的设计 (4) 4. 结果及测试分析 (4) 4.1软件运行环境及限制 (4) 4.2测试数据说明 (5) 4.3运行结果及功能说明 (5) 5.总结及心得体会 (7)

1.实验目的 根据Sample语言或者自定义的某种语言,设计该语言的编译前端。包括词法分析,语法分析、语义分析及中间代码生成部分。 2.实验内容及要求 (1)词法分析器 输入源程序,输出对应的token表,符号表和词法错误信息。按规则拼单词,并转换成二元形式;滤掉空白符,跳过注释、换行符及一些无用的符号;进行行列计数,用于指出出错的行列号,并复制出错部分;列表打印源程序;发现并定位词法错误; (2)语法分析器 输入token串,通过语法分析,寻找其中的语法错误。要求能实现Sample 语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while语句、do while语句等。 (3)语义分析和中间代码生成 输入token串,进行语义分析,修改符号表,寻找其中的语义错误,并生 成中间代码。要求能实现Sample语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while 语句、do while语句等。 实验要求:功能相对完善,有输入、输出描述,有测试数据,并介绍不足。3.实验方案设计 3.1 编译系统原理介绍 编译器逐行扫描高级语言程序源程序,编译的过程如下: (1).词法分析 识别关键字、字面量、标识符(变量名、数据名)、运算符、注释行(给人看的,一般不处理)、特殊符号(续行、语句结束、数组)等六类符号,分别归类等待处理。 (2).语法分析 一个语句看作一串记号(Token)流,由语法分析器进行处理。按照语言的文法检查判定是否是合乎语法的句子。如果是合法句子就以内部格式保存,否则报错。直至检查完整个程序。 (3).语义分析 语义分析器对各句子的语法做检查:运算符两边类型是否相兼容;该做哪些类型转换(例如,实数向整数赋值要"取整");控制转移是否到不该去的地方;是

内部排序比较 (实验报告+源程序)C++

实验报告3 实验名称:数据结构与软件设计实习 题目:内部排序算法比较 专业:生物信息学班级:01 姓名:学号:实验日期:2010.07.24 一、实验目的: 比较冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序; 二、实验要求: 待排序长度不小于100,数据可有随机函数产生,用五组不同输入数据做比较,比较的指标为关键字参加比较的次数和关键字移动的次数; 对结果做简单的分析,包括各组数据得出结果的解释; 设计程序用顺序存储。 三、实验内容 对各种内部排序算法的时间复杂度有一个比较直观的感受,包括关键字比较次数和关键字移动次数。 将排序算法进行合编在一起,可考虑用顺序执行各种排序算法来执行,最后输出所有结果。 四、实验编程结果或过程: 1. 数据定义 typedef struct { KeyType key; }RedType; typedef struct { RedType r[MAXSIZE+1]; int length; }SqList; 2. 函数如下,代码详见文件“排序比较.cpp”int Create_Sq(SqList &L) void Bubble_sort(SqList &L)//冒泡排序void InsertSort(SqList &L)//插入排序 void SelectSort(SqList &L) //简单选择排序int Partition(SqList &L,int low,int high) void QSort(SqList &L,int low,int high)//递归形式的快速排序算法 void QuickSort(SqList &L) void ShellInsert(SqList &L,int dk)//希尔排序 void ShellSort(SqList &L,int dlta[ ]) 3. 运行测试结果,运行结果无误,如下图语速个数为20

编 译 原 理 实 验 报 告

编译原理实验报告 课程:编译原理 系别:计算机系 班级:11网络 姓名:王佳明 学号:110912049 教师:刘老师 实验小组:第二组 1

实验一熟悉C程序开发环境、进行简单程序的调试 实验目的: 1、初步了解vc++6.0环境; 2、熟悉掌握调试c程序的步骤: 实验内容: 1、输入下列程序,练习Turbo C 程序的编辑、编译、运行。 #include main() { printf(“Programming is fun.\n”); } 2、分析程序,预测其运行结果,并上机检测你的预测。 #include main() { printf(“*\n”); printf(“* * *\n”); printf(“* * * * *\n”); printf(“* * * * * * *\n”); } 3、下面是一个加法程序,程序运行时等待用户从键盘输入两个整数,然后求出它们的和并输出。观察运行结果(程序输出),上机验证该程序。 #include main() { int a,b,c; printf(“Please input a,b:”); scanf(“%d,%d”,&a,&b); c=a+b; printf(“%d+%d=%d\n”,a,b,c); } 2

实验二词法分析器 一、实验目的: 设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。 二、实验要求: 1.对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。 2.本程序自行规定: (1)关键字"begin","end","if","then","else","while","write","read", "do", "call","const","char","until","procedure","repeat" (2)运算符:"+","-","*","/","=" (3)界符:"{","}","[","]",";",",",".","(",")",":" (4)其他标记如字符串,表示以字母开头的标识符。 (5)空格、回车、换行符跳过。 在屏幕上显示如下: ( 1 , 无符号整数) ( begin , 关键字) ( if , 关键字) ( +, 运算符) ( ;, 界符) ( a , 普通标识符) 三、使用环境: Windows下的visual c++6.0; 四、调试程序: 1.举例说明文件位置:f:、、11.txt目标程序如下: begin x:=9 if x>0 then x:=x+1; while a:=0 do 3

编译原理实验报告一

实验一词法分析程序实现 一、实验目得与要求 通过编写与调试一个词法分析程序,掌握在对程序设计语言得源程序进行扫描得过程中,将字符流形式得源程序转化为一个由各类单词符号组成得流得词法分析方法 二、实验内容 基本实验题目:若某一程序设计语言中得单词包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符与四个算术运算符,试构造能识别这些单词得词法分析程序(各类单词得分类码参见表I)。 表I语言中得各类单词符号及其分类码表 输入:由符合与不符合所规定得单词类别结构得各类单词组成得源程序文件。 输出:把所识别出得每一单词均按形如(CLASS,VALUE)得二元式形式输出,并将结果放到某个文件中。对于标识符与无符号常数,CLASS字段为相应得类别码得助记符;V AL UE字段则就是该标识符、常数得具体值;对于关键字与运算符,采用一词一类得编码形式,仅需在二元式得CLASS字段上放置相应单词得类别码得助记符,V ALUE字段则为“空". 三、实现方法与环境 词法分析就是编译程序得第一个处理阶段,可以通过两种途径来构造词法分析程序.其一就是根据对语言中各类单词得某种描述或定义(如BNF),用手工得方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应得状态矩阵,该状态矩阵连同控制程序一起便组成了编译器得词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序得另外一种途径就是所谓得词法分析程序得自动生成,即首先用正规式对语言中得各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程

数据结构(C语言版)实验报告-(内部排序算法比较)

数据结构与算法》实验报告 一、需求分析 问题描述:在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶,或大概执行时间。试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。 基本要求: (l )对以下 6 种常用的内部排序算法进行比较:起泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、堆排序。 (2 )待排序表的表长不小于100000 ;其中的数据要用伪随机数程序产生;至少要用 5 组不同的输入数据作比较;比较的指标为有关键字参加的比较次数和关键字的移动次数(关键字交换计为 3 次移动)。 ( 3 )最后要对结果作简单分析,包括对各组数据得出结果波动大小的解释。数据测试:二.概要设计 1. 程序所需的抽象数据类型的定义: typedef int BOOL; typedef struct StudentData { } Data; typedef struct LinkList { Data Record[MAXSIZE]; int num; // 存放关键字 int Length; // 数组长度// 用数组存放所有的随机数 // 说明BOOL 是int 的别名 } LinkList int RandArray[MAXSIZE]; // 定义长度为MAXSIZE 的随机数组 void RandomNum() // 随机生成函数

void InitLinkList(LinkList* L) // 初始化链表 // 比较所有排序 2 . 各程序模块之间的层次(调用)关系: BOOL LT(int i, int j,int* CmpNum) // 比较 i 和 j 的大小 void Display(LinkList* L) // 显示输出函数 void ShellSort(LinkList* L, int dlta[], int t,int* CmpNum, int* ChgNum) void QuickSort (LinkList* L, // 快速排序 void HeapSort (LinkList* L, // 堆排序 void BubbleSort(LinkList* L, // 冒泡排序 void SelSort(LinkList* L, // 选择排序 int* CmpNum, int* ChgNum) int* CmpNum, int* ChgNum) int* CmpNum, int* ChgNum) * CmpNum, int* ChgNum) void Compare(LinkList* L,int* CmpNum, int* ChgNum) // 希尔排序

编译原理实验报告

《编译原理》实验报告软件131 陈万全132852

一、需求分析 通过对一个常用高级程序设计语言的简单语言子集编译系统中词法分析、语法分析、语义处理模块的设计、开发,掌握实际编译系统的核心结构、工作流程及其实现技术,获得分析、设计、实现编译程序等方面的实际操作能力,增强设计、编写和调试程序的能力。 通过开源编译器分析、编译过程可视化等扩展实验,促进学生增强复杂系统分析、设计和实现能力,鼓励学生创新意识和能力。 1、词法分析程序设计与实现 假定一种高级程序设计语言中的单词主要包括五个关键字begin、end、if、then、else;标识符;无符号常数;六种关系运算符;一个赋值符和四个算术运算符,试构造能识别这些单词的词法分析程序。 输入:由符合和不符合所规定的单词类别结构的各类单词组成的源程序文件。 输出:把所识别出的每一单词均按形如(CLASS,VALUE)的二元式形式输出,并将结果放到某个文件中。对于标识符和无符号常数,CLASS字段为相应的类别码的助记符;VALUE字段则是该标识符、常数的具体值;对于关键字和运算符,采用一词一类的编码形式,仅需在二元式的CLASS字段上放置相应单词的类别码的助记符,VALUE字段则为“空”。 2、语法分析程序设计与实现 选择对各种常见高级程序设计语言都较为通用的语法结构——算术表达式的

一个简化子集——作为分析对象,根据如下描述其语法结构的BNF定义G2[<算术表达式>],任选一种学过的语法分析方法,针对运算对象为无符号常数和变量的四则运算,设计并实现一个语法分析程序。 G2[<算术表达式>]: <算术表达式>→<项> | <算术表达式>+<项> | <算术表达式>-<项> <项>→<因式>|<项>*<因式>|<项>/<因式> <因式>→<运算对象> | (<算术表达式>) 若将语法范畴<算术表达式>、<项>、<因式>和<运算对象>分别用E、T、F和i 代表,则G2可写成: G2[E]:E → T | E+T | E-T T → F | T*F | T/F F → i | (E) 输入:由实验一输出的单词串,例如:UCON,PL,UCON,MU,ID······输出:若输入源程序中的符号串是给定文法的句子,则输出“RIGHT”,并且给出每一步分析过程;若不是句子,即输入串有错误,则输出“ERROR”,并且显示分析至此所得的中间结果,如分析栈、符号栈中的信息等,以及必要的出错说明信息。 3、语义分析程序设计与实现 对文法G2[<算术表达式>]中的产生式添加语义处理子程序,完成运算对象是简单变量(标识符)和无符号数的四则运算的计值处理,将输入的四则运算转换为四元式形式的中间代码。 输入:包含测试用例(由标识符、无符号数和+、?、*、/、(、)构成的算术表达式)的源程序文件。 输出:将源程序转换为中间代码形式表示,并将中间代码序列输出到文件中。 若源程序中有错误,应指出错误信息 二、设计思路 1、词法分析程序设计与实现 1)单词分类 为了编程的实现。我们假定要编译的语言中,全部关键字都是保留字,程序员不得将它们作为源程序中的标识符;作了这些限制以后,就可以把关键字和标识符的识别统一进行处理。即每当开始识别一个单词时,若扫视到的第一个字符为字母,则把后续输入的字母或数字字符依次进行拼接,直至扫视到非字母、数字字符为止,以期获得一个尽可能长的字母数字字符串,然后以此字符串查所谓保留字表(此保留字表要事先造好),若查到此字符串,则取出相应的类别码;反之,则表明该字符串应为一标识符。

编译原理实验报告(手打)

《编译原理》实验报告 班级:计C104 姓名:李云霄 学号:108490

实验一词法分析程序实现 一、实验目的与要求 通过编写和调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将字符形式的源程序流转化为一个由各类单词符号组成的流的词法分析方法。 二、实验内容 选取无符号数的算术四则运算中的各类单词为识别对象,要求将其中的各个单词识别出来。 输入:由无符号数和+,-,*,/, ( , ) 构成的算术表达式,如1.5E+2-100。 输出:对识别出的每一单词均单行输出其类别码(无符号数的值暂不要求计算)。 三、实现方法与环境 1、首先设计识别各类单词的状态转换图。 描述无符号常数的确定、最小化状态转换图如图1所示。其中编号0,1,2,…,6代表非终结符号<无符号数>、<余留无符号数>、<十进小数>、<小数部分>、<指数部分>、<整指数>及<余留整指数>, 1,2和6为终态,分别代表整数、小数和科学计数的识别结束状态。 图1 文法G[<无符号数>]的状态转换图 其中编号0,1,2,…,6代表非终结符号<无符号数>、<余留无符号数>、<十进小数>、<小数部分>、<指数部分>、<整指数>及<余留整指数>, 1,2和6为终态,分别代表整数、小数和科学计数的识别结束状态。 在一个程序设计语言中,一般都含有若干类单词符号,为此可首先为每类单词建立一张状态转换图,然后将这些状态转换图合并成一张统一的状态图,即得到了一个有限自动机,再进行必要的确定化和状态数最小化处理,最后据此构造词法分析程序。 四则运算算术符号的识别很简单,直接在状态图的0状态分别引出相应标记的矢

受弯构件实验报告资料

吉林建筑工程学院 受弯构件实验指导书及实验报告 班级 姓名 学号 土木工程系结构实验室

二OO四年 实验一短期荷载下单筋矩形截面梁正截面强度试验 一、实验目的 通过适筋梁的试验,加深对受弯构件正截面三个工作阶段的认识,并验证正截面强度计算公式。 二、试验内容和要求 1、试件在纯弯曲段的裂缝出现和展开过程,并记下抗裂荷载P s cr(M s cr)量测试件在各级荷载下的跨中挠度值。绘制梁跨中挠度的M-f P s cr(M s cr)图。 2、测试件在纯弯曲段沿截面高度的平均应变,绘制沿梁高度的应变分布图形。 3、观察和描述试件破坏情况和特征,记下破坏荷载P s p(M s u)。验证理论公式,并对试验值和理论值进行比较。 三、试件和试验方法 1、试件 试验梁混凝土强度等级为C20,试件尺寸和配筋如图1-1所示。 2、试验设备及仪器 ①千斤顶及加荷架 ②百分表

③手持式应变仪 ④电阻应变仪 ⑤电阻应变片 ⑥读数显微镜 3、 试验方法 ①用千斤顶和反力架进行二点加载。 ②用百分表测读挠度。 ③用手持应变仪沿截面高度的平均应变。 ④电阻应变计计录受拉钢筋应变值。 仪表布置如图1-2所示 图 2 4、试验步骤 ①在未加荷前用百分表及手持应变仪读初读数,检查有无初始干缩裂缝。 ②加第一级荷载后读手持式应变仪,以量测梁未开裂时,沿截面高度的平均应变值。 ③电阻应变计记录受拉区应变,判断有无开裂。 ④估计试验梁的抗裂荷载,在梁开裂前分三级加荷,如仍未开裂,再少加些,直到裂缝出现,记下荷载值P s cr (M s cr ),每次加荷后,持荷五分钟后读百分表,以量测试件支座和跨中位移值。 ⑤试验梁出裂后至荷载之间分二次加荷,每次加荷五分钟后读百分表,至使用荷

数据结构排序实验报告

《数据结构》课程设计报告 实验五排序 一、需求分析: 本演示程序用C++6.0编写,完成各种排序的实现,对输入的一组数字实现不同的排序方法,对其由小到大顺序输出。 (1)分别对直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序算法进行编写。 (2)、对存储的函数即输入的数字进行遍历。 (3)、初始化函数对输入的数字进行保存。 (4)、主函数实现使用者操作界面的编写,对输入、选择、保存、输出的各种实现。这当中还包括了各个函数的调用的实现。 (5)、程序所能达到的功能:完成对输入的数字的生成,并通过对各排序的选择实现

数字从小到大的输出。 二、程序主要功能以及基本要求: (1)、设计一个菜单,格式如下: 1、直接插入排序 2、希尔排序 3、冒泡排序 4、快速排序 5、选择排序 6、堆排序 7、退出 (2)、选择不同的菜单但进行相应的排序,并给出排序的关键字序列。 三、系统框架图: 本程序包含了9个函数,它们分别是: (1)、直接插入排序的算法函数InsertSort()。 (2)、希尔排序的算法函数ShellSort()。 (4)、快速排序的算法函数Partition()。 (5)、选择排序算法函数SelectSort()。 (6)、堆排序算法函数HeapAdjust()。 (7)、对存储数字的遍历函数Visit()。 (8)、初始化函数InitSqList()。 (9)、主函数main()。 四、详细设计 实现各个算法的主要内容,下面是各个函数的主要信息: (1)各个排序函数的算法:

一、直接插入排序 void InsertSort(SqList &L) { int i,j; for( i=2; i<=L.length;i++) { if(L.r[i].key < L.r[i-1].key) { L.r[0] = L.r[i]; L.r[i] = L.r[i-1]; for( j=i-2; (L.r[0].key < L.r[j].key); j--) L.r[j+1] = L.r[j]; L.r[j+1] = L.r[0]; } } } 二、希尔排序 void ShellSort(SqList &L) { int i, j; int dk = 1;//增量 while(dk <=L.length/3) dk = 3*dk+1;//增大增量 while(dk>0) { dk /= 3;//减小增量 for (i = dk; i <=L.length; i++) { L.r[0].key = L.r[i].key; j = i;

相关文档
最新文档