Delphi 7教程3

上传人:灯火****19 文档编号:121897923 上传时间:2020-02-27 格式:PPT 页数:21 大小:2.25MB
返回 下载 相关 举报
Delphi 7教程3_第1页
第1页 / 共21页
Delphi 7教程3_第2页
第2页 / 共21页
Delphi 7教程3_第3页
第3页 / 共21页
Delphi 7教程3_第4页
第4页 / 共21页
Delphi 7教程3_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Delphi 7教程3》由会员分享,可在线阅读,更多相关《Delphi 7教程3(21页珍藏版)》请在金锄头文库上搜索。

1、本章要点 顺序控制结构的程序设计 选择控制结构的程序设计 循环控制结构的程序设计 第3章 三种结构的程序设计 3 1 顺序控制结构 顺序控制结构是程序设计中最简单 最常用的基本结构 在顺序控 制结构中 各程序段按照出现的先后顺序依次执行 它是任何程序的基 本结构 程序流程控制语句是用来控制程序中各语句执行顺序的语句 是程 序中非常关键和基本的部分 程序流程控制语句可以把单个的语句组合 成有意义的 能完成一定功能的小逻辑模块 1966年Bohm和Jacopini 证明了任何复杂的算法都可以用顺序 选择 循环三种结构组合而成 所以这三种结构称为程序的三种基本控制结构 合理地使用流程控制语 句在很大

2、程度上影响了编写程序的质量 在一段程序中 计算机按照语 句顺序执行 当遇到选择结构 循环结构时 就有可能改变执行顺序 3 1 1 程序流程控制语句 3 1 2 顺序控制结构 1 顺序控制结构是计算机按照语句的前后顺序依次执行的程序结构 在顺 序控制结构中 程序依次地经过输入 处理到最后的输出 Delphi 7 0提供 了基本的输入 输出控件 在第7章中将给予介绍 对于顺序控制结构来说 组成程序体主要语句就是赋值语句 接下来通过一个实例来说明顺序控制 结构的程序设计方法 1 主要步骤 进入Delphi 7 0后在standard标签页中找到相关组件 设计如图3 1窗体 及有关对象 分别在窗体的建

3、立 小写按钮单击和大写按钮单击事件中输入如下代 码 图3 1 大小写转换 程序 procedure TForm1 FormCreate Sender TObject begin edit1 Text 初始化文本框 使其为空 end procedure TForm1 Button1Click Sender TObject var s string begin s edit1 Text edit1 Text lowercase s 转换成小写 end 例3 1 大小写转换程序 3 1 2 顺序控制结构 2 procedure TForm1 Button2Click Sender TObject v

4、ar s string begin s edit1 Text edit1 Text uppercase s 转换成大写 end 2 分析 在窗体的建立事件中 首先将文本框的内容进行清空 以便输入 在 button1按钮事件中有两个语句 先将文本框的内容赋给一个字符串变量s 然后通过一个lowercase函数将其转换成小写后再在文本框中显示 而 button2按钮事件和button1基本类似 惟一不同的是将其转换成大写而已 可 以看到 在每一个事件代码中 其语句都是顺序执行的 这就是这种结构的 特点 3 运行结果 程序运行结果如图3 2所示 图3 2 大小写转 换程序运行结果 3 2 选择控制结

5、构 标识符是Object Pascal语言中用来表示应用程序量的名称 包括 变量 Var 常量 Const 类型 Type 过程 Procedure 方法 Method 等 在日常生活和工作中 经常需要根据给定的条件进行分析 比较和判断 以 采取相应的操作 例如 有如下分段函数 在计算函数值时 首先应根据x的值进行判断 当x 0时 y的值是x的平方 否则y的值是x的三次方 选择控制结构是计算机用来描述自然界和社会生活中分支现象的重要手段 其特 点是 根据所给定的条件为真与否 决定从各实际可能的不同分支中执行某一个 分支的相应操作 并且任何情况下总有一种分支相对应 Object Pascal中的

