封面.doc

Size: px
Start display at page:

Download "封面.doc"

Transcription

1 高等学校计算机语言应用教程 Delphi 7 应用教程 童爱红张琦胡光兵编著 清华大学出版社 北京交通大学出版社 北京

2 内容简介 本书对 Delphi 7 语法和程序设计思想进行了全面的阐述, 共分 14 章, 全面讲解了面向对象的程序设计概念 Delphi 7 的数据类型与表达式 Delphi 7 程序设计语句 Delphi 的组件与窗体 数组程序设计 过程与函数程序设计 文件程序设计 组件和 DLL 开发技术 数据库程序设计和多媒体程序设计等内容 本书从教学实践的角度出发, 立足于提高学生的程序设计应用能力, 全书理论分析透彻严谨, 实例丰富生动, 内容由浅入深, 能快速地引导学生进入 Delphi 7 编程世界 本书可作为高等院校程序设计课程教材, 也可作为广大希望掌握 Delphi 7 编程的程序设计人员的参考用书 版权所有, 翻印必究 本书封面贴有清华大学出版社激光防伪标签, 无标签者不得销售 图书在版编目 (CIP) 数据 Delphi 7 应用教程 / 童爱红, 张琦, 胡光兵编著. 北京 : 清华大学出版社 ; 北京交通大学出版社, ( 高等学校计算机语言应用教程 ) ISBN Ⅰ.D Ⅱ.1 童 2 张 3 胡 Ⅲ. 软件工具 - 程序设计 - 高等学校 - 教材 Ⅳ.TP 中国版本图书馆 CIP 数据核字 (2004) 第 号 责任编辑 : 谭文芳出版者 : 清华大学出版社 邮编 : 电话 : 北京交通大学出版社 邮编 : 电话 : , 印刷者 : 发行者 : 新华书店总店北京发行所 开 本 : 印张 :21 字数 :534 千字 附光盘 1 张 版 次 :2004 年 11 月第 1 版 2004 年 11 月第 1 次印刷 书 号 :ISBN / TP 143 印 数 :1~5000 册 定价 :34.00 元 ( 含光盘 )

3 目 录 第 1 章 Delphi 7 程序设计入门 理论知识 算法与程序设计 面向对象程序设计基础 Delphi 7 概述 Delphi 7 的集成开发环境 利用 Delphi 开发应用程序的方法步骤 Delphi 7 程序的组成 典型实例 上机练习 14 课后考场 15 第 2 章基本数据类型与表达式 理论知识 基本数据类型 Delphi 7 中的标识符与保留字 Delphi 7 中的常量与变量 Delphi 7 中的运算符与表达式 Delphi 7 的语句书写规则与赋值语句 Delphi 7 的常用函数与过程 典型实例 上机练习 33 课后考场 34 第 3 章基本程序设计语句 理论知识 基本的顺序结构语句及其应用 选择结构语句及其基本应用 循环结构语句及其基本应用 典型实例 典型实例一 典型实例二 典型实例三 典型实例四 典型实例五 52 I

4 II 3.3 上机练习 上机练习一 上机练习二 54 课后考场 55 第 4 章数组程序设计 理论知识 数组的概念 一维静态数组的定义与使用 二维数组及多维数组的定义与使用 动态数组的定义与使用 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 72 课后考场 74 第 5 章过程与函数 理论知识 过程与函数的概念 过程的定义与调用 函数的定义与调用 参数的传递 子程序的嵌套与递归 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 91 课后考场 93 第 6 章用户自定义类型 理论知识 枚举类型的定义与使用 子界类型的定义与使用 集合类型的定义与使用 记录类型的定义与使用 典型实例 典型实例一 104

5 6.2.2 典型实例二 上机练习 上机练习一 上机练习二 109 课后考场 111 第 7 章常用组件的使用 理论知识 文本类组件的使用 按钮类组件的使用 列表类组件的使用 TTimer 时钟组件的使用 对话框组件的使用 TImage 组件 菜单组件 TTabControl 组件和 TPageControl 组件的使用 TScrollBar TTrackBar 和 TProgressBar 组件的使用 TPanel 组件和 TGroupBox 组件 工具栏组件与状态栏组件 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 150 课后考场 151 第 8 章 Delphi 7 的文件系统 理论知识 文件的基本概念 Delphi 7 中的文件类型及文件类型变量的定义 文本文件的使用 记录文件的使用 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 175 课后考场 177 第 9 章应用程序界面设计技术 179 III

6 IV 9.1 理论知识 多窗体程序的设计 SDI 应用程序设计技术 MDI 应用程序设计技术 变量的作用域 典型实例 上机练习 191 课后考场 195 第 10 章 DLL 应用编程 理论知识 DLL 概述 DLL 编写 加载 DLL 的方法 调用 DLL 中的过程和函数 在 DLL 中实现窗体重用 典型实例 上机练习 215 课后考场 218 第 11 章组件开发技术 理论知识 组件与组件技术概述 确定组件基类 创建组件单元 创建包工程 在组件中添加属性 在组件中添加事件 调试组件 制作组件图标和发布组件 典型实例 上机练习 238 课后考场 240 第 12 章图形图像编程 理论知识 TCanvas 对象的使用 TGraphic 对象的使用 TPicture 对象的使用 TBitmap 对象的使用 Delphi 中的图形图像组件 典型实例 255

7 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 261 课后考场 263 第 13 章多媒体应用程序开发 理论知识 多媒体的概念 TAnimate 组件的使用 TMediaPlayer 组件的使用 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 280 课后考场 282 第 14 章数据库应用开发 理论知识 数据库的基本概念 利用数据库桌面创建数据库 利用 BDE 组件开发数据库应用程序的模式 TTable 组件 TDataSource 组件 Data Controls 组件 SQL 语言 TQuery 组件 典型实例 典型实例一 典型实例二 上机练习 上机练习一 上机练习二 313 课后考场 318 附录 A Delphi 中的虚拟键代码及对应的键 321 参考文献 323 V

8 前 言 关于 Delphi 程序设计的相关教材在市场上有一些, 通过研究发现这些教材基本上都有这样一个通病 : 即为写 Delphi 而写教材 由于 Delphi 软件功能强大 内容丰富 组件众多, 给 开发应用程序带来了很多便利, 任何一方面的内容都足以写成厚厚的一本书, 把握不好就有 可能出现把握不住要点 缺乏系统性 只讲 Delphi 而没有涉及程序设计精髓, 或者干脆就成 了纯粹的编程技巧说明, 不太适合作为程序设计课程的入门教材 正是在此背景下, 我们编 写了这本 Delphi 7 应用教程, 目的是为了引导学生快速地掌握程序设计并高效地进入 Delphi 编程世界 本书的编写人员都有多年从事程序设计教学的一线教学经验, 对程序设计的教学把握较 为独到, 能够预料到学生在学习中可能遇到的困难并加以解决 同时本书的编写人员均有教 材编写的经验, 具有很强的敬业精神, 编写的教材有助于提高学生的学习效率 本书的总体编写思路如下 1. 全书共 14 章, 全面讲解了 Delphi 程序设计语言的各个部分, 特别加强了对数组 过 程与函数 界面设计 文件 多媒体 数据库等程序设计的重点 难点和具有较高实用价值 的内容的引导和剖析 2. 每章均分 4 个部分进行编写 : 理论知识 部分简明扼要地讲解本章的主要理论, 并 通过小的实例进行深化理解 ; 典型实例 部分通过分析一些精心挑选和编制的典型实例, 强化学生的编程能力 ; 上机练习 部分挑选一些具有实用价值的上机练习题, 加以剖析并 给出部分程序代码, 引导学生在上机练习中提高应用能力 ; 课后考场 部分设计了一套试 题, 方便学生进行自我测试 3. 实例引导 本书的每一章都有丰富的实例, 有的实例具有较强的趣味性, 易引起学生 的兴趣, 激发学生对程序设计的喜好 与现有的教材相比, 本书具有以下特色 1. 重点突出 本书没有罗列大量的语言成分, 不介绍较琐碎或不太常用的属性 指令和 方法, 而是针对 Delphi 软件的特点, 较详细地介绍 Delphi 的主要语言成分, 重点讲述 Delphi 程序设计的概念和方法 2. 不为写 Delphi 而写教材 始终贯彻为写程序设计教材而写教材,Delphi 只是选择的一门工具语言 因此本书将重点放在程序设计的基础上, 放在程序设计教材的共性上, 如结构 化和面向对象的程序设计方法 一些简单常用的算法 三种结构的程序设计 数组程序设计 过程与函数程序设计 文件编程 多媒体编程 DLL 编程等要素上, 而不是仅着重于 Delphi 的强大功能和组件的用法技巧上 本书力争达到这样的目标 : 通过本书的学习使学生能够掌 握程序设计的概貌, 进入程序设计的大门, 而不是仅仅掌握 Delphi 的语法与组件使用 3. 在编写风格上注重学生动手编程能力的培养 针对学生普遍认为程序设计难学的问题, 本书将不再讲解高深难懂的理论, 而是强调通过实例学编程 通过精选有趣的实例, 讲解实

9 例的实现过程, 激发学生的编程兴趣, 引导学生一步一步地步入程序设计的大门 本书由童爱红 张琦 胡光兵具体编写, 最后由博士生导师张琦教授对全书进行了审阅并定稿 本书的配套光盘包含全书的所有例题 习题源代码和可执行文件, 所有的程序都在 Windows XP 平台和 Delphi 7 环境下调试通过并经过严格测试 另外, 本书配套的电子教案可 以在北京交通大学出版社网站 上下载 在本书的编写过程中, 得到了解放军理工大学计算机与指挥自动化学院黄松副教授的指导和帮助, 得到了解放军理工大学工程兵工程学院计算机应用教研室全体老师的指导与帮助, 在此表示衷心的感谢 同时对参加本书资料收集 程序测试和文稿校对的侯太平 汪刚等同 志表示衷心的感谢 编者参阅了大量文献资料及网站资料, 在此也一并表示感谢 虽然我们力求完美, 力创精品, 但由于水平有限, 书中难免有疏漏和错误等不尽人意之 处, 还请广大读者不吝赐教 编 者 2004 年 9 月

10 第 1 章 Delphi 7 程序设计入门 本章要点 Delphi 7 的集成开发环境 面向对象程序设计的概念 设置对象属性 调用对象方法和编写程序代码的方法 Delphi 单元文件和项目文件的结构 利用 Delphi 7 开发应用程序的一般步骤 1.1 理论知识 算法与程序设计 1. 算法程序设计是与算法紧密联系在一起的 广义地说, 算法就是解决一个问题或完成一个任 务所经历的确定的有限的步骤 例如, 某个人要买一台价格 5000 元左右的品牌电脑, 在购买 之前, 他可能已有意或无意地制订了如下的计划 :1 打电话或上网查询或向别人咨询了解市 场上有哪些品牌电脑 ;2 根据电脑的性价比和各品牌的售后服务等因素决定买哪一种品牌电脑 ;3 决定去哪一家商场买电脑 ;4 去银行取款 ;5 去商场买电脑 ;6 电脑买回家并向家人 汇报 以上买电脑的过程就已体现了程序设计的实质 算法! 从上例中可以看到算法具有 以下 5 个特点 (1) 输入性 一般完成一个问题都要给定一定的初始信息或数据, 有了初始信息或数据 算法才能一步一步地往下执行 如上例中的银行取钱, 就可以看做对算法的输入 (2) 输出性 算法执行完成后, 应该输出需要的信息 如上例中, 电脑买回家后要汇报 情况就可看做算法的输出 (3) 可执行性 算法的每一步都必须是可以执行的 (4) 有穷性 一个算法必须能用有限的步骤完成 (5) 确定性 算法中的每一步都必须是确定的, 不能是模棱两可的 程序设计中所讲的算法就是指为了使计算机完成某个任务而经过的确定的有限的步骤 2. 程序设计下面介绍一个程序设计的例子 例 1-1 两个数 a 和 b, 如果 a 大于 b, 就交换它们的值, 否则不交换 具体的算法 步骤如下 :

11 2 Delphi 7 应用教程 (1) 比较 a 和 b 的大小 ; (2) 如果 a 小于等于 b, 转到第 (5) 步 ; (3) 如果 a 大于 b, 转到第 (4) 步 ; (4) 将 a 赋值给 t, 将 b 赋值给 a, 将 t 赋值给 b; (5) 程序结束 上面的算法是用自然语言描述的, 计算机并不能直接执行用自然语言描述的算法, 要让 计算机执行, 必须把由自然语言描述的算法的每一步转换成计算机语言的语句, 这个过程就是程序设计 上面的算法可用 Delphi 语言描述如下 a,b,t:real; // 定义三个实型变量 // if (a>b) then // 如果 a 大于 b( 否则, 直接转到最后一个 语句, 程序结束 ) // 执行下面的复合语句 t:=a; // 将 a 赋值给 t a:=b; // 将 b 赋值给 a b:=t; // 将 t 赋值给 b( 从而完成 a 和 b 交换的功能 ) // 程序结束 至此, 一个简单的程序已经编制成功了 面向对象程序设计基础 高级语言刚出现的时候, 使用的是面向过程的程序设计, 这种方法发展到了一定的阶段 就产生了 软件危机 为消除软件危机, 出现了面向对象程序设计 (Object-Oriented Programming,OOP), 并诞生了面向对象的程序设计语言, 如 C++ 等 为了便于用户开发应 用程序, 又出现了可视化程序设计语言, 如 Visual Basic,Delphi 等 面向对象与可视化程序设计的一般模型可用图 1-1 表示 图 1-1 可视化程序设计方法示意图 1. 类与对象类是对象的模板, 它定义了对象的特征和行为规则, 对象是通过类产生的, 类和对象都

12 第 1 章 Delphi 7 程序设计入门 3 由惟一的名字进行标识, 分别是类名和对象名 可以把类想像成房屋结构图, 而对象就是按 照这房屋结构图建成的房屋 可以根据一个类构造很多个对象, 由一个类产生的对象基本上都具有同样的特征和性能 在可视化程序设计语言中, 通常把一些常用的界面元素或功能实 现预先定义成类, 使用时就可以直接拖动它们到界面上产生对象 在程序中也可以通过对系 统提供的类的要素进行修改, 衍生出许多子类, 从而可以创建出许多可视化的对象 2. 属性客观世界中的对象都具有一些特征, 并通过特征相互区分 如学生的特征有学号 姓名和专业, 并通过姓名或学号来区分 在面向对象程序设计中, 用属性来刻画对象的特征, 定 义对象的外观 具体地说, 属性是类或对象的一种成分, 它反应类创建的对象的特征, 如对 象的名称 大小 标题, 等等 可视化语言中, 类或对象的属性是由类似的变量组成的, 每 个属性都有自己的名字及一个相关的值, 标准组件的属性名基本上都是系统规定好的 在学 习 Delphi 的过程中要注意记住属性名和理解属性名的含义 Delphi 中的每个系统提供的类都有一系列的属性, 在许多场合都可以通过可视化的手段或程序设计的方法改变属性的值 3. 方法与事件客观世界中的对象都具有一定的功能, 并都能对外界的特定刺激做出反应 反映在面向 对象程序设计中这种对象功能就是方法, 能够响应的刺激就是事件 即方法是对象具有的功 能, 而事件是对象能够响应的刺激 方法与事件是类的成分, 它们共同决定了对象的行为特征 实际上方法就是封装在类里面特定的过程或函数, 这些过程或函数的代码, 一般用户很 难看到, 这就是类的 封装性 方法由方法名来标识, 标准组件的方法名一般也是系统规定 好了的 在 Delphi 中, 所说的组件其实就是一种类, 一般每个类都具有一系列的标准方法, 如 Form 类具有 Show,Close,Hide 等方法 事件可看为对对象的一种操作 如在程序运行中, 对某个对象用鼠标单击一次, 这就产生了一个该对象的一个 单击 (Click) 事件 事件由事件名标识, 组件的事件名也是系统规 定好的 在学习 Delphi 的过程中, 也要注意记住事件名 含义及其发生场合 在 Delphi 中, 事件一般都是由用户通过输入手段或者是系统某些特定的行为产生的, 输入手段如鼠标在某 对象上单击一次, 产生一个 Click 事件, 到达系统的特定行为定时器的时间间隔, 会发生定时 器对象的 Timer 事件 4. 事件驱动的程序设计面向对象程序设计语言的基本程序设计模式是事件驱动 通过该方法设计的应用程序, 程序的执行是由事件驱动的, 一旦程序启动后就根据发生的事件执行相应的程序代码 ( 事件 过程 ); 如果无事件发生, 则程序就空闲着, 等待事件的发生, 此时用户也可以启动其他的应 用程序 因此在这种程序设计模式下, 程序员只需考虑发生了某事件时, 系统该做什么, 从而设计出相应的事件过程代码, 事件过程代码通常很短, 也易编写 5. 可视化编程的一般步骤利用可视化语言设计程序的一般方法可归结成以下几个步骤 (1) 利用系统给定的可视化类设计出程序运行界面 ( 窗口 ) 一般的可视化程序设计软 件都提供了空白窗口和可视化工具栏, 在设计程序时, 可以把可视化工具拖动到空白的窗口中, 就可以像 画图 一样轻松地完成程序运行界面的设计 (2) 设计窗口和可视化工具的属性 属性控制了对象的外观和表现形式, 通过属性设置

13 4 Delphi 7 应用教程 使对象的外观更符合程序员的要求 (3) 编写事件过程代码 根据程序实现的功能要求编写相应事件的事件过程代码, 在事件过程代码中可以设置对象的属性, 从而改变对象的外观和表现形式, 可以调用对象的方法 来实现某种功能 Delphi 7 概述 Delphi 是 Borland 公司推出的非常理想的可视化程序设计环境, 特别适合于快速规范地开发 Windows 应用程序 从 Borland 公司推出 Delphi 1.0 至今,Delphi 已经发展了 7 代产品, 每一代都是伴随 Windows 操作平台的升级而升级 用户可以使用 Delphi 轻松地进行各种复杂应用程序的开发 Delphi 7 的集成开发环境 Delphi 程序设计 运行和测试等工作在 Delphi 的集成开发环境 (Integrated Development Environment,IDE) 里进行,Delphi 的 IDE 是一个功能非常强大 使用非常方便的开发环境, 主要包括主窗口 窗体设计器 代码编辑器 代码浏览器和对象观察器 5 大部分 1.Delphi 7 的主窗口启动 Delphi 7, 屏幕上会出现如图 1-2 所示的集成开发环境窗口 其中上半部分为菜单栏 工具栏和组件板 菜单栏工具栏 组件板 图 1-2 Delphi 7 的集成开发环境窗口

