欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    2009年监理工程师考试建设工程合同管理试卷.ppt

    • 资源ID:2879413       资源大小:260.52KB        全文页数:45页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2009年监理工程师考试建设工程合同管理试卷.ppt

    第4章 过程和变量的作用域,4.1 Visual Basic 的代码模块 结构化程序设计思想: 把较大的程序划分为若干个模块(窗体); 每个模块(窗体)只完成一个或若干个功能; Visual Basic 应用程序的结构:,4.2 Visual Basic的过程,1. 引例4-2 已知多边形的各条边的长度, 要计算多边形的面积。 计算多边形面积,可将多边形分解 成若干个三角形。 计算三角形面积的公式如下:,S=S1+S2+S3 传统方法:下面的公式写三次,4.2.1 函数过程的创建和调用 除了系统提供的内部函数过程和事件过程外,用户可自定义过程: 以Sub保留字开始的为子过程(通用过程); 以Function保留字开始的为函数过程。,1函数过程的创建 函数过程形式: Function 函数过程名(参数列表(形参) As 类型 局部变量或常数定义 语句块 函数名 = 返回值 函数过程体 Exit Function 语句块 函数名 = 返回值 End Function 自定义函数过程有两种方法: (1)利用“工具”菜单下的“添加过程”命令定义,生成一个函数的框架。 (2)利用代码窗口直接定义。,2.函数过程的调用 函数过程调用同标准函数调用, 形式:函数过程名(参数列表) 参数列表:称为实参,它必须与形参个数相同,位置与类型一一对应。可以是同类型的常量、变量、表达式。,Private Sub Command1_Click() A=val ( Inputbaox(“”) ) End sub,定义一个函数:多次调用,定义函数过程area: Public Function area(x!, y!, z!) As Single Dim c! c = 1 / 2 * (x + y + z) area = Sqr(c * (c - x) * (c - y) * (c - z) End Function,调用函数过程: Sub command1_click() 输入若干个三角形边长 S=area(a,b,c)+area(c,d,e) S=S+area(e,f,g) Print S End Sub,例4-3 编写定义计算任意整数a阶乘的函数过程fac(n). 参考代码: Public Function fac(a as Integer) as Long dim p as Long, i as Integer p=1 累乘初值为1 For i=1 to a p=p * i Next i fac=p 程序中对函数名赋值 End Function,调用:a=fac(10),4.2.2 子 过 程的创建和调用,2.子过程创建 Sub 子过程名(参数列表) 局部变量或常数定义 语句 Exit Sub 语句 End Sub 3.子过程的调用 子过程名 参数列表 或 Call 子过程名(参数列表),1.引例 编写一个两个数交换的过程供多次调用。 Swap (x,y)子过程的定义 主调程序调用Swap子过程 Public Sub Swap(x, y) Private Sub Form_Click() Dim t Dim a, b t = x a = 10 x = y b = 20 y = t Call Swap (a, b) End Sub Print “a=“;a,“,b=“; b End Sub,例4-1,编写一个能找出两个数中大数的子过程,然后在应用程序中调用它。,4.2.3 参数传递 指主调过程的实参传递给被调过程的形参。 形参和实参对应关系: 1)对应变量名不必相同,但变量个数相等; 2)各实参的书写顺序必须和对应的形参顺序一致,且类型相符。 1. 传址与传值 传址: 形参得到的是实参的地址,当形参值的改变同时也改变实参的值。 传值:ByVal 形参得到的是实参的值,形参值的改变不会影响实参的值。,4.2.3 参数传递 。 例4-5 两个变量的交换。 Sub Swap1(ByVal x%, ByVal y%) t% = x: x = y: y = t End Sub Private Sub Command1_Click() a% = 10: b% = 20: Swap1 a, b '传值 Print “A1=“; a, “B1=“; b a = 10: b = 20: Swap2 a, b '传址 Print “A2=“; a, “B2=“; b End Sub,Sub Swap2(x%, y%) t% = x: x = y: y = t End Sub,4.3 变量、过程的作用域 作用域:变量、过程随所处的位置不同,可被访问的范围。 1.过程的作用域(了解) 窗体/模块级:加Private关键字的过程,只能被定义的窗体或模块中的过程调用。 全局级:加Public关键字(缺省)的过程,可供该应用程序的所有窗体和所有标准模块中的过程调用。,2. 变量的作用域 局部变量:在过程内用声明的变量,只能在本过程中使用。 窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句 声明的变量,可被本窗体/模块的任何过程访问。 全局变量:在“通用声明”段中用Public语句声明的变量,可被本应用程序的任何过程或函数访问。,例如在下面一个标准模块文件中不同级的变量声明: option explicit Public Pa As integer 全局变量 Private Mb As string *10 ' 窗体/模块级变量 Sub F1( ) Dim Fa As integer ' 局部变量 可以访问Pa,Mb,不能访问Fb End Sub Sub F2( ) Dim Fb As Single ' 局部变量 可以访问Pa,Mb,不能访问Fa End Sub,Sub f1(x) x=f2(xx)*3 End Sub,Sub Command1_Click() Call f1(y) End Sub,Function f2(x) f2=f3(x)+3 End Sub,Function f3(x) f3=x*x End Sub,Sub f1(x) Call f1(y) End Sub,过程的直接调用,Sub Command1_Click() Call f1(y) End Sub,过程的递归调用,4.4 递归,1.递归的概念 用自身的结构来描述自身就称为“递归”。例对阶乘的定义:,2. 递归过程 过程在自身定义的内部调用自己。 例4-8 编fac(n)=n! 的递归函数 Function fac(n As Integer) As Integer If n = 1 Then fac = 1 Else fac = n * fac(n - 1) End If End Function,Sub Command1_Click() Print “fac(4)=”;fac(4) End Sub 结果: fac(4)=24,递推,回归,fac(2)=2*fac(1),fac(1)=1,fac(4)=4*6,fac(3)=3*2,fac(2)=2*1,fac(3)=3*fac(2),fac(4)=4*fac(3),问题: 递归方程:,写出递归函数,思考 若上述fac函数中少了 : If n = 1 Then fac = 1 即仅有语句: fac = n * fac(n - 1) 程序运行将造成何结果?由此可见构成递归的结构如下: 1、递归结束条件及结束时的值; 2、自身的调用,并且递归向终止条件发展。,若在不同级声明相同的变量名如: Public Temp As integer ' 全局变量 Sub Form_Load() Dim Temp As Integer ' 局部变量 Temp=10 ' 访问局部变量 Form1.Temp=20 ' 访问全局变量必须加窗体名 Print Form1.Temp, Temp ' 显示 20 10 End Sub,2. 数组参数的传递 当参数是数组通过传址方式进行传递。注意: 在实参和形参中写数组名,忽略维数的定义,但圆括号不能省。 被调过程可通过Lbound和Ubound函数确定实参数组的下、上界。 Lbound和Ubound函数的形式如下: L|Ubound(数组名),例 6.7 编一函数tim,求任意一维数组中各元素之积。 调用tim,求 和 Function tim(a() As Integer) Dim t#, i% t = 1 For i = Lbound(a) To Ubound(a) t = t * a(i) Next i tim = t End Function,调用: Sub Command1_Click() Dim a%(1 To 5),b%(3 To 8) t1# = tim(a() t2 #= tim(b() Print t1, t2 End Sub,4.子过程与函数过程区别: (1)函数过程名有值,有类型,在函数体内至少赋值一次; 子过程名无值,无类型,在子过程体内不能对子过程名赋值; (2)调用时,子过程调用是一句独立的语句。 函数过程不能作为单独的语句加以调用,必须参与表达式运算。 (3)一般当过程有一个返回值,使用函数过程较直观; 反之若过程无返回值,或有多个返回值,使用子过程较直观。,4.4 用户自定义类型,自定义数据类型 一组不同类型变量的集合。相当于C语言中的结构(Struct)类型; 当遇到简单数据类型不能表示问题的时候,使用复合数据类型来表示 由若干基本数据类型组成。,1.自定义类型的定义 形式如下: Type 自定义类型名 元素名(下标) As 类型名 元素名(下标) As 类型名 End Type 例如,以下定义了一个有关学生信息的自定义类型 Type StudType No As Integer ' 学号 Name As String * 20 ' 姓名 Sex As String * 1 ' 性别 Mark(1 To 4) As Single ' 4门课程成绩 Total As Single ' 总分 End Type,元素名:表示自定义类型中的一个成员 下标:表示是数组 类型名:为标准类型,2自定义类型变量的声明和使用 (1) 声明形式: Dim 变量名 As 自定义类型名 例 Dim Student As StudType (2) 引用 形式:变量名.元素名 例 表示Student变量中的姓名,第4门课程的成绩,则表示如下: Student.Name,Student.Mark(4) 3自定义类型数组的应用 例4-12 利用自定义类型数组,编写一个输入、显示程序。,例 打印分形图 二叉树,加密和解密 简单加密的思想是: 将每个字母C加一序数K,式子 c=chr(Asc(c)+k), 例如序数k为5,这时 “A”“F”,“a”“f”,“B”“G” 当加序数后的字母超过“Z”或“z”则 c=chr(Asc(c)-k)。 解密为加密的逆过程。,常用算法,1.数制转换 例 将一个十进制整数m转换成 r (216)进制字符串。 方法:将m不断除 r 取余数,直到商为零,以反序得到结果。,4.5常用算法 (三),3.查找 (1)顺序查找 例。 顺序查找根据查找的关键值与数组中的元素逐一比较(数组可无序) Public Sub Search(a() As Variant, ByVal key As Variant, index%) Dim i% For i = LBound(a) To UBound(a) If key = a(i) Then ' 找到,元素的下标在index中,结束查找 index = i Exit Sub End If Next i index = -1 ' 找不到, index形参的值为-1 End Sub 平均查找次数 n/2,Keya(mid) low=mid+1 查找区域缩小一半,继续,直到找到或查找区域中无元素. 本例用递归实现6.16 Sub birsearch(a(), low%, high%, key , index%),(2)二分法查找 要查找的数组必须有序。 思想:要查找的关键值Key同数组的中间mid项元素比较:,444,Key,4.排序 选择、冒泡、插入法排序等。 前两种排序欲排序的数据全部输入后,再进行排序; 插入法排序每输入一项,马上插入到数组应在的位置,数组始终有序。 例6.17 实现的步骤: (1)输入欲排序的数据项x;在数组a中找x应所处的位置j; (2)从数组的最后一个元素开始到下标j依次往后移,使j位置空出; (3)将x放入位置j处,一个数据插入完成; (4)有若干个数重复(1)(3)。,5. 例6.18 高次方程求根 有牛顿迭代法、二分法、弦截法等 (1)牛顿迭代法 迭代公式: 思想: 对方程给定一个初值x0作为方程的 近似根,利用迭代公式,求得x1, 当 x1为求得的近似根,否则x1作为x0再迭代。,(2) 二分法求根 思想: 已知求根区间a,b有一根,每次把求根区间缩小一半,直到找到解或求根区间足够小。 方法:求a,b的中点c,判断: f(c)=0,,c为求得的根,结束; f(a)与f(c)同号,则a,c无根,代替a; 否则c,b无根,c代替b; 使求根区间缩小一半,重复上述步骤,直到区间小于精度。,Public Function halfRoot(ByVal a!, ByVal b!) Dim c! Do While Abs(b - a) 0.00001 c = (a + b) / 2 If f(c) = 0 Then Exit Do ElseIf f(a) * f(c) 0 Then a = c Else b = c End If Loop halfRoot = c End Function,6.例6.19数值积分 有矩形法、梯形法、抛物线法(又称辛卜生法)等。 梯形法积分的思想是: 将积分区间a,bn等分,小区间的长度为, 第i块小矩形的近似面积为: 整个积分的结果为这n块小面积的累加,即 :,Public Function trapez(ByVal a!, ByVal b!, ByVal n%) As Single Dim sum!, h!, x! h = (b - a) / n sum = (f(a) + f(b) / 2 For i = 1 To n - 1 x = a + i * h sum = sum + f(x) Next i trapez = sum * h End Function,7.字符串处理 例6.20 编写一个英文打字训练的程序.要求如下: (1)在标签框内随机产生30个字母的范文; (2)当焦点进入文本框时开始计时,并显示当时时间; (3)在键入文本框按产生的范文输入相应的字母; (4)当键入满了30个字母后结束计时,禁止向文本框输入 内容 ,与范文逐一比较,显示打字的速度和正确率。,6.7 重点和难点,1. 确定自定义的过程是子过程还是函数过程 函数过程名有值,子过程名无值。 过程有一个返回值,则使用函数过程; 若返回多个值或无返回值,一般使用子过程。 2过程中形参的个数和传递方式的确定 过程中参数的作用是实现过程与调用者的数据通信。 (1)从主调程序获得初值,值传递。 (2)将结果返回给主调程序,地址传递。 3. 实参与形参结合时对应问题 个数、类型、位置、次序一一对应。 形参是值传递,对应实参可以是表达式、常量、数组元素。 形参是地址传递,对应实参只能是简单变量。 数组、记录类型、对象只能是地址传递。,4. 变量的作用域问题 局部变量、静态变量、全局变量特点、作用 5. 递归调用出现“栈溢出” 递归过程中有终止的条件和终止时的值或某种操作; 每递归调用一次,其中的参数要向终止方向收敛。,

    注意事项

    本文(2009年监理工程师考试建设工程合同管理试卷.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开