6、分支语句有If语句和Case 语句 3 2 1 If语句 1 If语句又称为条件语句 是最常用的单条件选择结构 If语句的语法格式 为 if 条件 then 条件语句1语句2假真 语句1 else 语句2 条件 语句一语句二 真 假 其中 条件 可以是关系表示式或布尔 表达式 它的值是真 True 或假 False 如果 条件 的值为真则执行 语句1 否则执行 语句2 If语句所对应的 流程图如图3 3所示 图3 3 if语句 因为if then else语句是一个完整的 语句 因此在else之前没有分号 如果加 入分号将产生编译错误 语句 可以是 简单语句也可以是复合语句还可以为空语 句 当

7、然 语句1 语句2 同时为 空语句时If语句就失去了意义 3 2 1 If语句 2 If语句分为简单条件语句和复合条件语句两种 1 简单条件语句 简单条件语句的 语句 中不包含 其他的条件语句 例3 2 输入x计算y的值 其中 分析 这是一个分支函数 对应x的值不同 计算时使用的表达式不同 因 此可以用条件语句实现对表达式的选择 var x y double begin if x 1 then y x x 2 x else y 2 x 1 end 注意 if then else语句是一个完整的语句 因此在else之前没有分号 如 果加入分号则产生错误 3 2 1 If语句 2 2 复合条件语句

8、 如在If语句格式中的 语句1 或 语句2 本身又是一个If语句 则称为If 语句的嵌套 嵌套的If语句又被称为复合条件语句 来看本教程P40页的例子 由于If语句有两种 一种是有else语句 一种无else语句 对复合条件语句 有可能有二义性 即可能有两种不同的理解 如下所示 if 条件1 then if 条件2 then 语句1 else 语句2 一种理解是else 语句是与后一个then 语句配对 另一种理解是else 语句 是与前一个then 语句配对 两种理解的效果是不一样的 Object Pascal规定 else总是与同一层的前面最靠近它的 还没有else语句与之配对的then配

9、对 因此第一种理解是正确的 else语句是与后一个Then 语句配对 3 2 2 case语句 对于多分支选择的情况 若仍然使用If语句就会出现多层嵌套 非常烦 琐 为此Object Pascal专门提供了Case 语句来实现多分支选择结构 Case 语句可以根据 选择器表达式 的值来决定执行相应的选择语句 case 选择器表达式 of 情况常量表1 语句1 情况常量表n 语句n else 其他语句列 end 情况常量表 中的值应当是 选择器表达式 可能具有的值 各常量之间 用逗号分隔 所有常量表中的值必须互不相同 语句 可以是简单语句也 可以是复合语句 Case 语句首先计算 选择器表达式

10、的值 然后判断该值 是否等于某个常量 若相等则执行该常量后面的语句 执行完该语句后 跳 过所有其他语句执行 end 后面的语句 若与所有情况常量表中所列的常量都 不同 则执行else 后面的语句 3 3 循环控制结构 循环是计算机解题的一个重要特征 计算机运算速度快 最宜于做重复性工作 在程序设计时 人们也总是把复杂的 不易理解的求解过程转化为易于理解的操作的多次重复 这 样一方面可以降低问题的复杂性 减低程序设计难度 另一 方面也发挥了计算机速度快的优势 循环控制有两种方法 标志法与计数法 标志法是达到 某一目标后使循环结束 计数法要先确定循环次数 然后逐 次测试 完成测试次数后循环结束 O

11、bject Pascal中提供了 三种循环语句 Repeat语句 While语句 For语句 Repeat 语句和While语句采用标志法实现循环 而For语句采用计数 法实现循环 3 3 1 Repeat 语句 1 Repeat 语句属于后测型循环结构 首先执行循环体 然后判断条件 根 据条件决定是否继续执行循环 因此执行循环的最少次数为1 Repeat 语句 的语句格式为 repeat条件循环体假真 循环体 until 条件 说明 条件 是一个具有布尔值的表达式 是循环的条件 图3 4 Repeat语句 循环体 可以是一条语句 也可以是多条语句 多条语句无需用 begin end 括起来