14 第 1 章 Delphi 7 程序设计入门 5 (1) 菜单栏 菜单栏包括 File Edit Search View Project Run Component Database Tools Window 和 Help 共 11 个下拉菜单, 包含 Delphi 所有的命令和功能 单击菜 单栏中的任一菜单名, 即可打开该菜单名对应的下拉菜单 表 1-1 简单介绍了菜单栏的各种 菜单的基本功能 表 1-1 菜单栏的各种菜单功能简介 菜单名基本功能 File Edit Search View Project Run Component Database Tools Window Help 提供文件操作命令提供与编辑操作有关的命令, 如剪切 复制 粘贴和删除等提供查找 替换代码等操作命令用来关闭或打开集成环境中的各种工具窗口, 配置集成环境用于项目管理和设置提供应用程序的运行 调试等命令, 例如设置断点等用于建立 安装和设置组件提供开发数据库的各种工具用于开发环境的设置和提供辅助开发工具用来在打开的各个窗口之间转移焦点提供帮助信息 (2) 工具栏 工具栏的按钮一般是与菜单栏中的一些常用菜单命令对应起来的, 并以直观的图标反映 命令的功能, 用于快速执行命令 另外, 只要将鼠标指针停留在任一工具按钮, 就会出现文字提示, 用来提示该工具按钮的功能 (3) 组件板 Delphi 7 组件板上的选项卡里一共有 32 个标签 ( 页 ), 它们包含了 Delphi 的所有组件 ( 又 称控件 ), 其中每个标签 ( 又叫选项卡 ) 分别对应一类不同的组件 选择组件的方法是 : 首先 用鼠标单击该组件所在的页 ( 熟悉后就知道常用组件在哪个页下 ), 然后单击需要的组件 把组件添加到窗体上的方法是 : 选择了一个组件后, 再在窗体适当位置单击并拖动鼠标, 松开 鼠标时将会在窗体上创建一个组件 图 1-3 中选择的是 Standard 选项卡, 但没有选择具体 的组件 图 1-4 是选择 System 选项卡下的时钟组件的情况 图 1-3 Delphi 主窗口中的组件板 注意 : 有如下 3 种方法向窗体添加组件 单击组件板上的组件, 然后在窗体的适当位置单击并拖动鼠标 直接双击组件, 可将该组件添加到窗体的中心位置

15 6 Delphi 7 应用教程 按住 Shift 键不放, 单击组件板上所需的组件, 该组件将出现蓝色边框, 同时对象选择 按钮将弹起, 此时可在窗体上连续拖动鼠标多次以画出多个该组件 用鼠标单击对象选择按钮可取消该组件的连续添加操作 图 1-4 选择 System 选项卡中的 Timer 组件 2.Delphi 7 的窗体设计器 Delphi 的窗体设计器用来可视化地设计应用程序窗口, 是放置组件的容器 当 Delphi 启 动完成后, 就自动生成一个空白窗体, 如图 1-5 所示 窗体由标题栏 ( 通常包括控制菜单 最小化 最大化和关闭按钮 ) 工作区和可变大小的边界组成 注意 : 改变窗体位置或窗体大小有如下 3 种方法 鼠标左键按住窗体标题栏, 可以把窗体拖动到任意位置 鼠标指针指向边界, 将会出现双向箭头, 此时拖动鼠标可改变窗体大小 在对象观察器中改变窗体的 Height 和 Width 属性值可以改变窗体的大小, 改变 Top 和 Left 属性值可以改变窗体的左上角相对于屏幕左上角的位置 3.Delphi 7 的对象观察器对象观察器 (Object Inspector) 又称对象浏览器或属性窗口, 是设置窗体和组件属性的工具, 使用非常频繁 对象观察器由 对象 列表框 Properties 选项卡 ( 属性 ) 及事件选项 卡 Events 组成, 如图 1-6 所示 单击 Properties 可以显示被选中对象的所有属性, 单击 Event( 事件 ) 选项卡可以显示被选中对象的所有事件 单击某个属性, 该属性值 ( 在该属性 右边 ) 以选中形式出现, 并且可以改变该属性的值 图 1-6 中显示的对象为窗体 Form1, 被选 中的属性为 Caption, 其值为 Form1 图 1-5 空白窗体图 1-6 对象观察器

16 第 1 章 Delphi 7 程序设计入门 7 4. 代码编辑器和代码浏览器代码编辑器和代码浏览器如图 1-7 所示 代码编辑器是程序代码的输入和编辑工具, 也就是用户编写程序源代码的地方 当新建 一个窗体后, 就自动生成该窗体的单元文件代码, 如图 1-7 的右侧所示 图 1-7 代码编辑器和代码浏览器 启动 Delphi 7 后, 屏幕上会出现如图 1-2 所示的集成开发环境窗口, 此时初学者可能找 不到代码编辑器和代码浏览器, 因为它们被窗体遮盖住了 代码浏览器如图 1-7 中的左侧所示 它列出了单元文件中定义的类型 变量 常量 属 性和方法等 代码浏览器支持在代码编辑器中的漫游, 即如果双击其中的一个条目, 编辑器会自动跳到声明处 代码浏览器和代码编辑器是同时打开的, 它们经常被窗体设计器或其他 窗口遮盖 注意 : 有如下 4 种方法切换到代码编辑器和代码浏览器 用鼠标单击没有被窗口遮盖住的代码编辑器和代码浏览器 按快捷键 F12 单击工具栏上的 Toggle Form/Unit 按钮 单击 View 菜单下的 Code Explorer 选项 另外,Delphi 7 的 IDE 还有对象树 (Object TreeView), 如图 1-2 中的左边中间部分 对 象树以树状表的形式显示窗体中各种组件之间的所属关系 利用 Delphi 开发应用程序的方法步骤 现在通过编写一个小程序来介绍利用 Delphi 7 开发应用程序的方法步骤 例 1-2 编写一个显示欢迎词的程序, 程序启动时的运行界面如图 1-8 所示 单击 显示 按钮, 将在窗体上显示 Delphi 7.0 欢迎您!, 如图 1-9 所示 单击 关闭 按钮, 将关 闭应用程序 开发步骤如下

17 8 Delphi 7 应用教程 图 1-8 程序运行界面一图 1-9 程序运行界面二 (1) 新建项目 用户开发的每个 Delphi 程序都叫工程或项目 首先应新建一个项目, 启动 Delphi 7 后, 自动生成一个项目, 项目名为默认的 Project1( 在标题栏上 ), 如图 1-2 所示 注意 : 新建项目还可以采用以下两种方法 单击 File 菜单下 New 子菜单中的 Application 菜单命令 ( 以后这种操作菜单的叙述都 统一写成类似于 执行 File New Application 命令 的形式 ) 单击工具栏上的新建按钮, 打开 New Items 对话框, 选中 New 中的 Application 图标, 单击 OK 按钮即可 现在用第一种方法生成一个项目, 该项目将自动创建一个名为 Form1 的空白窗体 一个 项目可以有多个窗体, 第一个窗体默认名为 Form1, 第二个默认名为 Form2, 其他依此类推 (2) 保存项目 执行 File Save All 命令或者单击工具栏上的 Save All 按钮保存项目 首先弹出 Save Unit1 As 对话框, 如图 1-10 所示 在 保存在 列表框中设置项目文件保存的位置, 本例保存位置选择为 D:\DelphiApp\01\A\A_1_2 在 文件名 文本框中输入要保存 的文件名, 本例单元文件名采用默认的文件名 Unit1.pas, 设置好后单击 保存 按钮, 单 元文件保存完毕 此时将出现如图 1-11 所示的 Save Project1 As 对话框, 该对话框用来保 存项目文件, 在 文件名 文本框中输入项目文件名 Wel_Int.dpr, 然后单击 保存 按钮, 项目文件保存成功 图 1-10 Save Unit1 As 对话框 图 1-11 Save Project1 As 对话框 注意 : 保存 Delphi 项目文件时, 应注意以下几点 单元文件名不能和项目文件名及窗体的 Name 属性同名

18 第 1 章 Delphi 7 程序设计入门 9 给项目文件或窗体文件命名应见名思义 一个好的命名可以让用户在一大堆项目或组 件中很快明白该项目或组件是干什么的 (3) 为窗体添加组件 本程序需要在窗体上添加 3 个组件 : 一个标签组件, 用来显示 Delphi 7.0 欢迎您!, 两 个命令按钮, 分别用来显示欢迎词和退出应用程序 界面设计步骤如下 1 单击 Standard 选项卡中的 TLabel 组件 ( 标签组件 ), 在窗体适当位置单击并拖动, TLabel1 组件 ( 默认名为 Label1) 就添加到窗体上了, 如图 1-12 所示 2 单击 Standard 选项卡中的 TButton 组件 ( 按钮 ), 在窗体适当位置单击并拖动就在窗体上添加了一个 TButton1 组件 ( 默认名为 Button1), 用同样的方法添加第二个按钮组 件 ( 默认名为 Button2), 如图 1-13 所示 图 1-12 添加了 Label1 组件后的窗体图 1-13 添加了两个 Button 组件后的窗体 注意 : 删除组件与移动组件位置的方法如下 选中该组件 ( 此时该组件周围出现 6 个小黑点 ), 按 Delete 键就可删除该组件 选中该组件, 在对象观察器中改变其 Left 和 Top 属性即可移动该组件 选中该组件, 用鼠标拖动至窗体的合适位置也能移动该组件 选中该组件, 按住 Ctrl 键, 同时按下上下左右 4 个方向键可以调整该组件在窗体上的 位置 (4) 设置窗体和组件的属性 1 设置窗体属性 首先单击窗体以选中窗体, 在对象观察器中单击 Caption 属性名, 在 其后输入 欢迎词的显示 几个字, 用来作为 Form1 窗体的标题文本 然后单击 Font 属性前 的 + 号, 将显示 Font( 字体 ) 属性的所有子属性, 单击 Size( 大小 ) 属性, 输入 12, 使窗体上显示的字体较大 2 设置 Label1 属性 单击 Label1 以选中该组件, 然后单击对象观察器 Properties 选项卡里的 AutoSize 属性, 单击右边的下拉箭头, 选中 False ; 单击 Caption 属性, 在其后输 入 Delphi 7.0 欢迎您!, 并拖动标签至适当大小 ; 单击 Visible 属性, 设置其值为 False, 使 程序刚开始运行时不显示 Label1 标签 如图 1-14 所示 3 设置 Button1 属性 选中 Button1, 单击 Caption 属性, 输入 显示 ; 单击 Name 属 性, 输入 ButtonDisplay 4 设置 Button2 属性 选中该组件, 单击 Caption 属性, 输入 关闭 ; 单击 Name 属性, 输入 ButtonClose 至此, 应用程序的界面已经设置完成, 如图 1-15 所示 需注意的是, 每个组件都有 Name 属性, 大多数组件还有 Caption 属性, 但它们是有区别 的 Name 属性与每个组件是一一对应的, 是区别每个组件的惟一标志 而 Caption 属性只是

19 10 Delphi 7 应用教程 该组件的标题属性, 用来设置显示的文本 每个组件的 Name 属性不能相同, 但 Caption 属性 可以相同 图 1-14 为 Label1 组件设置了 Caption 属性图 1-15 设计完成后的界面 注意 : 在对象观察器中和程序运行时设置组件属性有以下 4 种方法 对文字型属性, 如上面按钮的 Caption, 直接在该属性右边的文本框输入文字即可 对数值型属性, 如 Left 等位置 大小属性, 直接输入数值即可 对布尔型 ( 只有 True 或 False 两个值 ) 属性和枚举型属性 ( 所有属性都列在该属性文 本框里 ), 在属性值列表中选择一个即可 在程序运行时设置某对象 ( 组件 ) 的属性, 可使用赋值语句给对象的属性名赋值 (6) 编写程序代码 1 编写 显示 按钮代码 双击该按钮, 或选中该按钮, 并在 Envent 选项卡中 OnClick 事件右边的空白处双击, 都将自动生成按钮单击事件的代码框架结构, 焦点自动停留在代码 编辑器的 和 end 之间, 如图 1-16 所示 图 1-16 自动产生的事件框架结构 添加如下程序代码 : Label1.Visible :=True; // 把 Lable1 的 Visible 属性设置为 True, 以显示该组件 2 编写 关闭 按钮代码 用同样的方法编写关闭按钮的代码, 代码如下 : procedure TForm1.ButtonCloseClick(Sender: TObject); Application.Terminate; // 应用程序关闭 注意 : 为了增强程序的可读性, 需经常在程序中添加注释 Delphi 有如下 3 种注释方法 使用双斜杠 // 其后的语句就是注释语句, 这种注释不能跨行

20 第 1 章 Delphi 7 程序设计入门 11 使用成对的花括号 { } 花括号之间的语句就是注释语句, 可以跨行 成对的括号与星号 (* *) 星号之间的语句是注释语句, 可以跨行 (7) 运行程序 程序代码编写完毕后, 先保存文件 ( 执行 File Save All 命令或者单击工具栏上 的保存按钮 ), 再单击工具栏上的运行按钮或者执行 Run Run 命令即可运行程序 程序运行时, 单击 显示 按钮, 程序运行结果如图 1-9 所示, 单击 关闭 按钮, 将结束应用程序的运行 至此, 一个显示欢迎词的应用程序已经创建成功 Delphi 7 程序的组成 以 Wel_Int.dpr 程序为例, 打开该项目所在的目录, 发现有 8 个文件, 其中只有 3 个文件 与程序设计紧密相关 : 单元文件 Unit1.pas, 项目文件 Wel_Int.dpr 和窗体文件 Unit1.dfm, 其他 文件都是 Delphi 在编译链接时自动产生的, 可不必理会 而最重要的是前面两个文件, 下面 详细说明这两个文件的组成 1. 单元文件例 1-2 产生的单元文件 Unit1.pas 的代码如下 : unit Unit1; interface //unit 是保留字,Unit1 是一个单元名 // 接口部分开始 uses // 以下引用的是单元文件名 ( 库文件 ) type Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; TForm1 = class(tform) Label1: TLabel; ButtonDisplay: TButton; ButtonClose: TButton; // 定义一个 Form 类 procedure ButtonDisplayClick(Sender: TObject); procedure ButtonCloseClick(Sender: TObject); private { Private declarations } public { Public declarations } // 添加标签对象 Label1, 作为类的一个成员 // 添加按钮对象 ButtonDisplay, 作为类的一个成员 // 添加按钮对象 ButtonColse, 作为类的一个成员 //ButtonDisplay 的单击事件 //ButtonClose 的单击事件 // 私有变量声明 // 公有变量声明 Form1: TForm1; // 声明一个窗体类对象 implementation // 实现部分开始 {$R *.dfm} // 编译命令

21 12 Delphi 7 应用教程 procedure TForm1.ButtonDisplayClick(Sender: TObject); Label1.Visible :=True; procedure TForm1.ButtonCloseClick(Sender: TObject); end. Application.Terminate; // 把 Lable1 的 Visible 属性设置为 True, 以显示该组件 // 应用程序关闭 // 整个单元代码结束 从 Unit1.pas 可见, 单元文件包括 3 个部分 : 标志性语句 接口部分和实现部分 (1) 标志性语句 unit, 其后跟随 Unit1, 这一句表示 Unit1 是单元文件名 (2) 接口部分是 interface 和 implementation 之间的部分 不在接口中的条目对于其他单 元是不可见的 其中,uses 语句后有很多单元名, 说明 Unit1 单元引用了其他单元 一个单元如果要引用其他单元, 需要在 uses 后添加其他单元的名字, 或者是在 implementation 之后使 用 uses 语句添加上其他单元名 保留字 type 与 之间是类型说明部分 (3)implementation 之后是实现部分 它是用户自己输入的程序代码, 为完成特定的功 能, 绝大部分代码都是放在这里 注意 :Delphi 的每条语句都是以分号 ; 结尾, 只有最后一个 end 是以句点. 结尾 2. 项目文件项目文件的扩展名为.dpr, 由 Delphi 自动生成, 一般不必修改 打开项目文件的方法 是 : 执行 View Unit 命令或者按 Ctrl+F12 快捷键, 将会显示 View Unit 对话框, 选择项目文件即可打开该文件 打开 Wel_Int 文件, 该文件代码如下 : program Wel_Int; uses Forms, Unit1 in 'Unit1.pas' {Form1}; {$R *.res} end. Application.Initialize; // 表示这是程序文件, Wel_Int 为文件名 // 说明体开始部分, 以下是程序引用的单元文件 // 编译开关, 表示要连接的资源文件 // 程序体开始部分 // 系统初始化工作 Application.CreateForm(TForm1, Form1); // 创建窗体 Application.Run; // 程序运行 // 文件结束 从 Wel_Int 代码中可以看到, 一个项目文件包括 3 个部分 : 标志性语句 说明体部分和程 序体部分 (1) 标志性语句 program, 其后跟随 Wel_Int, 表示 Wel_Int 是 Delphi 项目名 (2) 说明体部分是 uses 与 之间的部分, 不包括 语句, 用来说明程序引用的 单元 本程序引用了两个单元 :Forms(Delphi 自带 ) 和 Unit1( 用户定义的 ) (3) 程序体部分是 和 end 之间的部分, 它是程序实际执行部分 由于大部分代码

22 第 1 章 Delphi 7 程序设计入门 13 都放在单元文件中, 故项目文件很小 1.2 典型实例 实例题目 : 显示与清除文本 编写一个程序完成如下功能 : 程序运行时, 单击 显示 按钮, 编辑框 (TEdit 组件 ) 显 示 你好, 中国, 字体大小为 18 号, 字体颜色为蓝色 ; 单击 清除 按钮, 编辑框显示的文本被清除 程序设计界面如图 1-17 所示, 程序运行界面如图 1-18 所示 实现方法 图 1-17 程序设计界面图 1-18 程序运行界面 欲使 TEdit 组件显示某个文本, 如 hello, 只要给 TEdit 组件的 Text 属性赋值为 hello 即可, 实现的语句为 :Edit1.Text:='hello'; 另外 TEdit 组件还有字体属性 ( 包括大小, 颜色等 ), 按照同样的方法, 设置 TEdit 组件的字体颜色为蓝色, 字体大小为 18 号即可 为了使 TEdit 组件显示的文本被清除, 只要给它的 Text 属性值赋值为空字符串即可 该程序的实现步骤如下 (1) 启动 Delphi 7 新建一个项目 (2) 保存项目 单击 File Save All 命令以保存项目, 单元文件保存为 Unit1.pas, 项目文件保存为 B_1_1.dpr (3) 向窗体添加组件 单击 Standard 选项卡中的 TEdit 组件, 在窗体适当位置单击并拖动鼠标以添加组件 Edit1, 再用类似的方法添加按钮组件 Button1 和 Button2 (4) 设置窗体和组件属性 根据例 1-2 中提到的方法在对象观察器中设置窗体和组件的 属性 选中窗体, 单击对象观察器 Properties 选项卡的 Font 属性, 设置其 Size 属性值为 12; 用鼠标拖动窗体, 使其大小合适 ; 选中 Button1, 单击对象观察器 Properties 选项卡的 Caption 属性, 设置其值为 显示, 单击 Name 属性, 设置其值为 ButtonDisplay, 单击 Width 属性, 设置其值为 60; 选中 Button2, 用同样的方法设置其 Caption 属性值为 清除, 设置 其 Name 属性值为 ButtonClear, 设置其 Width 属性值为 60 全部属性设置好以后, 再修正窗 体大小和组件的相对位置 (5) 编写程序代码 (6) 保存文件与运行程序 单击 File Save 命令保存文件, 再单击工具栏上的 运行按钮示 或者单击 Run Run 命令以运行程序, 程序运行后的界面如图 1-18 所

23 14 Delphi 7 应用教程 Button1 Button2 界面设计 窗体组件属性设置及其作用如表 1-2 所示 表 1-2 组件属性及组件功能 组件名属性名属性值作用 Caption Name Caption Name ' 显示 ' ButtonDisplay ' 清除 ' ButtonClear Edit1 Text 'Edit1' 显示文本 Form1 程序代码 Width Height 单击将显示 你好, 中国 单击将清除 Edit1 中的文本 容纳其他组件等 procedure TForm1.ButtonDisplayClick(Sender: TObject); Edit1.Text:=' 你好, 中国 '; // 设置 Edit1 的 Text 属性为 你好, 中国 Edit1.Font.Color:=clBlue; Edit1.Font.Size:=18; // 设置字体颜色为蓝色 // 设置字号为 18 号 procedure TForm1.ButtonClearClick(Sender: TObject); Edit1.Text:=''; // 清除编辑框中的文本 1.3 上机练习 练习题目 : 文本及悬停文字的显示 设置一个文本及悬停文字的显示程序, 程序的设计界面如图 1-19 所示 程序运行时, 单 击 显示 按钮, 窗体上显示 开放的中国欢迎你! 文字, 如图 1-20 所示 若将鼠标指针 停留在 显示 按钮上一小会儿, 就显示悬停文字 单击将显示欢迎词, 如图 1-21 所示 单击 关闭 按钮, 将关闭应用程序 若将鼠标指针停留在 关闭 按钮上一小会儿也将显示悬停文字 单击将关闭程序 图 1-19 程序设计界面图 1-20 程序运行界面 ( 一 ) 图 1-21 程序运行界面 ( 二 )

24 第 1 章 Delphi 7 程序设计入门 15 要点提示 本例题与例 1-2 中编写的程序相似 为了显示文本, 可以添加一个标签组件, 将欲显示的文本赋值给标签组件的 Caption 属性 同时还要添加两个按钮, 它们的 Caption 属性分别为 显示 和 关闭 为了显示悬停文字, 需要做到两点 : 在对象查看器中把组件的 ShowHint 属性值设置为 True, 在对象查看器中把组件的 Hint 属性值设置为要显示的悬停文本 参考代码 procedure TForm1.Button1Click(Sender: TObject); Label1.Caption:=' 开放的中国欢迎你!'; procedure TForm1.Button2Click(Sender: TObject); Application.Terminate; // 关闭应用程序 注意 : 利用 Delphi 编写程序时,Delphi 对大小写字母不作区分, 但应尽量统一 课后考场 结尾 一 选择题 (20 分, 每题 5 分 ) 1.Delphi 7 的单元文件的扩展名是 A..dpr B..pas C..dfm D..exe 2.Delphi 7 的集成环境不包括 A. 代码编辑器 B. 对象观察器 C. 项目文件优化器 D. 窗体设计器 3.Delphi 7 支持的 3 种注释方法中有一种不能跨行注释, 该方法是 A. 使用花括号 B. 使用括号与星号 C. 使用双斜杠 D. 使用星号 4.Delphi 7 语言中, 每行可以写多条语句, 每条语句 ( 不是最后一条语句 ) 以 A. 逗号 B. 分号 C. 句号 D. 空格 二 填空题 (40 分, 每空 5 分 ) 1.Delphi 7 中区别每个组件的惟一属性是 2. 语句 Button1.ShowHint:=True; 表示的含义是 3.Delphi 7 中以.dpr 为扩展名的文件是 文件 4. 代码编辑器的作用是 5. 单元文件代码中的最后一条语句是 6. 运行程序可单击工具栏上的 按钮或按键盘上的 键 7. 窗体设计器的主要作用是

25 16 Delphi 7 应用教程 三 程序设计题 (40 分, 每题 20 分 ) 1. 设计一个显示和隐藏文本的应用程序, 程序的设计界面如图 1-22 所示 程序运行时, 单击 显示 按钮, 文本 国奥冲击奥运 可见, 如图 1-23 所示 单击 隐藏 按钮, 文本 将消失, 如图 1-24 所示 请按照可视化程序设计的一般步骤编写程序实现上面的功能 ( 提 示 : 文本的显示与隐藏, 可通过组件的 Visible 属性来实现 ) 图 1-22 程序设计界面图 1-23 程序运行界面 ( 一 ) 图 1-24 程序运行界面 ( 二 ) 2. 设置一个显示悬停文字的应用程序, 程序的设计界面如图 1-25 所示 程序运行时, 让按钮 打开 显示悬停文字 单击将打开一张图片, 如图 1-26 所示 图 1-25 程序设计界面 图 1-26 程序运行界面

26 第 2 章基本数据类型与表达式 本章要点 Delphi 的基本数据类型 ( 整型 实型 字符型 字符串型和布尔型 ) 常量与变量的概念与定义方法 三类基本运算符 : 算术运算符 位运算符和字符串运算符的含义与优先顺序三类基本表达式, 并能灵活运用 2.1 理论知识 Delphi 的语法基础是 Object Pascal 语言, 因此学习 Delphi 首先应学习并掌握 Object Pascal 语言的语法 本章主要介绍 Object Pascal 语言的语法基础, 包括数据类型和表达式 基本数据类型 程序设计中的数据并不只是数学上的各种数据, 而是指描述客观事物的数值 字符和所 有能输入到计算机中并能被计算机处理的符号 因此这里的数据比数学上的数据涵盖的范围 要广得多 从对数据的定义可以看出, 数据有各种各样的类型, 类型限定了该数据的表示形 式 取值范围和能够参加的各种运算 Delphi 的数据类型如表 2-1 所示, 其中前面 5 种是标准数据类型, 在使用前不必定义, 而后面的高级数据类型在使用前需要用户定义 另外, 整 型 字符型 布尔型 枚举型和子界型 5 种数据类型为顺序类型, 它们的取值是一个有序的 非负整数的集合, 每个可能的取值都对应一个有序的整数 根据由易到难, 循序渐进的学习 规律, 本章先学习 5 种标准数据类型, 分别是 : 整型 实型 字符型 字符串型和布尔型, 其他数据类型将在后面的章节中学习 表 2-1 Delphi 7 的基本数据类型 类 型 类型说明符 使用说明 整型 Integer 标准数据类型, 使用前不必定义 实型 Real 标准数据类型, 使用前不必定义 字符型 Character 标准数据类型, 使用前不必定义 字符串型 String 标准数据类型, 使用前不必定义 布尔型 Boolean 标准数据类型, 使用前不必定义 枚举型 Enumerated 高级数据类型, 先定义后使用 子界型 Subrange 高级数据类型, 先定义后使用

27 18 Delphi 7 应用教程 续表 类 型 类型说明符 使用说明 集合类型 Set 高级数据类型, 先定义后使用 数组类型 Array 高级数据类型, 先定义后使用 文件类型 File 高级数据类型, 先定义后使用 记录类型 Record 高级数据类型, 先定义后使用 类类型 Class 高级数据类型, 先定义后使用 类引用类型 Class Reference 高级数据类型, 先定义后使用 接口类型 Interface 高级数据类型, 先定义后使用 指针类型 Pointer 高级数据类型, 先定义后使用 过程类型 Procedural 高级数据类型, 先定义后使用 可变类型 Variant 高级数据类型, 先定义后使用 1. 整型描述存储各种整数数据的类型即整型 Delphi 7 有 9 种形式的整型数据, 如表 2-2 所示 表 2-2 Delphi 7 的整型数据 类 型 类型说明符 字节 数 取值范围 整型 Integer ~ 序数型 Cardinal 4 0~ 短整型 ShortInt 1 128~127 长整型 LongInt ~ 小整型 SmallInt ~ 位整型 Int ~ 字型 Word 2 0~ 长字型 LongWord 4 0~ 字节型 Byte 1 0~255 其中, 最常用的整型为 Integer, 它能满足绝大部分运算要求 在学习之初, 在这么多的数据类型中, 最好记住这 5 种标准数据类型和这 5 种类型中的最常用类型, 其他类型在以后 的学习中会较快地记住的 2. 实型描述存储各种实数数据的类型为实型 所谓实数就是以小数形式表示的数或以科学记数法表示的数 Delphi 7 有 5 种形式的实型数据, 如表 2-3 所示 其中,Real 型为最常用的实型 表 2-3 Delphi 7 的实型数据 类 型 类型说明符 字节 数 取值范围 单精度实型 Single ~ , ~ 双精度实型 Double ~ , ~ 扩展型 Extended ~ , ~ 续表

28 第 2 章基本数据类型与表达式 19 类型类型说明符字节数取值范围 货币型 Currency ~ 实型 Real ~ , ~ 注意 : 尽量使用 Real 类型而不要使用 Extended 类型, 因为 Extended 类型与其他语言或 操作平台的兼容性比较差 3. 字符型描述存储单个字符数据的类型称为字符型 注意, 是存储单个字符 如果要描述存储多 个字符, 那么就要使用下面将要学到的字符串类型 Delphi 7 有 3 种形式的字符型数据, 如表 2-4 所示 表 2-4 Delphi 7 的字符型数据 类 型 名 称 字节 数 取值范围 字符型 Char 1(2) 扩展 ANSI 字符集 宽字符型 WideChar 2 UniCode 字符集 Ansi 字符型 AnsiChar 1 扩展 ANSI 字符集 注意 : 最常用的字符类型为 Char 类型 Char 类型与 Ansi 字符类型完全等价 4. 字符串型字符型数据存在一个不足 : 只能存储一个字符 为存储多个字符, 就要使用字符串类型 Delphi 7 有 4 种形式的字符串类型数据, 如表 2-5 所示 表 2-5 Delphi 7 的字符串型数据 类型类型说明符最大长度 字符串型 String 31 2 个字符 短字符串型 ShortString 255 个字符 长字符串型 AnsiString 31 2 个字符 30 宽字符串型 WideString 2 个字符 注意 : 最常用的数据类型是 String 类型 与字符型数据类似,String 类型与 AnsiString 类型完全等价 5. 布尔型布尔型是描述存储 True( 真 ) 和 False( 假 ) 数据的类型 因此布尔型数据只有两个值 True 和 False Delphi 7 一共有 4 种形式的布尔型数据, 如表 2-6 所示 表 2-6 Delphi 7 的布尔型数据 类型类型说明符字节数取值 布尔型 Boolean 1 只能为 0(False) 或 1(True) 长布尔型 LongBool 4 0(False) 或非 0(True) 宽布尔型 WideBool 2 0(False) 或非 0(True) 字节布尔型 ByteBool 1 0(False) 或非 0(True) 注意 : 最常用的类型为 Boolean 类型

29 20 Delphi 7 应用教程 Delphi 7 中的标识符与保留字 与其他语言一样,Delphi 中为了描述一个语法实体, 也使用标识符的概念 例如表 2-1 至表 2-6 中各种类型的类型说明符都是标识符, 它们是 Delphi 系统规定的 当然也可以自己 定义一个符号如 num, 它表示一个整数, num 就是一个标识符 另外,Delphi 系统规定 了很多具有特定意义的单词, 在编写代码时不能对它们重新定义或另作它用, 这些单词叫保 留字, 共有 65 个 1. 标识符标识符是一种符号, 用来表示常量 变量 类型 过程 函数和对象等语法实体 标识 符又分标准标识符和自定义标识符 系统规定的标识符叫标准标识符, 用户或程序员定义的 标识符叫自定义标识符 (1) 标准标识符标准标识符包括下面 5 种标识符 标准常量 : 例如 Boolean 类型数据的取值 True 和 False 标准类型 : 例如表 2-1 至表 2-6 中的各种类型说明名 标准过程 : 例如 Put Reset 等 标准函数 : 例如 sin( 正弦函数 ) cos( 余弦 ) 等 标准文件 : 例如 Input TextFile 等 注意 : 标准标识符由于是系统预先定义好的, 它与下面将介绍的自定义标识符不同, 不 需要用户定义, 可以直接使用 另外, 最好不要将标准标识符再定义为自定义标识符, 以免 混淆 (2) 自定义标识符自定义标识符是用户自己定义的描述各种语法实体的名称 自定义标识符的名称由用户 根据自己的意愿而定, 但必须遵循如下的命名规则 : 由字母 数字和下划线 _ 组成 以字母或下划线开头 不能与保留字同名 最好不与标准标识符同名 例如 n_2 _n2 均是合法的自定义标识符 ; 而 2n_ 和 2_n 均是不合法的标识 符 ; sin 作为自定义标识符就很不好, 容易混淆 2. 保留字保留字类似标准标识符, 也是系统预先规定好的 具有特定意义的单词 但有一点不同 : 保留字一定不能重新定义或作为其他用途 Delphi 7 规定了 65 个保留字, 如表 2-7 所示 表 2-7 Delphi 的 65 个保留字 and array as asm case class const constructor destructor dispinterface div 续表 do downto else end except exports

30 第 2 章基本数据类型与表达式 21 file finalization finally for function goto if implementation in inherited initialization inline interface is label library mod nil not object of or out packed procedure program property raise record repeat resourcestring set shl shr string then thread to try type unit until uses while with xor 注意 :public private protected published 和 automated 共 5 个单词在定义类中成员的访问权限时也作为保留字, 因此和上面 65 个保留字一样不能重新定义或作其他用途 3. 指令符指令符也是具有特定意义的单词, 与保留字类似 但它可以作为用户自定义的标识符, 这一点又与标准标识符相同 不过为了防止混淆, 最好与保留字一样不作其他用途 指令符有 39 个, 如表 2-8 所示 表 2-8 Delphi 的 39 个指令符 absolute abstract assembler automated cdecl contains default dispid dynamic export external far forward implements index message name near nodefault overload override package pascal private protected public published read readonly register reintroduce requires resident safecall stdcall stored virtual Write writeonly Delphi 7 中的常量与变量 顾名思义, 常量是在程序运行过程中其值保持不变的量 ; 变量就是在程序运行过程中其 值可以改变的量 1. 常量根据使用方式的不同, 可以将常量分为直接常量和符号常量 (1) 直接常量直接常量就是在程序中直接使用的各种常量, 如整型常量 等 ; 实型常量 E5 等 ; 字符常量 'a' '10' 等 ; 字符串常量 :'www' ' 中国 ' 等 ; 布尔常量 True 和 False (2) 符号常量 符号常量就是用一个符号 ( 自定义标识符 ) 来表示常量 符号常量在使用前必须先定义, 定义符号常量的定义格式如下 [ 格式 ]: const 常量名 1= 常量值 1;

31 22 Delphi 7 应用教程 常量名 2= 常量值 2; 常量名 n= 常量值 n; [ 功能 ]: 定义符号常量, 包括符号常量的名字和值 [ 说明 ]: 这里 常量名 与 常量值 之间是 = 符号而不是 := 常量名 1 ~ 常 量名 n 是任意合法的标识符, 常量值 1 ~ 常量值 n 是直接常量或已经定义的符号常量 组成的表达式 符号常量也可以具有数据类型, 称类型常量 符号常量中的类型可以是标准类型, 也可以是高级类型 类型常量的定义格式如下 [ 格式 ]: const 常量名 1: 类型名 1= 常量值 1; 常量名 n: 类型名 n= 常量值 n; [ 功能 ]: 定义类型常量, 包括该常量的名字 类型和值 [ 说明 ]: 类型常量的定义与符号常量类似, 仅仅是多了一个类型名 例如下面的语句 : const abc=' 入门 '; r:real=1.414; 定义了两个常量, 其一是符号常量, 常量名为 abc, 常量值为字符串 ' 入门 '; 其二是类型常量, 常量名为 r, 类型为实型, 常量值为 变量 (1) 变量的声明 变量在使用前必须先声明 ( 或称定义 ), 声明的位置决定了变量的使用范围 例如, 在函数或过程中声明的变量是局部变量, 只能在该函数或过程中使用 ; 在单元的 implementation 部分声明的变量是单元级 ( 又称模块级 窗体级 ) 变量, 该单元的所有函数与过程都能使用 ; 在 interface 部分定义的变量是全局变量, 其他引用该单元的单元也可以使用该变量 变量具 有变量名 变量类型和变量值等特征, 在声明变量时必须声明变量的名称和类型 变量值在 程序执行中是可以变化的, 在使用变量之前通常要通过赋值语句给变量赋一个初始值 声明变量的语法格式及功能如下 [ 格式 ]: 变量名 1: 类型名 1; 变量名 2: 类型名 2; 变量名 n: 类型名 n; [ 功能 ]: 声明若干个变量, 包括变量名和变量的类型