12、而由保留字 repeat与until将其括起 Repeat循环的执行过程是 首先执行 循环体 然后计算 条件 的值 如果 条件 的值为假 则开始一个新循环 如果 条件 的值为真 则终止循环 执行until 条件 后面的语句 可以在循环体中的任何位置放置 Break语句来强制终止Repeat循环 随时跳出 Repeat循环 也可以在循环体中的任何位置放 置Continue语句 在整个循环体没有执行完就重新 判断 条件 以决定是否开始新的循环 循环体 条件 假 真 图3 4 Repeat语句 3 3 1 Repeat 语句 2 例3 5 利用公式计算sinx 1 主要步骤 进入Delphi 7 0

13、在新建窗体中添加有关组件 其中第一个编辑框用于输入 数据 另一个编辑框用于数据的正弦值 如图3 5所示 sin x x 直到最后一项的绝对值小于10 7为止 图3 5 计算sinx的值 3 3 1 Repeat 语句 3 在button1按钮的单击事件中输入如下代码 procedure TForm1 Button1Click Sender TObject var n integer x temp sum double begin x strtofloat edit1 Text 从第一个编辑框中读入x的值 n 1 temp x sum x repeat 循环语句开始 n n 2 temp tem

14、p x x n 1 n sum sum temp until abs temp 1e 7 当最后一项的绝对值小于10 7时循 环语句结束 edit2 Text format f sum 输出sinx的值 end 3 3 1 Repeat 语句 5 2 分析 这是一个级数求和问题 其项数决定于最后一项的绝对值是否小于 10 7 如果它大于10 7 则计算该项 并继续求下一项 否则结束求和 但是单独求解每一项比较麻烦 可以利用前一项求解后一项 让每一 项与n的一个值相对应 其中n的值依次为1 3 5 7 从前一项求后 一项只需乘以一个因子 因此 只需确定当n 1时的第一项即可 然后依次求出后一项并

15、求和 当然 在程序运行过程中 需要在edit1文本框中输入数字 否则会 引起错误 3 运行结果 在第一个文本框中输入一个数字后单击button1按钮即在第二个文本框 中得到答案 3 3 2 While 语句 1 While语句属于前测型循环结构 首先判断条件 根据条件决定是否执行 循环 执行循环的最少次数为0 While语句的语句格式为 条件循环体假真 while 条件 do 循环体 说明 条件 是判断循环的条件 循环体 可以是简单语句 复合 语句和其他结构语句 While循环的执行过程 首先计算 条件 的值 如 果 条件 的值为真 则执行do后面的循环体 执行完后 再开始一个新的 循环 如果

16、 条件 的值为假 则终止循环 执行 循环体 后面的语句 可以在循环体中的任何位置放置Break语句来强制终止循环 也可以在循环 体中的任何位置放置Continue语句 在整个循环体没有执行完就重新判断 条件 以决定是否 开始新的循环 例3 6 判断一个正整数是否是素数 1 主要步骤 进入Delphi 7 0在新建窗体中添 加有关组件 其中编辑框用于输 入一个整数 标签用 于显示结果 如图3 7所示 图3 7 判断一个正整数是 否是素数 3 3 2 While 语句 2 在button1按钮的单击事件中输入如下代码 var s n i integer str string begin n strtoint edit1 Text 从编辑框得到n的值 注意必须输入一个正整数 s 0 i 2 s作为判断是否是素数的标志 i做除数 if n 3 then label2 caption 输入的整数是素数 else while i sqrt n and s 0 do begin if n mod i 0 then begin s 1 break 若以判断出n不为素数则可以用break语句跳出循环语句

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号