32 第 2 章基本数据类型与表达式 23 [ 说明 ]: 保留字 表示下面将定义一个或多个变量, 变量名 1 ~ 变量名 n 是任意 合法的标识符, 类型名 1 ~ 类型名 n 也是任意的标准数据类型或高级数据类型 相同类型的变量可以写在一行, 以逗号分隔 例如 : n1,n2,n3:integer; r1:real; str:string; // 声明 3 个整型变量, 分别为 n1,n2 和 n3 // 声明 r1 为实型变量 // 声明 str 为字符串型变量 本例声明了 5 个变量, 每条语句的含义见该语句后面的注释 (2) 变量的使用变量经过声明之后就可以使用了 不过变量在使用之前最好先赋初值, 赋初值最简单的 办法就是通过赋值语句实现 没赋初值的变量, 其值是个随机数, 在程序运行时, 可能会遇 到意想不到的结果 因此变量声明之后最好及时赋初值 Delphi 7 中的运算符与表达式 Delphi 7 有 8 类运算符, 本章主要学习算术运算符 字符串运算符和位运算符 其他运 算符将在以后的章节中学习 1. 算术运算符算术运算符是用户最熟悉的, 类似算术中的加减乘除等 Delphi 7 中有 8 个算术运算符, 具体含义如下 (1) 取正运算符 + : 单目运算符, 表示对一个数值型数据取正, 例如 +5 的值为 5 另 外, 取正运算符可以省略 (2) 取负运算符 : 也是单目运算符 例如对 5 取负, 其值为 5 (3) 加法运算符 + : 与数学上的加法相同 加法运算符与取正运算符符号相同, 但含 义不同 例如 3+5 的值为 8 异同 (4) 减法运算符 : 与数学上的减法含义相同 也请注意减法运算符与取负运算符的 (5) 乘法运算符 * : 表示对两个数值型数据相乘, 与数学中的乘法相同 例如 :3*5 的值为 15 (6) 除法运算符 / : 与数学上的除法含义相同 例如 3/5 的值为 0.6 另外, 除法 运算的结果总是实型数据 (7) 整除运算符 div : 只能对两个整数进行除法运算, 结果为整型数据 例如 5 div 3 的值为 1, 而 5 div 2.0 是不合法的 (8) 取余运算符 mod : 对两个整数相除, 结果为余数 例如 5 mod 3 的值为 2 注意 : 关于算术运算符, 应抓住以下几个要点 取正运算符和取负运算符是单目运算符, 其他 6 个运算符为双目运算符 所谓单目运 算符是指仅有一个运算对象的运算符, 双目运算符是指有两个运算对象的运算符 加法运算符 减法运算符和乘法运算符的结果的类型为参加运算的两个数据中的精度

33 24 Delphi 7 应用教程 高的类型 / div 和 mod 运算符中的除数不能为 0 2. 字符串运算符 Delphi 只有一个字符串运算符 + 连接运算符, 用于把两个或多个字符串连接在一 起形成一个新的字符串 例如 'abc'+'def' 的值为 'abcdef' 3. 位运算符 Delphi 7 有 6 个位运算符, 它们的名称和具体含义如表 2-9 所示 表 2-9 Delphi 7 的位运算符 位运算符名称含义 Not 按位取反对操作数的二进制数按位取反 And 按位与对两个操作数的二进制数按位与 Or 按位或对两个操作数的二进制数按位或 Xor 按位异或对两个操作数的二进制数按位异或 Shl 向左移位对操作数的二进制数按位左移 Shr 向右移位对操作数的二进制数按位右移 例如 : 字节型变量 a 和 b, 它们的值分别为 : 和 , 即十进制中的 5 和 6 那么就有以下值 Not a 的值为 : , 即十进制中的 250 a And b 的值为 : , 即十进制中的 4 a Or b 的值为 : , 即十进制中的 7 a Xor b 的值为 : , 即十进制中的 3 a Shl 2 的值为 : , 即十进制中的 20 b Shr 2 的值为 : , 即十进制中的 1 注意 : 位运算符具有以下特点 位运算符的操作数必须是整数 Not 为单目运算符, 其他 5 个运算符为双目运算符 由于 1 个二进制位与 0 相与, 结果为 0, 与 1 相与结果还是该二进制位, 因此按位与 运算符通常用来把整数的某些位清 0 由于 1 个二进制位与 1 相或, 结果为 1, 与 0 相或结果还是该二进制位, 因此按位或运算符通常用来把整数的某些位置 1 由于 1 个二进制位与 1 相异或, 结果为该二进位的反, 与 0 相异或结果还是该二进制 位, 因此按位异或运算符通常用来把整数的某些位取反 4. 运算符的优先级表达式中通常有多个运算符, 在计算表达式的值时, 必须弄清这些运算符的运算次序, 即运算符的优先级 Delphi 7 中的所有运算符的优先级如表 2-10 所示 表 2-10 Delphi 7 的所有运算符的优先级 运算符优先级

34 第 2 章基本数据类型与表达式 25 Not,@ *,/,div,mod,and( 逻辑与 ),shl,shr,as( 安全类型转换 ) +,,or( 位或 ),xor( 异或 ) =,<,>,<>,>=,<=,in( 属于 ),is( 测试对象类型是否匹配 ) 第一级第二级第三级第四级 注意 : 级别高的运算符先运算, 级别低的运算符后运算 同级运算符, 按从左到右的顺 序运算 第一级运算符为最高级, 第四级为最低级 没有学到的运算符将在以后章节中学习 5. 表达式表达式就是用运算符将运算对象 ( 满足该运算符要求的数据 ) 连接起来的式子 在本章 中已经接触到了算术表达式 字符串表达式 (1) 算术表达式 算术表达式就是将算术运算符 圆括号和满足该运算符要求的有关数据 ( 数值型常量 变量和函数等 ) 连接起来的式子 算术表达式的结果是一个数值 例如有下面表达式 : 1+2*3 (4/5+(6 mod 7)) 该表达式的值为 0.2 注意 : 书写算术表达式时, 应注意如下几点 Delphi 语言中的算术表达式与数学意义上的表达式是有区别的, 如上面的表达式中没 有使用方括号和花括号, 在 Delphi 的表达式中只能使用圆括号 乘号不能省略 例如 2x 在数学上表示两者相乘, 在 Delphi 语句中若表示两者相乘, 必须写成 2*x (2) 字符串表达式 利用字符串运算符将字符串常量 字符串变量或字符串函数连接起来的式子称字符串表 达式 字符串表达式的格式如下 : s1+s2 其中 s1 和 s2 可以是字符串常量 变量或函数 该表达式将 s2 的所有字符连接到 s1 的末 尾, 并形成一个新的字符串 例如有如下语句 : s:= 'abc'+'1234'+'56'; 该语句执行后,s 的值为 'abc123456' Delphi 7 的语句书写规则与赋值语句 1. 语句书写规则 Delphi 的语句分简单语句和复合语句, 两者之间并没有太大差别 只是复合语句由两条 以上的简单语句组成, 同时必须书写在 和 end 语句之间 两种语句中的每条语句 的末尾都是分号 ( 只有程序的最后一条语句是句号 ) 为区分不同的语句, 每条语句以分号隔 开, 可以在一行写几条语句, 也可以把一条语句写在几行上 例如下面的语句是一条简单语 句 Button1.Enabled:=False;

35 26 Delphi 7 应用教程 该语句的功能是让 Button1 不起作用 语句末尾是一个分号 再看下面的程序段 t:=a;a:=b;b:=t; end. 其中 和 之间的语句是复合语句, 复合语句中还有 3 条简单语句, 书写 在同一行上, 复合语句作为一个整体执行 最后一条语句是 end. 以句号结尾, 表示单元程 序的结束, end. 一定是单元的最后一条语句 2. 赋值语句给变量赋值使用的语句称为赋值语句, 赋值语句的语法格式及功能如下 [ 格式 1]: 变量名 := 表达式 ; [ 功能 ]: 将表达式的值赋值给变量 [ 格式 2]: 对象. 属性名 := 表达式 ; [ 功能 ]: 将表达式的值赋值给对象的属性 [ 说明 ]: 表达式的结果与变量或对象的属性同属于一种类型 赋值语句先计算等号右边表 达式的值, 然后将计算出来的值赋给等号左边的变量或属性 因此赋值语句具有计算和赋值 的双重功能 例如如下赋值语句 : Label1.Caption:=' 欢迎您!'; a:=3.5; // 将 ' 欢迎您!' 字符串常量赋值给 Label1 的 Caption 属性 // 将实型数据 3.5 赋值给变量 a 注意 : 赋值号是 := 而非 = Delphi 7 的常用函数与过程 为了最大限度地减轻用户开发软件的难度,Delphi 系统提供了很多完成通用功能的标准 函数与过程 根据函数与过程完成的功能不同, 可分为数学类函数 字符类函数 日期时间 类函数和顺序类型函数 4 大类 这里介绍前两类函数与过程 1. 数学类函数数学类函数包括绝对值函数 取整数函数 取小数函数 平方函数 平方根函数 三角函数 指数函数 对数函数和随机函数等 (1) 绝对值函数 [ 调用格式 ]:Abs(x); [ 功能 ]: 返回 x 的绝对值 [ 说明 ]: 参数 x 是整型或实型数据 例如 : x:=abs( 1); // 这是一个赋值语句, 先计算赋值号右边函数的值 ( 为 1) 再赋给 x

36 第 2 章基本数据类型与表达式 27 (2) 取整数函数 [ 调用格式 1]: Trunc(x):Int64; [ 功能 ]: 返回实型数据 x 的整数部分, 类型为 Int64 [ 说明 ]: 参数 x 是实型数据 [ 调用格式 2]: Round(x):Int64; [ 功能 ]: 返回对实型数据 x 的小数部分四舍五入后的整数部分 [ 说明 ]: 参数 x 是实型数据, 返回的整数是四舍五入后的整数, 与 Trunc(x) 不同 [ 调用格式 3]: Int(x):Extended; [ 功能 ]: 返回实型数据 x 的整数部分, 类型为 Extend [ 说明 ]: 与 Trunc(x) 函数基本相同 ( 返回值类型不同 ) 例如 : x1:=trunc( 2.5); x2:=round( 2.51); x3:=int( 2.5); // 赋值语句, 函数值 2 赋给 x1 //x2 的值为 3 //x3 的值为 2 (3) 取小数函数 [ 调用格式 ]: Frac(x):Extended; [ 功能 ]: 返回 x 的小数部分 [ 说明 ]:x 为实型数据 例如 : x:=frac( 2.5); //x 的值为 0.5 (4) 平方函数 [ 调用格式 ]: Sqr(x):Extended; [ 功能 ]: 返回实型数据 x 的平方值 [ 说明 ]:x 为实型数据 例如 : x:=sqr( 2.5); //x 的值为 6.25 (5) 平方根函数 [ 调用格式 ]: Sqrt(x):Extended; [ 功能 ]: 返回非负实数 x 的算术平方根 [ 说明 ]:x 为非负实数, 返回值也为非负实数 例如 :

37 28 Delphi 7 应用教程 x:=sqrt(4); //x 的值为 2.0 (6) 三角函数 [ 调用格式 1]: Sin(x):Extended; [ 功能 ]: 返回以弧度为单位的 x 的正弦函数值 [ 说明 ]:x 的单位为弧度 [ 调用格式 2]: Cos(x):Extended; [ 功能 ]: 返回以弧度为单位的 x 的余弦函数值 [ 说明 ]:x 的单位为弧度 [ 调用格式 3]: ArcTan(x):Extended; [ 功能 ]: 返回 x 的反正切函数值 [ 说明 ]:x 的单位为弧度 例如 : x1:=sin(1/2); //x1 的值为 x2:=cos(1/4); //x2 的值为 x3:=arctan(1); //x3 的值为 (7) 指数函数 [ 调用格式 ]: Exp(x):Real; [ 功能 ]: 返回值为 e x [ 说明 ]: 参数 x 为实型数据 例如 : x:=exp( 1); //x 的值为 (8) 自然对数函数 [ 调用格式 ]: Ln(x):Real; [ 功能 ]: 返回 x 的自然对数值 [ 说明 ]: 参数 x 为正实数 其他对数函数可以由换底公式导出 例如 : x:=ln(5); //x 的值为 (9) 随机数函数 [ 调用格式 ]: Random(x); [ 功能 ]: 返回一个大于等于 0 小于整数 x 的随机整数 [ 说明 ]:x 为整数 若 x 缺省, 返回值为大于等于 0 小于 1 的实数

38 第 2 章基本数据类型与表达式 字符串处理函数与过程 (1) 大小写转换函数 [ 调用格式 1]: LowerCase(const s:string):string; [ 功能 ]: 把字符串 s 中的字符全部转换为小写字母, 并作为函数值返回 [ 调用格式 2]: UpperCase(const s:string):string; [ 功能 ]: 把字符串 s 中的字符全部转换为大写字母, 并作为函数值返回 例如 : x1:=lowercase('abc'); x2:=uppercase('abc'); // 将函数值 abc 赋值给字符串变量 x1 // 将函数值 ABC 赋值给字符串变量 x2 (2) 比较字符串大小函数 [ 调用格式 1]: CompareStr(const s1,s2:string):integer; [ 功能 ]: 比较两个字符串 s1 和 s2 的大小 [ 说明 ]: 大小比较的依据是 ASCII 码值 根据字符的 ASCII 码值, 从两字符串的第一个 字符开始比较, 若前者大于后者, 比较终止, 返回值大于 0; 若小于后者, 比较也终止, 返回 值小于 0; 若等于后者, 将接着继续比较后面的字符 直到遇到不相等的字符或 s1 或 s2 的所 有字符均比较完毕 若所有位置上的字符都相等, 则返回值等于 0 注意 : 本函数区分大小写 [ 调用格式 2]: CompareText(const s1,s2:string):integer; [ 功能 ]: 比较字符串大小 [ 说明 ]: 比较方法同上, 区别是本函数不区分大小写 例如 : x1:=comparestr('abc','abc'); //x1 的值为 32 x2:=comparetext('abc','abc'); //x2 的值为 0 (3) 求字符串长度函数 [ 调用格式 ]: Length(s):Integer; [ 功能 ]: 返回字符串的长度 [ 说明 ]: 参数 s 的类型为字符串型 例如 : x:=length('abcd'); //x 的值为 4 (4) 查找位置函数 [ 调用格式 ]: Pos(s1,s2:String):Integer; [ 功能 ]: 返回子字符串 s1 在字符串 s2 中首次出现的位置, 若 s2 中不存在 s1, 则返回 0

39 30 Delphi 7 应用教程 值 [ 说明 ]: 若 s1 在 s2 中, 则必须满足 s1 的所有字符都在 s2 中, 即 s1 是 s2 的子串 例如 : x1:=pos('bc', 'abcd'); //x1 的值为 2 x2:=pos('bd', 'abcd'); //x2 的值为 0 (5) 合并字符串过程 [ 调用格式 ]: AppendStr( s1:string;const s2:string); [ 功能 ]: 相当于执行语句 s1:=s1+s2; [ 说明 ]: 本过程比语句 s1:=s1+s2; 执行效率高 (6) 截取子字符串函数 [ 调用格式 ]: Copy(s:String;m,n:Integer):String; [ 功能 ]: 在字符串 s 中截取从第 m 个字符开始长度为 n 的子字符串, 并作为函数的返回 [ 说明 ]: 若 m 大于 s 的长度, 则返回一个空串 ; 若从第 m 个字符到 s 的结尾不足 n 个字符, 则返回其间的所有字符 例如 : s1:=copy('abcdef',2,2); s2:=copy('abcdef',4,5); //s1 的值为 'bc' //s2 的值为 'def' 注意 :Copy('abc',0,1) 和 Copy('abc',1,1) 的函数值相等, 都是 'a' (7) 删除子字符串过程 [ 调用格式 ]: Delete( s:string;m,n:integer); [ 功能 ]: 在字符串 s 中删除从第 m 个字符开始长度为 n 的子字符串 [ 说明 ]: 如果 m 大于 s 的长度, 则不删除任何字符 ; 如果从第 m 个字符开始到 s 的末尾 不足 n 个字符, 则删除其间的所有字符 ; 如果 n 小于等于 0, 则不删除任何字符 例如下面的程序段 : s:string; // 字符串变量声明 s:='abcd'; // 给变量赋值 Delete('abcd',3,3); { 删除从第 3 个字符开始长度为 3 的子字符串 ( 本例只能删除 'cd')} Edit1.Text:=s; //s 的值为子串 'ab', 故 Edit1 上显示的文本为 'ab' (8) 插入子字符串过程 [ 调用格式 ]: Insert(S1:String; s:string;k:integer);

40 第 2 章基本数据类型与表达式 31 [ 功能 ]: 将字符串 S1 插入到字符串 s 中的第 k 个字符处 (9) 数值和字符串相互转换函数 [ 调用格式 1]: IntToStr(m:Integer):String; [ 功能 ]: 将整型数据 m 转换成字符串并作为函数的返回值 [ 调用格式 2]: StrToInt(s:String):Integer; [ 功能 ]: 将字符串数据 s 转换成整型数据并作为函数的函数值 [ 说明 ]:s 为数字型字符串 [ 调用格式 3]: FloatToStr(f:Extended):String; [ 功能 ]: 将实型数据 f 转换成字符串, 并为函数的返回值 [ 调用格式 4]: StrToFloat(s:String):Extended; [ 功能 ]: 将字符串型数据 s 转换成实型数据, 并作为函数的返回值 [ 说明 ]:s 为数字型字符串 2.2 典型实例 实例题目 : 求整数各位数字 利用算术运算符和算术表达式编写一个程序, 实现下面的功能 : 输入一个任意 4 位整数, 计算千位 百位 十位和个位上的数字 程序设计界面如图 2-1 所示, 程序运行界面如图 2-2 所示 程序运行时, 输入任意整数, 单击 个位数字 按钮, 将显示个位数字, 单击 十位 数字 按钮, 将显示十位数字, 依此类推 实现方法 图 2-1 程序设计界面图 2-2 程序运行界面 对于一个 4 位整数, 要知晓如何求其各位数字 例如, 对于 1234 这样一个整数, 将它整 除 1000 就得到千位上的数值 1; 将 1234 对 1000 取余得到 234, 再整除 100 即是百位上的数字 2; 将 1234 对 100 求余得到 34, 再对 34 整除 10 就得到十位上的数字 3;1234 对 10 取余 即得到个位上的数字 4

41 32 Delphi 7 应用教程 界面设计 窗体及组件的属性设置如表 2-11 所示 表 2-11 组件属性设置及组件作用 组件 名 属性 名 属性 值 作 用 Label1 Caption ' 输入任意整数 ' 提示在右边编辑框输入任意整数 Label2~Label5 Caption '' 显示各位数字 Edit1 Text '' 用来输入任意整数 Button1~Button4 Caption ' 个位数字 '~' 千位数字 ' 单击显示相应位数字 程序代码 (1) 双击 Button4, 编写求千位上的数字的程序代码 : procedure TForm1.Button4Click(Sender: TObject); t:integer; // 声明 t 为整型变量 t:=strtoint(edit1.text); Label5.Caption:=IntToStr(t div 1000); // 字符串转换成整型数据再赋值给 t //div 表示整数除法, 求千位上的数字 (2) 双击 Button3~Button1, 编写求百位 十位和个位上数字的代码 : procedure TForm1.Button3Click(Sender: TObject); t:integer; t:=strtoint(edit1.text); Label4.Caption:=IntToStr((t mod 1000) div 100); procedure TForm1.Button2Click(Sender: TObject); t:integer; t:=strtoint(edit1.text); Label3.Caption:=IntToStr((t mod 100) div 10); procedure TForm1.Button1Click(Sender: TObject); t:integer; t:=strtoint(edit1.text); Label2.Caption:=IntToStr(t mod 10); // 求百位上的数字 // 求十位上的数字 // 求个位上的数字

42 第 2 章基本数据类型与表达式 上机练习 练习题目 : 简单的函数计算器 常用的计算器能求很多种函数的值, 用户也可以编写一个程序计算某些函数的值 程序的设计界面如图 2-3 所示, 程序运行时输入自变量 x, 单击 Sin(x) Tan(x) Sqr(x) 和 Lg(x) 按钮, 将分别计算出 x 的相应函数值, 并显示在函数值后面的编辑框中 程序运 行界面如图 2-4 所示 图 2-3 程序设计界面 图 2-4 程序运行界面 要点提示 对于正弦 余弦和正切函数, 其自变量是以弧度为单位的 常用对数函数没有现成的标准函数, 但可以通过换底公式实现, 换底公式为 :Lg(x) = Ln(x) Ln(10) 参考代码 implementation x:real; {$R *.dfm} // 声明一个单元级变量 ( 注意声明位置 ), 下面的所有函数与过程都能引用 procedure TForm1.Button1Click(Sender: TObject); x:=strtofloat(edit1.text); // 字符串转换成实型数据 Edit2.Text:=FloatToStr(Sin(x)); // 实型数据转换成字符串 procedure TForm1.Button2Click(Sender: TObject); x:=strtofloat(edit1.text); Edit2.Text:=FloatToStr(Sin(x)/Cos(x)); procedure TForm1.Button3Click(Sender: TObject); x:=strtofloat(edit1.text); Edit2.Text:=FloatToStr(Sqr(x)); procedure TForm1.Button4Click(Sender: TObject); x:=strtofloat(edit1.text); // 求正切函数 // 求平方函数

43 34 Delphi 7 应用教程 Edit2.Text:=FloatToStr(Ln(x)/Ln(10)); // 利用换底公式求常用对数 课后考场 一 选择题 (20 分, 每题 5 分 ) 1. 下列自定义标识符不合法的是 A.i*m B.im C.i_m D.mi 2. 下列标识符中 不是保留字 A.And B.Near C.END D.Mod 3. 算术表达式 mod (Trunc(5.5))*2 的值是 A.19 B.14 C.10 D 数学表达式 sin 60 的 Delphi 表达式是 A.sin(60) C.SIN(60) 二 填空题 (40 分, 每空 5 分 ) B.sin(60* /180) D.sin(60 ) 1. 在 Delphi 语言中, 自定义标识符第一个字符只能是 2. 函数 CompareStr('abcd', 'abcd') 的值 零 3. 函数 Length('ab+cd') 的值是 4. 在下面程序段的划线处填空 : s:='chinese'; Delete(s,4,5); 执行后 s 等于 5. 表达式 (30+22 mod 4) div 8 的值是 2 b b 4ac 6. 表达式的 Delphi 语言表达式是 2a 7. 表达式 UpperCase('Hello')+','+LowerCase('China') 的值是 三 程序设计题 (40 分, 每题 20 分 ) 1. 请编写程序实现下面的功能 : 程序设计界面如图 2-5 所示, 程序运行时, 单击 随机 数 1 按钮, 产生一个 100 以内的非负整数 ; 单击 随机数 2 同样产生一个 100 以内的非负 整数 单击 加法运算 按钮, 将把两个随机数做加法运算, 结果将显示在 答案 的编辑框里 ; 单击 乘法运算 按钮, 将把乘法运算的结果显示在 答案 编辑框里 程序运行界 面如图 2-6 所示

44 第 2 章基本数据类型与表达式 35 图 2-5 程序设计界面 图 2-6 程序运行界面 2. 编程计算 10 x 的值 程序设计界面如图 2-7 所示, 程序运行界面如图 2-8 所示 图 2-7 程序设计界面图 2-8 程序运行界面

45 第 3 章基本程序设计语句 本章要点 顺序结构 选择结构和循环结构程序设计的思想 双分支语句和多分支语句的含义 利用双分支语句和多分支语句设计分支程序的方法循环的概念 循环程序设计的方法及常用的算法 3.1 理论知识 结构化程序设计有三种基本结构, 即顺序结构 选择结构和循环结构 任何复杂的程序 均可分解成这三种基本结构, 这三种基本结构也能够组合成任意复杂的程序 基本的顺序结构语句及其应用 顺序结构是程序设计中最常用也是最简单的程序结构 所谓顺序结构就是其中的语句是 按照先后顺序依次执行, 程序执行的流程不会发生跳转 其实, 不管采用哪种结构, 顺序结 构都贯穿其中, 例如, 选择结构和循环结构中的语句, 在大多数情况下都是按顺序执行的 顺序结构语句主要是由赋值语句等简单的操作语句组成 赋值语句的格式与功能已在第 2 章 作了介绍 例 3-1 设计一个程序, 程序设计界面如图 3-1 所示 在程序设计时, 编辑框显示 远 方的朋友, 欢迎您 文字, 字号为 12 号, 字体为宋体, 字体颜色为红色 程序运行时, 单击 改变 按钮, 编辑框文本内容不变, 但字号改为 20 号, 字体变为隶书, 颜色变为蓝色, 如图 3-2 所示 实现分析 图 3-1 程序设计界面图 3-2 程序运行界面 要在程序运行时改变编辑框文本的有关属性, 只需通过赋值语句给相应属性赋值就可实

46 第 3 章基本程序设计语句 37 现 如本例中, 使文本字号大小变为 20 号的语句如下 : Edit1.Font.Size:=20; 其他属性也采用同样的赋值方法, 不再赘述 界面设计 本例的组件属性设置及组件功能如表 3-1 所示 ( 在对象观察器中设置 ) 表 3-1 组件属性及组件功能 组件属性名属性值作用 Button1 Caption ' 改变 ' 单击将改变编辑框字体颜色字号字体名 Edit1 Text Font.Size Font.Name Font.Color ' 远方的朋友, 欢迎您 ' 12 宋体 clred 显示文本内容 程序代码 双击 改变 按钮, 编写如下程序代码 : procedure TForm1.Button1Click(Sender: TObject); Edit1.Font.Name:=' 隶书 '; Edit1.Font.Size:=20; Edit1.Font.Color:=clBlue; // 设置编辑框文本字体名为隶书 // 设置编辑框文本字体大小为 20 号 // 设置编辑框文本颜色为蓝色 选择结构语句及其基本应用 日常生活中经常要根据一个条件是否满足来决定是否做某件事 对于这类问题, 在程序 设计中可通过选择结构来完成 所谓选择结构, 就是对给定的条件进行分析判断, 在满足不 同的条件时执行不同的操作 选择结构可以分成单分支选择结构 双分支选择结构和多分支 选择结构 1. 关系表达式与逻辑表达式要掌握选择结构, 首先要掌握条件的表示方法 关系表达式和逻辑表达式 (1) 关系运算符和关系表达式 关系运算符就是用来对两个表达式进行大小比较的运算符 用关系运算符把两个运算对象连 接起来表示它们大小关系的式子称为关系表达式 如果关系表达式描述的关系成立, 则关系表达 式的结果为 True, 否则结果为 False 关系运算符一共有 9 种, 其符号及名称如表 3-2 所示 表 3-2 关系运算符及名称 运算 符 名 称 运算 符 名 称 运算 符 名 称 = 等于 >= 大于等于 <= 包含于 <> 不等于 < 小于 >= 包含 > 大于 <= 小于等于 in 属于

47 38 Delphi 7 应用教程 例如,5>=3 是一个关系表达式, 通过大于等于运算符 >= 把两个表达式 5 和 3 连接起 来了, 该表达式的值为 True( 真 ) 又如 'a'>'z' 也是一个关系表达式, 但其值为 False 因为 'a' 的 ASCII 码值为 97, 而 'z' 的 ASCII 码值为 122, 显然前者小于后者 关系表达式的一般格式及其功能如下 [ 格式 ]: 表达式 1 关系运算符表达式 2 [ 功能 ]: 比较两个表达式值的大小 注意 : 关系运算遵循以下规律 关系表达式两边的数据类型必须一致 9 个关系运算符的运算级别相同 在同级别运算符中, 按从左到右的顺序运算, 括号 里的表达式最先运算 当对字符进行大小比较时,Delphi 对字母的大小写是有区别的, 并按照每个字符的 ASCII 码值大小予以比较 常见字符的 ASCII 码值按从小到大的顺序是 : 空格 <'0'< <'9'<'A'< <'Z'<'a'< <'z'< 任何汉字 (2) 逻辑运算符和逻辑表达式 如果天晴又有时间, 我就去打球, 否则就不去 这是一个选择结构的例子, 对于选择结 构, 可以暂时不理会 先看看前面的条件 : 天晴又有时间 很显然, 这里有两个条件, 必须都满足, 才会去打球 对于这种复合条件, 使用关系运算符已经无法描述, 必须使用逻辑运 算符和逻辑表达式来描述 逻辑运算符一共有 4 个, 它们的名称及有关说明见表 3-3 表 3-3 逻辑运算符及其含义 运算符名称含义 Not 逻辑非单目运算符 进行取 反 操作, 由 True 变 False 或由 False 变 True And 逻辑与双目运算符 只有两个表达式的值同时为 True, 结果才为 True, 否则结果为 False Or 逻辑或双目运算符 只要有一个表达式的值为 True, 结果就为 True, 否则结果为 False Xor 逻辑异或双目运算符 当两个表达式的值不同则结果为 True, 否则为 Flase 逻辑表达式就是用逻辑运算符把若干个关系表达式或逻辑值 (True 或 False) 连接起来的 式子 逻辑表达式的值与关系表达式的值一样, 也只有两个 :True 或 False 例如 :('a'>='c')or False 就是一个逻辑表达式 其中 ('a'>='c') 是一个关系表达式, 而 False 是一个逻辑值,Or 是 逻 辑或 运算符, 上式的值为 False 逻辑表达式的运算步骤是 : 对双目运算符, 先运算两个表达式的值, 再进行逻辑运算 ; 对单目运算符 (Not), 先计算表达式的值, 再进行逻辑非操作 再来分析刚才的例子 ('a'>='c')or False, 双目逻辑运算符 Or 左边是一个关系表达式 ('a'>='c'), 右边是一个逻辑值 False, 关系 表达式的值为 False, 逻辑值也是 False, 因此根据表 3-3 的说明, 整个逻辑表达式的值为 False 注意 : 逻辑运算遵循以下规律 逻辑运算符与第 2 章讲解的位运算符符号相同, 但含义不同 当逻辑运算符两边的数 据为数值时, 此时的逻辑运算符转化为位运算符, 结果为整数而不是逻辑值 逻辑运算符的优先级别是 :Not 为第一级,And 为第二级,Or 和 Xor 为第三级 先运 算级别高的, 后运算级别低的, 同级别运算符, 按从左到右的顺序运算 而括号里的

48 第 3 章基本程序设计语句 39 表达式最先运算, 不管其级别高低 2. 单分支与双分支 IF 语句 IF 语句常用来实现单分支或双分支, 它的语法格式有以下两种 [ 格式 1]: IF ( 条件 ) Then 语句 1; [ 功能 ]: 如果条件为 True 就执行语句 1 [ 说明 ]: 如果条件为 False, 就不执行语句 1, 因此又称为单分支语句 格式中的条件可 以是关系表达式或逻辑表达式 [ 格式 2]: IF ( 条件 ) Then 语句 1 Else 语句 2; //Else 之前 ( 语句 1 之后 ) 没有分号 [ 功能 ]: 如果条件为 True 就执行语句 1, 否则执行语句 2 [ 说明 ]: 不管条件是否为 True, 都要执行一个分支语句, 因此又称为双分支语句 格式 中的条件可以是关系表达式或逻辑表达式 注意 : (1) 对语法格式 2( 双分支 IF 语句 ), 语句 1 后面没有分号, 因为 IF Then Else 语句 是一个完整的语句 (2) 两种语法格式中的语句 1 和语句 2 都可以是简单语句或复合语句 ( 复合语句必须包 含在 和 end 之间 ) 例如 : IF (t1>t2) Then t1:=5.5; 这是一个单分支条件 ( 单分支 IF) 语句 当 (t1>t2) 的值为 True 时,t1 被赋值为 5.5 而 下面的语句为双分支条件语句 ( 双分支 IF 语句 ) IF (t1>t2) Then t1:=5.5 Else t1:=0; 当 (t1>t2) 的值为 True 时,t1 被赋值为 5.5, 否则 t1 被赋值为 0 当格式中的语句 1 或语句 2 又是一个 IF 语句时, 则称为 IF 语句的嵌套 例如以下程序 : IF (a>=0) Then IF (a>0) Then a:=b+c Else // 复合语句中嵌套 IF 语句 //Else 前没有分号

49 40 Delphi 7 应用教程 a:=b-c; // 表示 a=0 时,a 被赋值为 b-c end Else a:=0; // 表示 a<0 时,a 被赋值为 0 例 3-2 编写一个做算术题的程序, 程序的设计界面如图 3-3 所示 程序执行时, 单 击 出题 按钮, 将随机产生 100 以内的非负加数和被加数, 当在等号 = 右边的方框里写 出正确答案后, 单击 结果 按钮, 将显示 答案正确 ; 如果输入的答案不正确, 将显示 答 案错误, 如图 3-4 所示 图 3-3 程序设计界面图 3-4 程序运行界面 实现分析 为了产生 100 以内的非负整数, 可以调用随机函数 Random 例如 Random(100) 即可产生 100 以内的非负整数 答案正确显示一种文本, 答案错误显示另一种文本, 因此本例是双分支 IF 语句, 可以用 IF Then Else 格式的语句来实现 界面设计 本例的组件属性设置及组件功能如表 3-4 所示 ( 在对象观察器中设置 ) 表 3-4 组件属性及组件功能 组 件 属性 名 属性 值 作 用 Button1 Caption ' 出 题 ' 单击将随机产生 100 以内的非负整数 Button2 Caption ' 结 果 ' 单击显示有关文本 Label1 Caption '+' 提示做加法运算 Label2 Caption '=' 提示在右边编辑框写出答案 Edit1 Text '' 用来显示被加数 Edit2 Text '' 用来显示加数 Edit3 Text '' 用来填写答案 Edit4 Text '' 显示有关文本 程序代码 procedure TForm1.Button1Click(Sender: TObject); num1,num2:integer; // 定义 2 个局部整型变量 Edit3.Text:=''; // 清空编辑框

50 第 3 章基本程序设计语句 41 Edit4.Text:=''; num1:=random(100); num2:=random(100); Edit1.Text:=IntToStr(num1); Edit2.Text:=IntToStr(num2); procedure TForm1.Button2Click(Sender: TObject); n1,n2,n3:integer; n1:=strtoint(edit1.text); n2:=strtoint(edit2.text); n3:=strtoint(edit3.text); if (n3=n1+n2) then Edit4.Text:=' 答案正确 ' else Edit4.Text:=' 答案错误 '; // 将随机产生的小于 100 的非负整数赋值给 num1 // 将整型数据转换成字符串赋值给编辑框 // 定义 3 个局部整型变量 // 将字符串转换成整型数据赋值给变量 // 双分支 IF 语句 // 条件为真, 执行本语句 // 条件为假, 执行本语句 3. 多分支 Case 语句当分支很多时, 用 IF 语句来实现, 需要嵌套很多层, 写书不但烦琐, 而且也容易出错 为实现多分支,Delphi 提供了 Case 语句, 该语句又称多分支语句, 其语法格式与功能如下 [ 格式 ]: Case ( 表达式 ) of 值 1: 语句 1; 值 2: 语句 2; 值 n: 语句 n; Else 语句 n+1; // 这里的 Else 之前可以有分号 [ 功能 ]: 根据变量的值, 决定执行某个分支语句 [ 说明 ]: 执行 Case 语句时, 首先计算 表达式 的值, 如果是 值 1 到 值 n 之间的 某个值, 则执行该值后面对应的语句, 否则执行 Else 后面的语句, 执行一个分支后将跳转到 后面的语句执行 注意 : (1) 表达式 的值必须是顺序类型, 即整型 字符型 布尔型 子界型和枚举型 (2) 值 1 到 值 n 应该是 表达式 可能出现的值, 它们还应该各不相同 如果 表 达式 的某几个值对应的执行语句是相同的, 那么可以将这几个值写在同一行上, 以逗号分 隔 例如, 当变量等于值 1 和值 2 时, 都执行语句 1, 那么可以这样写 : Case ( 表达式 ) of 值 1, 值 2: 语句 1;

51 42 Delphi 7 应用教程 ( 下面的语句与上面格式相同, 略 ) (3) 语句可以是简单语句, 也可以是复合语句 (4)Else 语句可以省略, 省略时如果 表达式 的值与 值 1 ~ 值 n 中的任何一个值均不相等, 则不执行任何分支, 直接跳转到 end 后面的语句执行 (5)Case 语句可以用 IF 语句来实现, 但 IF 语句不一定能用 Case 语句实现 例 3-3 某个团体按如下规定交会费 : 收入在 0~499 元之间的交 0.5%, 收入在 500~ 999 元之间的交 1%, 收入在 1000~1999 元之间的交 1.5%, 收入在 2000 元及以上的交 2% 编写程序实现 : 根据输入的收入金额, 计算出应该上交的会费 程序设计界面如图 3-5 所示, 程序运行界面如图 3-6 所示 实现分析 图 3-5 程序设计界面图 3-6 程序运行界面 本例含有多种情况, 用多分支语句 Case 来实现比较方便 根据 Case 语句的要求, 表达 式必须是顺序类型, 因此本例必须根据收入构造出一个顺序型的表达式, 如整型表达式 通 过分析可知, 本例中上交会费的转折点发生在 500 的整数倍处, 为简化起见, 可以这样做 : 假定收入为 t, 首先计算 k 的值, 计算公式为 :k:=(t div 500); 当 k 的值为 0 时, 上交会费的 比例是 0.5%; 当 k 等于 1 时, 上交会费的比例是 1%, 其他以此类推 因此可用 k 作为 Case 语句中的表达式 界面设计 本例的组件属性设置及组件功能如表 3-5 所示 表 3-5 组件属性及组件功能 组 件 属性 名 属性 值 作 用 Button1 Caption ' 计 算 ' 单击将计算应交的会费 Label1 Caption ' 收入 =' 提示输入收入金额 Label2 Caption ' 会费 =' 提示这是应该上交的会费 Edit1 Text '' 显示收入金额 Edit2 ReadOnly True 显示上交的会费 程序代码 procedure TForm1.Button1Click(Sender: TObject); f:real; t,k:integer; // 定义变量

52 第 3 章基本程序设计语句 43 t:=strtoint(edit1.text); k:=t div 500; Case k of 0:f:=t*0.5/100; 1:f:=t*1/100; 2,3:f:=t*1.5/100; else f:=t*2/100; Edit2.Text:=FloatToStr(f); // 将字符串转换成整型数据赋值给 t // 整除 // 多分支 Case 语句 // 当收入在 0~499 元时, 交 0.5% 的会费 // 将实型数据转换成字符串赋值给 Edit2.Text 循环结构语句及其基本应用 顺序结构和选择结构只能完成一些简单功能, 实际的程序也很少只由顺序结构和选择结 构组成 用计算机解决许多问题都必须通过循环结构, 可以说没有循环结构就没有程序设计 从程序设计的角度来看, 循环 是指某一个程序段重复执行若干次, 被重复执行的程序段称 循环体 在程序中为控制循环的执行, 通常需要设定一个条件, 当该条件成立时执行循环, 当条件不成立时, 退出循环 把这样的控制循环是否执行的条件称 循环条件 或 循环控 制条件 Delphi 7 实现循环结构的语句一共有 3 种, 分别是 While 语句 Repeat 语句和 For 语句 1.While 语句 While 语句就是当条件成立 ( 为 True) 时, 执行循环, 而在条件不成立 ( 为 False) 时, 将退出循环, 不再执行循环体 While 语句的语法格式及功能如下 [ 格式 ]: While ( 循环条件 ) do 循环体 ; // 循环条件为关系或逻辑表达式, 其值为 True 或 False // 循环体 可以是简单语句或复合语句 [ 功能 ]: 当循环条件为 True 时, 执行循环体 [ 说明 ]: 执行 While 语句时, 首先计算 循环条件, 若其值为 True, 则执行循环体中的 语句, 否则不执行循环体中的语句, 跳出循环 ( 或者称终止循环 ) 每执行完一次循环体中的 语句后, 都要重新计算 循环条件, 若其值为 True, 则接着执行循环体中的语句, 否则不执 行循环体中的语句, 跳出循环 注意 : (1) 可以在循环体的任何位置放置 Break 语句, 用来强制终止整个循环 (2) 也可以在循环体的任何位置放置 Continue 语句, 在该次循环执行完之前就结束本次 循环, 重新判断循环条件, 根据循环条件的值, 决定是否继续执行循环 显然,Continue 语 句和 Break 语句含义是不同的 (3)Break 语句和 Continue 语句通常放置在循环体中的 IF 语句之后, 即在满足某个条件的时候, 结束循环或结束本次循环 (4) 注意循环条件, 它决定了是否执行循环以及执行多少次循环

53 44 Delphi 7 应用教程 例 3-4 利用 While 语句求 的和 程序设计界面如图 3-7 所示, 程序运行 界面如图 3-8 所示 实现分析 图 3-7 程序设计界面图 3-8 程序运行界面 求 的和就是不断地重复做两个数的加法, 因此可以用循环语句来实现 对于 循环语句, 一定要保证循环条件的正确, 因为循环条件决定了循环的次数 本例中的循环条 件就是加数是否小于或等于 50 假设累加和为 s, 加数为 k, 那么使用表达式 s:=s+k; 即可 实现加法,k 的初值应为 2, 同时每做一次加法, 还应该使 k 加 1, 即 k:=k+1; 界面设计 本例的组件属性设置及组件功能如表 3-6 所示 表 3-6 组件属性及组件功能 组 件 属性 名 属性 值 作 用 Button1 Caption ' 计 算 ' 单击它将求累加和 Label1 Caption ' =' 提示这是求累加和 Edit1 ReadOnly True 显示累加结果 程序代码 procedure TForm1.Button1Click(Sender: TObject); k,s:integer; s:=0; k:=2; While (k<=50) do // 定义整型变量 // 给变量赋初值 //While 循环语句 // 循环体为复合语句 s:=s+k; // 实现累加 k:=k+1; // 每加一次, 循环变量加 1 Edit1.Text:=IntToStr(s); 2.Repeat 语句 Repeat 语句用来实现 直到型循环, 其语法格式及功能如下 [ 格式 ]: Repeat

54 第 3 章基本程序设计语句 45 循环体 ; Until ( 循环条件 ); [ 说明 ]: 执行 Repeat 语句时, 首先执行循环体, 执行完后, 再判断循环条件, 如果循环 条件为 False( 注意不是 True), 继续执行循环体 直到某一次判断循环条件, 循环条件为 True, 此时终止循环 对照 While 语句的执行过程, 不难看出 Repeat 语句和 While 语句的区别 :Repeat 是先执 行循环体, 后判断条件, 因此循环体至少要执行一次 ;While 是先判断条件, 只有在条件为 True 时, 才执行循环体, 因此有可能循环体一次也不执行 注意 : (1) 循环体可以是简单语句, 也可以是复合语句, 对于复合语句, 不需要用 end 括起来 (2) 也可以使用 Break 和 Continue 语句来终止循环或结束本次循环 (3) 在 循环条件 为 False 时执行循环, 为 True 时退出循环 例 3-5 用 Repeat 语句实现例 3-4 的功能, 程序设计界面和程序运行界面分别如图 3-7 和图 3-8 所示 实现分析 Repeat 语句是直到型循环语句, 即当条件为 True 时结束循环, 因此循环条件与 While 语句不同 由于累加求和是从 2 加到 50, 因此当加数大于 50 时应该停止加法运算, 故本例中的 循环条件 应该是大于 50 程序代码 procedure TForm1.Button1Click(Sender: TObject); k,s:integer; // 定义整型变量 // 给变量赋初值 s:=0; k:=2; Repeat s:=s+k; //Repeat 循环语句 // 实现累加 k:=k+1; // 每加一次, 循环变量加 1 Until (k>50); // 当加数大于 50 就中断循环, 循环条件与 例 3-4 不同 Edit1.Text:=IntToStr(s); 上面程序段执行完毕后,s 的值为 1274 这里请思考 : 能否将循环条件改为 k=50? 如 果一定要这样改, 那么其他语句该如何修改? 3.For 语句在循环次数未知的情况下, 使用上述的两条语句很容易求解 在循环次数已知的情况下, 使用 For 循环语句将会使编程更加方便 For 循环语句的语法格式及功能如下 [ 格式 ]: For 循环变量 := 初值 To (DownTo) 终值 Do 循环体 ;

55 46 Delphi 7 应用教程 [ 功能 ]: 执行规定次数的循环 [ 说明 ]: 执行 For 循环语句时, 对递增循环而言 ( 使用 To ), 首先把初值赋给循环变量, 然后判断循环变量的值是否大于终值, 如果是, 将结束循环的执行 ; 如果不是, 将执行循环 体, 循环体执行后使循环变量自动增加 1, 并开始新的循环, 即通过判断循环变量与终值的关 系以决定是执行循环体还是结束循环 对递减循环而言 ( 使用 DownTo ), 也是首先把初值 赋给循环变量, 然后判断循环变量的值是否小于终值, 如果是, 将结束循环的执行 ; 如果不 是, 将执行循环体, 循环体执行后使循环变量自动减少 1, 并开始新的循环, 即通过判断循环变量与终值的关系以决定是执行循环体还是结束循环 注意 : (1) 循环变量 只能是顺序类型 ( 一共 5 种类型, 请查阅前面章节 ) (2) 格式中的 初值 和 终值 就是循环变量的 初值 和 终值 (3) 对递增循环, 每循环一次, 循环变量的值自动增加 1; 对递减循环, 每循环一次, 循环变量自动减少 1 来 (4) 循环体可以是简单语句也可以是复合语句, 若为复合语句, 需要用 end 括起 (5) 在循环体中可以使用 Continue 和 Break 语句, 它们也通常位于 IF 语句之后 例 3-6 用 For 语句实现例 3-4 的功能, 程序设计界面和程序运行界面仍然如图 3-7 和图 3-8 所示 实现分析 对于 For 语句, 必须准确地知道循环变量的初值和终值, 本例中, 循环变量是加数, 其 初值应该是 2, 终值是 50 程序代码 procedure TForm1.Button1Click(Sender: TObject); k,s:integer; s:=0; for k:=2 to 50 do s:=s+k; Edit1.Text:=IntToStr(s); // 定义整型变量 // 给变量赋初值 // 注意循环条件及其初值和终值 // 实现累加 可见, 对于次数已知的循环,For 语句比 While 语句和 Repeat 语句简练多了 3.2 典型实例 典型实例一 实例题目 : 邮箱登录程序

56 第 3 章基本程序设计语句 47 在很多场合需要输入密码, 例如使用银行卡 登录电子邮箱 QQ 聊天等 下面利用 IF 语句编写一个类似登录服务的简单程序, 程序的设计界面如图 3-9 所示 程序实现的功能如下 : 在编辑框中输入密码, 单击 确定 按钮, 如果输入的密码正确 ( 假定正确密码是 123abc ), 就在另一个编辑框显示 欢迎使用本系统 文本信息, 文本的字号为 18 号, 字体为隶书, 字 体颜色为蓝色, 如图 3-10 所示 如果输入的密码不正确, 就显示 警告, 密码错! 文本信 息, 文本字号还是 18 号, 字体为楷体, 字体颜色为红色, 如图 3-11 所示 图 3-9 程序设计界面图 3-10 程序运行界面 ( 一 ) 图 3-11 程序运行界面 ( 二 ) 实现方法 本例显然是一个双分支结构 : 当密码正确, 显示一个文本 ; 当密码错误, 显示另一个文 本 因此需要用 IF Then Else 语句来实现 界面设计 窗体组件属性设置及其作用如表 3-7 所示 表 3-7 组件属性及组件功能 组件属性名属性值作用 Button1 Caption ' 确定 ' 根据密码正确与否单击将显示不同文本 Edit1 Text '' 用来输入密码 Edit2 程序代码 Text ReadOnly '' True 根据输入的密码正确与否显示相关内容 procedure TForm1.Button1Click(Sender: TObject); if (Edit1.Text='123abc') then //Edit1.Text='123abc' 为关系表达式 // 当关系表达式值为真时执行下面的复合语句 Edit2.Text:=' 欢迎使用本系统 '; // 文本内容为欢迎使用本系统 Edit2.Font.Name:=' 隶书 '; // 文本字体为隶书 Edit2.Font.Color:=clBlue; // 字体颜色为蓝色 Edit2.Font.Size:=18; // 字号为 18 号 end else //else 之前没有分号 // 当密码错执行下面的复合语句 Edit2.Text:=' 警告, 密码错!'; // 文本内容为 警告, 密码错! Edit2.Font.Name:=' 楷体 '; // 字体变为楷体

57 48 Delphi 7 应用教程 Edit2.Font.Size:=18; Edit2.Font.Color:=clRed; // 字体颜色为红色 典型实例二 实例题目 : 购物打折程序 节日来临, 商家为促销搞优惠活动, 具体优惠办法如下 : (1) 一次性购物金额少于 100 元的, 不优惠 ; (2) 一次性购物金额大于等于 100 元但少于 300 元的, 优惠 5%; (3) 一次性购物金额大于等于 300 元但少于 500 元的, 优惠 10%; (4) 一次性购物金额大于等于 500 元但少于 1000 元的, 优惠 15%; (5) 一次性购物金额大于等于 1000 元的, 优惠 20% 请编写程序实现上面的功能, 当输入购物金额时, 单击 付款 按钮, 计算实际支付的 金额 程序设计界面如图 3-12 所示, 程序运行界面如图 3-13 所示 图 3-12 程序设计界面 图 3-13 程序运行界面 实现方法 本例是一个多分支选择结构, 可使用 Case 语句来实现 使用 Case 语句实现多分支的关键是构造 Case 后面的表达式 通过分析可知, 由于优惠办法规定的转折点的金额刚好是 100 的整数倍, 因此可用购物金额取整数部分再整除 100 作为 Case 后面的表达式 若表达式的值 为不同的值时, 执行的语句是一样的, 则可把它们合并到一个分支中 例如当购物金额少于 500 元但大于等于 300 元时, 优惠比例是相同的, 该语句可以这样写 :3,4: s:=t*(1 0.1); 其中, s 表示实际支付的金额,t 表示购物金额 界面设计 窗体组件属性设置及其作用如表 3-8 所示 表 3-8 组件属性及组件功能 组件属性名属性值作用 Button1 Caption ' 付款 ' 单击将计算出实际应该支付的购物金额 Edit1 Text '' 用来输入购物金额 Edit2 Text ReadOnly '' True 显示实际应该支付的购物金额

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例 帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例 这篇文章主要介绍了帝国 CMS 下在 PHP 文件中调用数据库类执行 SQL 语句实例, 本文还详细介绍了帝国 CMS 数据库类中的一些常用方法, 需要的朋友可以参考下 例 1: 连接 MYSQL 数据库例子 (a.php)

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1ADBBB7> 能源与动力工程学院 结构化编程 结构化程序设计 循环 循环结构 确定性循环 非确定性循环 I=1 sum=sum+i I = I +1 陈 斌 I>100 Yes No 目录 求和 :1+2+3++100 第四节循环的应用 PROGRAM GAUSS INTEGER I, SUM 计数器 SUM = 0 DO I = 1, 100, 1 SUM = SUM + I print*, I, SUM DO

More information

epub83-1

epub83-1 C++Builder 1 C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r C + + B u i l d e r 1.1 1.1.1 1-1 1. 1-1 1 2. 1-1 2 A c c e s s P a r a d o x Visual FoxPro 3. / C / S 2 C + + B u i l d e r / C

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double

More information

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书

图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, ISBN Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B 中国版本图书馆 CIP 数据核字 (2005) 第 号 书 做事细节全书 赵彦锋著 企业管理出版社 图书在版编目穴 CIP 雪数据做事细节全书 / 赵彦锋编著郾 北京 : 企业管理出版社, 2005.11 ISBN 7-80197-338-0 Ⅰ 郾做... Ⅱ 郾赵... Ⅲ 郾工作方法 通俗读物 Ⅳ 郾 B026-49 中国版本图书馆 CIP 数据核字 (2005) 第 136676 号 书 名 : 做事细节全书 作 者 : 赵彦锋 责任编辑 : 吴太刚

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章流程控制和数组 3.1 实验目的 (1) 熟练掌握控制台应用程序的代码编写和调试, 以及运行方法 (2) 掌握选择结构的一般语法格式和应用 (3) 掌握 switch 语句的用法 (4) 掌握选择结构的嵌套的用法, 能灵活使用选择结构解决实际问题 (5) 掌握 while 循环语句的一般语法格式 (6) 掌握 for 循环语句的一般语法格式 (7) 掌握循环嵌套的语法格式 (8) 掌握一维数组的定义

More information

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP: ******************* * 关于 Java 测试试题 ******

エスポラージュ株式会社 住所 : 東京都江東区大島 東急ドエルアルス大島 HP:  ******************* * 关于 Java 测试试题 ****** ******************* * 关于 Java 测试试题 ******************* 問 1 运行下面的程序, 选出一个正确的运行结果 public class Sample { public static void main(string[] args) { int[] test = { 1, 2, 3, 4, 5 ; for(int i = 1 ; i System.out.print(test[i]);

More information

Microsoft PowerPoint - 07 派生数据类型

Microsoft PowerPoint - 07 派生数据类型 能源与动力工程学院 目录 派生类型 陈 斌 固有数据类型 数值型 (numerical) 整型 INTEGER 实型 REAL 复数型 COMPLEX 非数值型 字符型 CHARACTER 逻辑型 ( 布尔型 )LOGICAL 自定义数据类型 ( 派生类型, derived type) 派生类型是指用户利用 Fortran 系统内部类型, 如整型 实型 复数型 逻辑型 字符型等的组合自行创建出一个新的数据类型,

More information

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos(

第一章三角函数 1.3 三角函数的诱导公式 A 组 ( ) 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角, 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C 2 ( 中诱导公式 ) ( ) B. cos( 第一章三角函数 1. 三角函数的诱导公式 A 组 一 选择题 : 共 6 小题 1 ( 易诱导公式 ) 若 A B C 分别为 ABC 的内角 则下列关系中正确的是 A. sin( A B) sin C C. tan( A B) tan C ( 中诱导公式 ) B. cos( B C) cos A D. sin( B C) sin A sin60 cos( ) sin( 0 )cos( 70 ) 的值等于

More information

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 第 1 页共 32 页 crm Mobile V1.0 for IOS 用户手册 一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页 二 crm Mobile 界面介绍 : 第 3 页共 32 页 三 新建 (New) 功能使用说明 1 选择产品 第 4 页共 32 页 2 填写问题的简要描述和详细描述 第 5 页共

More information

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc

Microsoft Word - 《C语言开发入门》课程教学大纲-2.doc C 语言开发入门 课程教学大纲 ( 课程英文名称 ) 课程编号 :201409210011 学分 :5 学分学时 :60 学时 ( 其中 : 讲课学时 :37 学时上机学时 :23 学时 ) 先修课程 : 计算机导论后续课程 :C++ 程序设计适用专业 : 信息及其计算机相关专业开课部门 : 计算机系 一 课程的性质与目标 C 语言开发入门 是计算机各专业必修的基础课程, 是数据结构 C++ Java

More information

VB程序设计教程

VB程序设计教程 高 等 学 校 教 材 Visual Basic 程 序 设 计 教 程 魏 东 平 郑 立 垠 梁 玉 环 石 油 大 学 出 版 社 内 容 提 要 本 书 是 按 高 等 学 校 计 算 机 程 序 设 计 课 程 教 学 大 纲 编 写 的 大 学 教 材, 主 要 包 括 VB 基 础 知 识 常 用 程 序 结 构 和 算 法 Windows 用 户 界 面 设 计 基 础 文 件 处

More information

手册 doc

手册 doc 1. 2. 3. 3.1 3.2 3.3 SD 3.4 3.5 SD 3.6 3.7 4. 4.1 4.2 4.3 SD 4.4 5. 5.1 5.2 5.3 SD 6. 1. 1~3 ( ) 320x240~704x288 66 (2G SD 320x2401FPS ) 32M~2G SD SD SD SD 24V DC 3W( ) -10~70 10~90% 154x44x144mm 2. DVR106

More information

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378>

<4D F736F F D205A572D2D A1AAA1AAD4ACE7F42D43D3EFD1D4CAB5D1B5BDCCB3CC2E646F6378> 第 1 部分 Visual Studio 6.0 开发环境介绍 本书以 Visual C++ 6.0 作为 C 源程序的实践开发环境, 本章将首先介绍 Visual C++ 6.0 环境的基本操作, 包括 Visual C++ 6.0 的安装和启动,C 源程序的编辑 运行与调试 1.1 安装与启动 Visual C++ 6.0 MSDN Visual C++ 6.0 1.1 Microsoft Visual

More information

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 4 月 19 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d

More information

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple

// HDevelopTemplateWPF projects located under %HALCONEXAMPLES%\c# using System; using HalconDotNet; public partial class HDevelopExport public HTuple halcon 与 C# 混合编程之 Halcon 代码调用 写在前面 完成 halcon 与 C# 混合编程的环境配置后, 进行界面布局设计构思每一个按钮所需要实现 的功能, 将 Halcon 导出的代码复制至相应的 C# 模块下即可 halcon 源程序 : dev_open_window(0, 0, 512, 512, 'black', WindowHandle) read_image (Image,

More information

Microsoft PowerPoint - 03.Fortran程序设计基础1

Microsoft PowerPoint - 03.Fortran程序设计基础1 简单 Fortran 90 程序的构造形式 : 第二讲 Fortran 程序设计基础 (2) [PROGRAM 程序名 ] [ 声明语句 ] [ 执行语句 ] END [PROGRAM [ 程序名 ]] 程序的书写 (P5) PROGRAM MONEY!calculate balance after interest compounded! 根据利息计算余额 REAL BALANCE, INTEREST,

More information

FJXBQ

FJXBQ 高等医学院校选用教材 ( 供成人教育中医药专业 中西医结合专业使用 ) 方剂学 闫润红 主编 2 0 0 1 内容简介本书是供成人教育中医药专业 中西医结合专业使用的教材 全书分总论和各论两部分, 总论部分对中医方剂的基本理论, 如治法 君臣佐使 剂型 剂量等及其现代研究进展进行了介绍 各论部分对常用方剂的主治病证 配伍意义 临床应用 加减变化规律及现代研究概况等内容, 按分类进行了系统阐述 在保证方剂学学科知识结构完整性的前提下,

More information

计算概论A B03 C++语言的基本成分 - 运算成分(2)

计算概论A B03 C++语言的基本成分 - 运算成分(2) 计算概论 A 程序设计部分 C 语言的构成成分 运算成分 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn C 语言中的运算符 C 语言的运算符范围很宽 求字节数运算符 : sizeof 下标运算符 [ ] 赋值运算符 = 算术运算符 + - * / % 关系运算符 < > == >= > ~

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/

JAVA 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:/ 单元 2.1 四则运算机 ( 一 ) 单元教学进度设计 教学环节 教学内容 教师学生活动活动 反馈 反馈课前作业完成情况 反馈加分 1. 下面哪些是合法的变量名? ( ) A.2variable 答案 :DEG B..variable2 解答 : C.._whatavariable A:// 不能以数字开头 D._3_ B:// 不能用点和空格 提问 抢答 E.$anothervar C: // 不能用点和空格

More information

Microsoft Word - VB全文.doc

Microsoft Word - VB全文.doc 实验 5 顺序结构 一 实验目的 1. 熟悉常用的输入和输出的方法 2. 掌握 InputBox 函数和 MsgBox 函数的用法 3. 掌握编写顺序结构程序的一般步骤 二 实验内容 1. 设计一个计算圆面积的程序 要求 : 利用 InputBox 函数输入圆的半径, 利用 MsgBox 显示最后的计算结果 2. 设计一个简单的水果商店结算程序 要求 : 利用文本框输入香蕉 梨子 苹果三类水果的单价和重量,

More information

《C语言程序设计》教材习题参考答案

《C语言程序设计》教材习题参考答案 教材名称 : C 语言程序设计 ( 第 1 版 ) 黄保和 江弋编著清华大学出版社 ISBN:978-7-302-13599-9, 红色封面 答案制作时间 :2011 年 2 月 -5 月 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p=&a 2. 设已定义 int x,*p=&x;, 则下列表达式中错误的是 :B)&*x 3. 若已定义 int a=1,*b=&a;,

More information

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法

第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 第 3 章选择结构 q q q Python 中表示条件的方法 if 语句 选择结构程序设计方法 3.1 条件的描述 3.1.1 关系运算 Python 的关系运算符有 : =( 大于等于 ) ==( 等于 )!=( 不等于 ) 关系运算符用于两个量的比较判断 由关系运算符将两个表达式连接起来的式子就称为关系表达式, 它用来表示条件, 其一般格式为

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 按钮对象 (button) 当 JavaScript 读到 标记中的 type 属性值为 button 时, 自动建立一个按钮对象, 并将该对象放到表单对象的 elements 数组当中 按钮对象包括 : 普通按钮 (button) 提交按钮 (submit) 重置按钮 (reset) 1. 使用按钮对象的格式 document.forms[ 索引值 ].elements[ 索引值

More information

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 odps-sdk 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基 开放数据处理服务 ODPS SDK SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基础功能的主体接口, 搜索关键词 "odpssdk-core" 一些

More information

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料

OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢   学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢 Email: 51141201063@ecnu.cn 学习使用文本编辑器 学习使用 cmd: Power shell 阅读参考资料 OOP with Java Java 类型 引用 不可变类型 对象存储位置 作用域 OOP

More information

《C语言程序设计》第2版教材习题参考答案

《C语言程序设计》第2版教材习题参考答案 教材 C 语言程序设计 ( 第 2 版 ) 清华大学出版社, 黄保和, 江弋编著 2011 年 10 月第二版 ISBN:978-7-302-26972-4 售价 :35 元 答案版本 本习题答案为 2012 年 2 月修订版本 一 选择题 1. 设已定义 int a, * p, 下列赋值表达式中正确的是 :C)p = &a A. *p = *a B. p = *a C.p = &a D. *p =

More information

第2章 数据类型、常量与变量

第2章  数据类型、常量与变量 第 2 章 数 据 类 型 常 量 与 变 量 在 计 算 机 程 序 中 都 是 通 过 值 (value) 来 进 行 运 算 的, 能 够 表 示 并 操 作 值 的 类 型 为 数 据 类 型 在 本 章 里 将 会 介 绍 JavaScript 中 的 常 量 (literal) 变 量 (variable) 和 数 据 类 型 (data type) 2.1 基 本 数 据 类 型 JavaScript

More information

Microsoft Word - 正文.doc

Microsoft Word - 正文.doc 第 2 章 Java 语言基础 通过本章的实践, 要掌握 Java 中的标识符 关键字 常量, 熟练掌握算术 关 系 逻辑 条件 赋值 位运算符的使用, 掌握简单顺序结构的程序设计 2.1 典型习题解答 2.1 Java 中怎样进行注释? 解答 Java 语言中的注释有 3 种形式 : (1) 单行 : // (2) 多行 : /* */ (3) 文档注释 : /** */ 第三种形式是第二种形式的变形,

More information

Microsoft PowerPoint - OPVB1基本VB.ppt

Microsoft PowerPoint - OPVB1基本VB.ppt 大 綱 0.VB 能 做 什 麼? CH1 VB 基 本 認 識 1.VB 歷 史 與 版 本 2.VB 環 境 簡 介 3. 即 時 運 算 視 窗 1 0.VB 能 做 什 麼? Visual Basic =>VB=> 程 式 設 計 語 言 => 設 計 程 式 設 計 你 想 要 的 功 能 的 程 式 自 動 化 資 料 庫 計 算 模 擬 遊 戲 網 路 監 控 實 驗 輔 助 自 動

More information

Guava学习之Resources

Guava学习之Resources Resources 提供提供操作 classpath 路径下所有资源的方法 除非另有说明, 否则类中所有方法的参数都不能为 null 虽然有些方法的参数是 URL 类型的, 但是这些方法实现通常不是以 HTTP 完成的 ; 同时这些资源也非 classpath 路径下的 下面两个函数都是根据资源的名称得到其绝对路径, 从函数里面可以看出,Resources 类中的 getresource 函数都是基于

More information

chp3

chp3 Java 软件设计基础 3. 流程控制 3.1 语句控制结构 语句类型 变量声明语句 用来声明变量, 格式为 : 表达式语句 在一个表达式的最后加上一个分号构成的语句, 分号是语句不可缺少的部分, 格式为 : 变量 = 表达式 ; 复合语句 [ 修饰符 ] 类型名变量名 1[, 变量名 2][, ]; [ 修饰符 ] 类型名变量名 1[= 初值 1][, 变量名 2][= 初值 2][, ]; 将相关语句组合在一起就构成复合语句,

More information

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默

试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期  开放本科  期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默 试卷代号 :1253 座位号 E 口 国家开放大学 ( 中央广播电视大学 )2014 年秋季学期 " 开放本科 " 期末考试 C 语言程序设计 A 试题 2015 年 1 月 E 四! 五 总分! 一 单选题 ( 每小题 2 分, 共 20 分 ) 1. 由 C 语言源程序文件编译而成的目标文件的默认扩展名为 ( ) A. cpp B. c C. exe D. obj 2. 设 x 和 y 均为逻辑值,

More information

res/layout 目录下的 main.xml 源码 : <?xml version="1.0" encoding="utf 8"?> <TabHost android:layout_height="fill_parent" xml

res/layout 目录下的 main.xml 源码 : <?xml version=1.0 encoding=utf 8?> <TabHost android:layout_height=fill_parent xml 拓展训练 1- 界面布局 1. 界面布局的重要性做应用程序, 界面是最基本的 Andorid 的界面, 需要写在 res/layout 的 xml 里面, 一般情况下一个 xml 对应一个界面 Android 界面布局有点像写 html( 连注释代码的方式都一样 ), 要先给 Android 定框架, 然后再在框架里面放控件,Android 提供了几种框架,AbsoluteLayout,LinearLayout,

More information

Microsoft Word - 实验3.doc

Microsoft Word - 实验3.doc 实验 3 基本控制结构 3.1 基本控制结构程序设计 实验目的 (1) 掌握 3 种基本结构的程序流程图 (2) 熟练掌握分支结构的程序设计方法 (3) 熟练掌握循环结构的程序设计方法 实验内容 Visual Basic 是结构化的程序设计语言, 有 3 种基本控制结构 : 顺序结构 分支结构和循环结构, 循环结构又分 当型 循环和 直到型 循环 其程序流程图如图 3-1 所示 真 E 假 当 E

More information

5. 利用对象监视器可以设置窗体或组件的 ( ) A. 方法 B. 属性 c. 外观 D. 执行代码 6. 编辑框 (Edi t) 中的文本发生改变时引发的事件是 ( ) A. AutoSize C. SetFocus B. OnChange D. SetText 7. 现建立一个简单报表, 要求其

5. 利用对象监视器可以设置窗体或组件的 ( ) A. 方法 B. 属性 c. 外观 D. 执行代码 6. 编辑框 (Edi t) 中的文本发生改变时引发的事件是 ( ) A. AutoSize C. SetFocus B. OnChange D. SetText 7. 现建立一个简单报表, 要求其 试卷代号 : 2 2 3 5 座位号仁口 国家开放大学 ( 中央广播电视大学 ) 2 0 1 4 年春季学期 " 开放专科 " 期末考试 Delphi 程序设计 试题 题号 一! 二 三 四! 五 总分 分数 I I I I I I I l 得分! 评卷人 I I I- 单项选择题 ( 3 0 分, 每题 3 分 ) 2014 年 7 月 1. 下面哪句话对 De l p hi 的描述是正确的 (

More information

《计算概论》课程 第十九讲 C 程序设计语言应用

《计算概论》课程 第十九讲  C 程序设计语言应用 计算概论 A 程序设计部分 字符数组与字符串 李戈 北京大学信息科学技术学院软件研究所 lige@sei.pku.edu.cn 字符数组的定义 #include int main() char a[10] = 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' ; for (int i = 0; i < 10; i++) cout

More information

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464>

<C8EBC3C5C6AAA3A8B5DA31D5C2A3A92E696E6464> 第 1 章 进入 Photoshop 的全新世界 本章导读 Photoshop 1 1.1 Photoshop CS6 Photoshop Photoshop 1.1.1 Photoshop POP 1-1 图 1-1 平面广告效果 1.1.2 Photoshop 1-2 Photoshop CS6 Photoshop CS6 Photoshop CS6 Extended 3D 3 Photoshop

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc

Microsoft Word Visual_Basic程序设计上机实践教程正文.doc 实验 3 顺序和分支结构程序设计 实验目的 1. 掌握顺序结构的程序设计思想 2. 掌握命令按钮 (CommandButton) 标签 (Label) 文本框 (TextBox) 编辑框 (EditBox) 等常用控件的使用方法 3. 了解并掌握对话框函数 MessageBox() 的含义与用法 4. 了解和熟悉线条控件 形状控件的画法以及主要属性的用法 实验内容 1. 顺序结构 实训 3-1 编写一应用程序,

More information

untitled

untitled 图书在版编目 (CIP) 数据 家居美化中的巧 / 陈赞等编著. 北京 : 中国林业出版社,2003.4 ISBN 7-5038-3399-8 I. 家 II. 陈 III. 住宅 室内装饰 基本知识 IV.TU241 中国版本图书馆 CIP 数据核字 (2003) 第 022376 号 版权所有翻印必究 1 2002.10 1 ...1...1...2...2...3...4...5...6...7...8...8...10...10...11...12...12...13...13...15...15...16...17...18...19...20...20...20...21...22

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2

运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 第十一讲 运算符重载 与类型转换 运算符重载 为什么要 运算符重载 那些运算符可以重载, 哪些不可以 如何实现运算符重载 实现方式 : 成员函数与非成员函数 类型转换 怎样实现对象与基本数据类型数据的运算 2 为什么要运算符重载 预定义的运算符只针对基本数据类型, 若要对类的对象进行类似的运算, 需要重新定义运算符的功能 运算符重载实质就是函数重载 : 对已有的运算符赋予多重含义, 使得同一个运算符作用于不同类型的数据时导致不同的行为

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 第 3 章 流程控制语句的应用 语句是程序中最小的程序指令, 即程序完成一次完整正操的基本单位 在 C# 中, 可以使用多种类型的语句, 每一种类型的语句又可以通过多个关键字实现 通过这些语句可以控制程序代码的逻辑, 提高程序的灵活性, 从而实现比较复杂的程序逻辑 本章主要内容 : 选择语句的应用 迭代语句的应用 跳转语句的应用 3.1 选择语句的应用 选择语句也叫作分支语句, 选择语句根据某个条件是否成立来控制程序的执行流程

More information

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式]

Microsoft PowerPoint - 5. 指针Pointers.ppt [兼容模式] 指针 Pointers 变量指针与指针变量 Pointer of a variable 变量与内存 (Variables and Memory) 当你声明一个变量时, 计算机将给该变量一个内存, 可以存储变量的值 当你使用变量时, 计算机将做两步操作 : - 根据变量名查找其对应的地址 ; - 通过地址对该地址的变量内容进行读 (retrieve) 或写 (set) 变量的地址称为变量的指针! C++

More information

RUN_PC連載_12_.doc

RUN_PC連載_12_.doc PowerBuilder 8 (12) PowerBuilder 8.0 PowerBuilder PowerBuilder 8 PowerBuilder 8 / IDE PowerBuilder PowerBuilder 8.0 PowerBuilder PowerBuilder PowerBuilder PowerBuilder 8.0 PowerBuilder 6 PowerBuilder 7

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

没有幻灯片标题

没有幻灯片标题 第 2 章 C 语言的基本数据类型与表达 式 2. 1 C 语言的语法基础 2. 2 C 语言的基本数据类型 2. 3 常量和变量 2. 4 运算符与表达式 2. 5 数据类型转换 用 第 2 章 C 语言的基本数据类型与表达 2.1 C 语言的语法基础 2. 1. 1 C 语言字符集 式 C 语言的基本符号可分 4 个类, 归纳如下 : (1) 英文字母 : 大小写各 26 个, 共计 52 个

More information

Microsoft Word - 实验3.doc

Microsoft Word - 实验3.doc 实验 3 C# 和 ASP.NET 4.5 一 实验目的 (1) 了解 C# 语言规范 (2) 掌握 C# 基础语法 流程控制和异常处理等 (3) 掌握创建 C# 类并应用于 ASP.NET 4.5 页面中的方法 (4) 掌握 ASP.NET 4.5 页面的调试方法 二 实验内容及要求 1. 转换输入的成绩到相应的等级要求如下 : (1) 页面浏览效果如图 3-1 所示 (2) 成绩输入使用 TextBox

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041

图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, ( 沈郎文字 ) ISBN Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041 图书在版编目 (CIP) 数据 满堂花醉 / 沈胜衣著. 南京 : 江苏教育出版社, 2005.4 ( 沈郎文字 ) ISBN 7-5343-6512-0 Ⅰ. 满... Ⅱ. 沈... Ⅲ. 作家 - 人物研究 - 世界 Ⅳ.K815.6 中国版本图书馆 CIP 数据核字 (2005) 第 041843 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3

Generated by Unregistered Batch DOC TO PDF Converter , please register! 浙江大学 C 程序设计及实验 试题卷 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:3 浙江大学 C 程序设计及实验 试题卷 2002-2003 学年春季学期考试时间 : 2003 年 6 月 20 日上午 8:30-10:30 注意 : 答题内容必须写在答题卷上, 写在本试题卷上无效 一. 单项选择题 ( 每题 1 分, 共 10 分 ) 1. 下列运算符中, 优先级最低的是 A.

More information

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 学习目标 描述 JSP 表达式语言的语法 认识使用 JSP 表达式的优点 在 JSP 中使用表达式语言 表达式语言简介 5 1 EL 为表达式语言 由两个组开发 JSP 标准标签库专家组 JSP 2.0 专家组 JSP 表达式语言的语法 ${EL Expression} JSP EL 表达式用于以下情形 静态文本 标准标签和自定义标签 表达式语言简介

More information

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式]

Microsoft PowerPoint - 4. 数组和字符串Arrays and Strings.ppt [兼容模式] Arrays and Strings 存储同类型的多个元素 Store multi elements of the same type 数组 (array) 存储固定数目的同类型元素 如整型数组存储的是一组整数, 字符数组存储的是一组字符 数组的大小称为数组的尺度 (dimension). 定义格式 : type arrayname[dimension]; 如声明 4 个元素的整型数组 :intarr[4];

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 Python 入门 孙栩 xusun@pku.edu.cn 1 课程的整体介绍 目录 contents 2 Python 的介绍及如何安装 Python 3 使用 Python 编写简单小程序 1 课程的整体介绍 课程的整体介绍 Python 入门 1. Python 的介绍与安装 2. 变量与表达式 3. 一些简单的小程序 数据结构 1. 字符串 2. 列表 3. 元组 4. 字典 5. 集合 分支与循环

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Microsoft Word - CX1000-HMI_程序开发_PLC通讯

Microsoft Word - CX1000-HMI_程序开发_PLC通讯 用 VB.Net 开发 CX1000 的 HMI 第二部分和 TwinCAT PLC 通讯 一 TwinCAT 动态库 TwinCAT.Ads.dll The TwinCAT.Ads.dll 是一个.NET 类库, 它提供和 ADS 设备通讯的类 如果 TwinCAT PLC 运行在 IPC 上, 则需要添加的类库是路径 \TwinCAT\ADS Api\.NET\v1.1.4322 下的 TwinCAT.Ads.dll

More information

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1A1D4F1>

<4D F736F F F696E74202D BDE1B9B9BBAFB3CCD0F2C9E8BCC D20D1A1D4F1> 能源与动力工程学院 结构化编程 结构化程序设计 选择 结构化编程的三种基本结构 : 顺序结构 I=1 选择 ( 分支 ) 结构 循环结构 sum=sum+i I = I +1 陈 斌 A?=B NO I>100 No YES Yes 目录 第一节逻辑运算 第一节逻辑运算 第二节 I 语句 逻辑运算 算术运算 关系运算 逻辑运算 关系运算符 运算优先级 第三节浮点数及字符的逻辑运算 90 77 功能

More information

基于UML建模的管理管理信息系统项目案例导航——VB篇

基于UML建模的管理管理信息系统项目案例导航——VB篇 PowerBuilder 8.0 PowerBuilder 8.0 12 PowerBuilder 8.0 PowerScript PowerBuilder CIP PowerBuilder 8.0 /. 2004 21 ISBN 7-03-014600-X.P.. -,PowerBuilder 8.0 - -.TP311.56 CIP 2004 117494 / / 16 100717 http://www.sciencep.com

More information

数据结构

数据结构 信息管理与信息系统专业 第 3 章变量与表达式 任课教师 : 吕雅丽 本章内容 3.1 C# 基本数据类型 3.2 常量与变量 3.3 创建并使用枚举类型 3.4 运算符与表达式类型 3.5 运算符的优先级与结合性 2 3.1 C# 基本数据类型 3.1.1 数值类型 1. 整数类型 整数类型又有有符号整数与无符号整数 有符号整数可以带正负号, 无符号整数不需带正负号, 默认为正数 有符号整数包括

More information

C#程序设计实验

C#程序设计实验 程序设计基础 实验指导 / 实验一 : 认识 C# 1 程序设计基础 实验指导 实验一 : 认识 C# 一 实验目的 1 掌握 Visual Studio 的基本操作方法, 学会使用该编译工具 2 掌握编辑 编译 运行控制台应用程序的基本过程 3 掌握建立 Windows 窗体应用程序的基本过程 4 通过运行 C# 程序, 初步了解 C# 程序的特点 二 实验学时 2 学时 三 实验类型 验证性实验

More information

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算

图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, ( 图灵程序设计丛书 ) ISBN Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算 图灵程序设计丛书 程序员的数学 3: 线性代数 [ 日 ] 平冈和幸堀玄著 卢晓南译 图书在版编目 (CIP) 数据程序员的数学. 3, 线性代数 /( 日 ) 平冈和幸, ( 日 ) 堀玄著 ; 卢晓南译. 北京 : 人民邮电出版社, 2016.3 ( 图灵程序设计丛书 ) ISBN 978-7-115-41774-9 Ⅰ. 1 程 Ⅱ. 1 平 2 堀 3 卢 Ⅲ. 1 电子计算机 数学基础 2

More information

《C语言基础入门》课程教学大纲

《C语言基础入门》课程教学大纲 C 语 言 开 发 入 门 教 程 课 程 教 学 大 纲 课 程 编 号 :201409210011 学 分 :5 学 分 学 时 :58 学 时 ( 其 中 : 讲 课 学 时 :39 学 时 上 机 学 时 :19 学 时 ) 先 修 课 程 : 计 算 机 导 论 后 续 课 程 :C++ 程 序 设 计 适 用 专 业 : 信 息 及 其 计 算 机 相 关 专 业 开 课 部 门 : 计

More information

!"# $ %&'!"#$

!# $ %&'!#$ !"# $ %&'!"#$ 内容简介本书是在作者已经出版的 XilinxAlProgrammableZynq-7000SoC 设计指南 一书的基础上进行大幅度修订而成的 本书的一大特色就是更加突出 ARMCortex-A9 双核处理器的使用 此外, 在修订本书时采用了 Xilinx 最新的 Vivado2015 4 集成开发环境 通过本书的修订, 能反映最新的 ARM 嵌入式设计技术和实现方法, 同时也能更加凸显采用异构架构的

More information

用户大会 论文集2.2.doc

用户大会 论文集2.2.doc MagGis MapGis GIS MagGis API DLL MapGis VC++ VB BC++ Delphi., Windows API MapGis VC++V Delphi Delphi Delphi MapGis Delphi Delphi Windows Delphi Delphi MapGis MapGis DLL API MapGis function _InitWorkArea(HINST:Integer):Integer;

More information

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185

图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, ISBN Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 04185 图书在版编目 (CIP) 数据 文学与现代性批判 / 邵建著. 南京 : 江苏教育出版社, 2005.4 ISBN 7-5343-6528-7 Ⅰ. 文... Ⅱ. 邵... Ⅲ. 当代文学 - 文学研究 - 中国 Ⅳ.I206.7 中国版本图书馆 CIP 数据核字 ( 2005 ) 第 041850 号 出版者社址网址出版人 南京市马家街 31 号邮编 :210009 http://www.1088.com.cn

More information

无类继承.key

无类继承.key 无类继承 JavaScript 面向对象的根基 周爱 民 / aimingoo aiming@gmail.com https://aimingoo.github.io https://github.com/aimingoo rand = new Person("Rand McKinnon",... https://docs.oracle.com/cd/e19957-01/816-6408-10/object.htm#1193255

More information

Microsoft Word - 第3章.doc

Microsoft Word - 第3章.doc 52 5 天 通 过 职 称 计 算 机 考 试 ( 考 点 视 频 串 讲 + 全 真 模 拟 ) Word 2003 中 文 字 处 理 ( 第 2 版 ) 第 3 章 3 字 符 格 式 需 要 掌 握 的 考 点 字 体 字 形 和 字 号 的 设 置 ; 上 标 下 标 空 心 字 等 字 体 效 果 的 使 用 ; 字 符 间 距 的 调 整 ; 改 变 字 符 颜 色 底 纹 添 加

More information

"Hi" "Visual Basic 6.0" ""( 空字符串 ) 3. 货币 (Currency) 第 3 章数据类型及其运算 35 货币数据类型是为计算货币而设置的数据类型 在内存中用 8 个字节 (64 位 ) 存储, 精 确到小数点后 4 位 ( 小数点前 15 位 ), 在小数点后第 4

Hi Visual Basic 6.0 ( 空字符串 ) 3. 货币 (Currency) 第 3 章数据类型及其运算 35 货币数据类型是为计算货币而设置的数据类型 在内存中用 8 个字节 (64 位 ) 存储, 精 确到小数点后 4 位 ( 小数点前 15 位 ), 在小数点后第 4 第 3 章数据类型及其运算 本章主要介绍构成 Visual Basic 应用程序的基本元素, 包括数据类型 常量 变量 内部 函数 运算符和表达式等 3.1 数据类型 在各种程序设计语言中, 数据类型的规定和处理方法是各不相同的 VB 不但提供了丰富的标准数据类型, 还可以有用户自定义所需的数据类型 基本数据类型主要有数值型和字符串型, 此外还提供了字节 货币 对象 日期 布尔和变体数据类型 基本数据类型

More information

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 Project 4: 5 月 2 日晚 9 点 复习 类的复用 组合 (composition): has-a 关系 class MyType { public int i; public double d; public char c; public void set(double x) { d =

More information

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题

试卷代号 : 座位号 OJ 中央广播电视大学 学年度第一学期  开放专科  期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I I I I I I I 2011 年 1 月 得分 评卷人 I I I 题 { 每小题 试卷代号 : 2 2 3 1 座位号 OJ 中央广播电视大学 2 0 1 0-2011 学年度第一学期 " 开放专科 " 期末考试 Visual Basic 程序设计试题 题号 一 二 三 四 五 总分 分数 I 2011 年 1 月 题 { 每小题 2 分, 共 3 0 分 } 1. 对于定时器 ( Tim 盯 控件, 设置其定时是否开启的属性是 ( ) A. Index B. Tag c. Enabled

More information

Microsoft PowerPoint - string_kruse [兼容模式]

Microsoft PowerPoint - string_kruse [兼容模式] Strings Strings in C not encapsulated Every C-string has type char *. Hence, a C-string references an address in memory, the first of a contiguous set of bytes that store the characters making up the string.

More information

Microsoft Word - 新1-12.doc

Microsoft Word - 新1-12.doc 实训 5 面向对象编程练习 实训 5 面向对象编程练习 5.1 实训目的 通过编程和上机实验理解 Java 语言是如何体现面向对象编程基本思想 以及如何创建类 和对象 了解成员变量和成员方法的特性 5.2 实训要求 编写一个体现面向对象思想的程序 编写一个创建对象和使用对象的方法的程序 5.3 实训内容 5.3.1 创建对象并使用对象 1 定义一个 Person 类 可以在应用程序中使用该类 成员属性

More information

Struts2自定义类型转换.doc

Struts2自定义类型转换.doc Struts2 自定义类型转换 原理 struts2 的自定义类型转换机制为复杂类型的输入输出处理提供了便捷.struts2 已经为我们提供了几乎所有的 primitive 类型以及常用类型 ( 如 Date) 的类型转换器, 我们也可以为我们自定义类添加自定义类型转化器. struts2 为我们提供了一个类型转化器的入口 : ognl.defaulttypeconverter, 或继承 org.apache.struts2.util.strutstypeconverter,

More information

PowerPoint 演示文稿

PowerPoint 演示文稿 4.4.1 逻辑运算符及其优先次序 3 种逻辑运算符 : &&( 逻辑与 ) ( 逻辑或 )!( 逻辑非 ) && 和 是双目 ( 元 ) 运算符! 是一目 ( 元 ) 运算符 逻辑表达式 用逻辑运算符将关系表达式或其他逻辑量连接起来的式子 4.4.1 逻辑运算符及其优先次序 判断年龄在 13 至 17 岁之内? age>=13 && age

More information

2015年计算机二级(C语言)模拟试题及答案(三)

2015年计算机二级(C语言)模拟试题及答案(三) 2016 年计算机二级 (C 语言 ) 模拟试题及答案 (3) 1.( A ) 是构成 C 语言程序的基本单位 A 函数 B 过程 C 子程序 D 子例程 2.C 语言程序从 ( C ) 开始执行 A 程序中第一条可执行语句 B 程序中第一个函数 C 程序中的 main 函数 D 包含文件中的第一个函数 3 以下说法中正确的是( C ) A C 语言程序总是从第一个定义的函数开始执行 B 在 C 语言程序中,

More information

5. 最适合于在工具栏上放置的工具按钮是 ( ) 0 A. Button B. RadioButton C. SpeedButton D. BitBtm 6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报

5. 最适合于在工具栏上放置的工具按钮是 ( ) 0 A. Button B. RadioButton C. SpeedButton D. BitBtm 6. 通常控制组件在窗体中的可见属性是 ( ) A. Visible B. Name C. Showing D. Hint 7. 现建立一个简单报 试卷代号 :2235 座位号 OJ 国家开放大学 ( 中央广播电视大学 )2015 年春季学期 " 开放专科 " 期末考试 Delphi 程序设计试题 (A) 2015 年 7 月 国 四 五 总分 一 单项选择题 (30 分, 每题 3 分 } 1. 下面哪句话对 Delphi 的描述是正确的 ( ) A. 只能用于数据库客户端开发的工具 B. Delphi 的编程语言全部是面向过程的 C. Delphi

More information

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 OOP with Java Yuanbin Wu cs@ecnu OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点 复习 : Java 类型 基本类型 boolean, char, 封装 (wrappers) 类 (class) 定义 class MyType { int i; double d; 数据 (Fields) char c; void set(double

More information

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx 运算符重载 Operator Overloading class Point { public: ; double x_, y_; Why Operator Overloading? Point (double x =0, double y = 0):x_(x),y_(y) { int main(){ Point a(1., 2), b(3,4); Point c = a + b; return 0;

More information

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1>

<4D F736F F F696E74202D20B5DA32D5C220B5A5C6ACBBFA433531D3EFD1D4BBF9B4A1> 第 2 章 单片机 C51 语言基础 2.1 C51 语言的基本知识 2.2 运算符与表达式 2.3 指针与绝对地址访问 2.4 本章小结 2.5 实训二发光二极管流水广告灯 返回首页 教学提示 随着单片机开发技术的不断发展, 目前已有越来越多 的人从普遍使用汇编语言逐渐过渡到使用高级语言开发, 其中又以 C 语言为主, 市场上几种常见的单片机均有其 C 语言开发环境 应用于 51 系列单片机开发的

More information

编译原理与技术

编译原理与技术 编译原理与技术 中间代码生成 2015/11/7 编译原理与技术 讲义 1 中间代码生成 - 布尔表达式翻译 - 控制流语句翻译 2015/11/7 编译原理与技术 讲义 2 布尔表达式的翻译 布尔表达式文法 G 4 E E 1 or E 2 E 1 and E 2 not E 1 ( E 1 ) id 1 relop id 2 true false id 3 布尔运算符 or and 和 not(

More information

5. 工具栏上的一个 SpeedButton 按钮如果要设置为状态按钮, 则正确设置的方法是 ( ) A. 将 SpeedButton 按钮的 Grouplndex 属性设置为 0, 且 Al l owal IUp 属性设置为 True B. 将 SpeedButton 按钮的 Grouplndex

5. 工具栏上的一个 SpeedButton 按钮如果要设置为状态按钮, 则正确设置的方法是 ( ) A. 将 SpeedButton 按钮的 Grouplndex 属性设置为 0, 且 Al l owal IUp 属性设置为 True B. 将 SpeedButton 按钮的 Grouplndex 试卷代号 : 2 2 3 5 座位号 I I I 中央广播电视大学 2 0 1 0-2 0 1 1 学年度第二学期 " 开放专科 " 期末考试 Delphi 程序设计试题 题号 I - I 二 三 四 五 总分 分数 I I I I I I I 2011 年 7 月 得分 评卷人 一 单项选择题 ( 3 0 分, 每题 3 分 ) 1. Delphi 程序设计的基本特点是 ( ) A. 可视化程序设计

More information

INTRODUCTION TO COM.DOC

INTRODUCTION TO COM.DOC How About COM & ActiveX Control With Visual C++ 6.0 Author: Curtis CHOU mahler@ms16.hinet.net This document can be freely release and distribute without modify. ACTIVEX CONTROLS... 3 ACTIVEX... 3 MFC ACTIVEX

More information

使用Delphi .NET开发-aimingoo

使用Delphi .NET开发-aimingoo Delphi.NET Using Delphi for Microsoft.NET Framework Development Delphi.NET Delphi.NET Delphi.NET Hello, World! Delphi.NET MS Internet Explorer 6.0 SP1 MS.NET Framework v1.1 MS.NET Framework SDK v1.1 MS

More information

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas 目录 1 IPv6 快速转发 1-1 1.1 IPv6 快速转发配置命令 1-1 1.1.1 display ipv6 fast-forwarding aging-time 1-1 1.1.2 display ipv6 fast-forwarding cache 1-1 1.1.3 ipv6 fast-forwarding aging-time 1-3 1.1.4 ipv6 fast-forwarding

More information

软件工程文档编制

软件工程文档编制 实训抽象类 一 实训目标 掌握抽象类的定义 使用 掌握运行时多态 二 知识点 抽象类的语法格式如下 : public abstract class ClassName abstract void 方法名称 ( 参数 ); // 非抽象方法的实现代码 在使用抽象类时需要注意如下几点 : 1 抽象类不能被实例化, 实例化的工作应该交由它的子类来完成 2 抽象方法必须由子类来进行重写 3 只要包含一个抽象方法的抽象类,

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

高职高专现代停息技术系列教材

高职高专现代停息技术系列教材 高职高专计算机技能型紧缺人才培养规划教材计算机软件技术专业 Delphi 程序设计基础 张世明 编 人民邮电出版社 高职高专计算机技能型紧缺人才培养 规划教材编委会 主任武马群 副主任王泰峰徐民鹰王晓丹 编 委 ( 以姓氏笔画为序 ) 马 伟 安志远 向 伟 刘 兵 吴卫祖 吴宏雷 余明辉 张晓蕾 张基宏 贺 平 柳 青 赵英杰 施晓秋 姜 锐 耿 壮 郭 勇 曹 炜 蒋方纯 潘春燕 丛书出版前言

More information

设计模式 Design Patterns

设计模式 Design Patterns 丁勇 Email:18442056@QQ.com 组件技术概述 现在软件开发都已经转向了基于组件的开发, 目前具备代表性的组件技术有微软的 COM COM+, 有 Sun 的 Bean 和 EJB(Enterprise Bean), 另外还有 CORBA(Common Object Request Broker Architecture, 公 共对象请求代理结构 ) Bean Bean 规范将 软件组件

More information

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常

4.3.3 while 语 句 用 于 无 限 循 环 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常 第 4 章 循 环 结 构 程 序 设 计 2 本 章 主 讲 赵 家 刚 4.3.3 while 语 句 用 于 无 限 循 环 4.3.3 当 while 语 句 的 表 达 式 永 远 不 会 为 布 尔 假 时, 循 环 将 永 远 不 会 结 束, 形 成 无 限 循 环, 也 称 死 循 环 使 用 while 语 句 构 成 无 限 循 环 的 格 式 通 常 为 : while True:

More information