中华农历论坛知识讨论区历法知识 → [推荐]汉语编程中级教材第五章第三节《选择结构程序设计》


  共有12303人关注过本帖树形打印

主题:[推荐]汉语编程中级教材第五章第三节《选择结构程序设计》

帅哥哟,离线,有人找我吗?
秦汉昌
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[推荐]汉语编程中级教材第五章第三节《选择结构程序设计》  发帖心情 Post By:2008/12/27 21:47:00

图片点击可在新窗口打开查看

    | 汉编新闻 | 汉编加盟 | 汉编商城 | 汉编网校 | 汉编下载 | 汉编视频 | 汉编游戏 | 汉编荣誉 | 汉编留言 | 汉编论坛 | 汉编邮箱 | 汉编招聘

第五章

第三节  选择结构程序设计

 

通常在解决实际问题时,不可能完全是简单的顺序结构程序设计,经常会出现根据某个条件而选择性地执行某些程序,像这种有选择性地执行的程序就称其为选择结构程序。汉语程序设计语言为此提供了三种类型的选择结构。第一种是“就……然后”结构,我们称其为“单路选择结构”,因为这种结构所选择或忽略的动作只有一个;第二种是“就……否则……然后”结构,因为它在两种不同动作之间作出选择,也称为“双路选择结构”;第三种是“如和……对应就…… 而和……对应就……其余则……而后”结构,因为它可以在许多不同的动作之间作出选择,所以我们称之为“多路选择结构”。

一、就……然后

该结构在条件为真时执行某个动作,在条件为假时跳过这个动作。“然后”部分总被执行。在“编”定义中的形式为:

<标志>  (真部分)   然后

在运行时,就按数摞上给出的<标志>执行,如果<标志>为“真”(非零),就先执行“真”部分,然后执行“然后”之后的代码;如果<标志>为“假”(),则直接执行“然后”之后的代码。

例如, 18岁作为年龄分界,来判断定否成人。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:50:00

程序内容:

  18岁以上  17  > 

  判断是否成年      n ---  

    18岁以上       

显”  已经成年”

         然后 。

该程序装载后,就可以对给出的年龄进行测试了:

19  否成年<回车> 已经成年★

6  判断是否成年<回车>

程序在执行时,首先判断所给出的年龄数值与17 进行“>”操作后结果的真假,将判断的真假标志放在数摞上。如果标志为真,也就是说给出的年龄大于或者等于18岁,就执行“就”后面的部分,即,显示“ 已经成年”,同时将数摞上的<标志>清除,然后按顺序执行“然后”后面的语句;如果标志为假,就忽略显示语句,直接执行“然后”后面的语句,同时也将数摞上的<标志>清除。图5-2给出了单路选择结构的流程图。

图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:51:00

二、就……否则……然后

该结构在条件为真时执行某个动作,为假时执行另一个动作;在“编”定义中的形式为:

<标志>    (真部分)  否则  (假部分) 然后

在运行时,就按数摞上给出的<标志>执行,如果<标志>为“真”(非零),就先执行“真”部分,然后执行“然后”之后的代码;如果<标志>为“假”(),则跳到“否则”之后去执行“假”的部分,然后执行“然后”之后的代码。

 “就……然后”控制结构只在条件为真时执行指定的动作,否则跳过这个动作,而“就……否则……然后”选择结构可在条件为真或为假时执行指定的不同的动作。把上面的例子作一改动:

  18岁以上  17  > 

  判断是否成年  n   ---  

18岁以上    已经成年

否则 未成年

然后  

装载该程序后,可以给出年龄数值进行测试:

20  判断是否成年<回车> 已经成年★

 6  判断是否成年<回车>  未成年★

程序在执行时,首先判断所给出的年龄数值与17 进行“>”操作后结果的真假,将判断的真假标志放在数摞上。如果标志为真,也就是说给出的年龄大于或者等于18岁,就执行“就”后面的部分,即,显示“ 已经成年”,同时将数摞上的<标志>清除,然后按顺序执行“然后”后面的语句;如果标志为假,就跳到“否则”之后执行“假”的部分,即,显示“未成年”,再接着执行“然后”后面的语句,同时也将数摞上的<标志>清除。图5-3显示了双路选择结构的流程图。

图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:52:00

在进行汉语程序设计时,双路选择结构的嵌套结构也被广泛使用。判断闰年的程序就采用了典型的嵌套选择结构。

闰年的算法:年份如果能被4整除,则一般为闰年;但是有一个例外,那就是如果年份能被100整除而不能被400整除的话,则不是闰年,即为平年。通过这些条件,可以编制闰年的判断程序:

判断闰年 400 求余数 0 > ↑↓

   100 求余数 0  = 0 <>

              "  平年."                                        

否则    4 求余数 0 =                                       

                    回车 "  闰年."                                       

                否则  回车 " 平年."

                然后                                 

然后  

该程序装载后,就可以判断一个年份是闰年还是平年:

4  判断闰年<回车>

   闰年.

500 判断闰年<回车> 平年.

在这个程序中就使用了

就……否则……

就…否则…然后…

然后


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:53:00

  程序中我们经常会用到与这样一个条件语句相类似的嵌套。为了简化程序,更好的办法是将内部的嵌套结构定义成一个单独的词,为外部结构调用。

判断每四年的闰年

4 求余数 0 =

                 回车 "  闰年."

             否则  回车 " 平年."

             然后                

判断闰年 400 求余数 0 > ↑↓

100 求余数 0  = 0 <>

      "  平年." 

否则    判断每四年的闰年

然后  

采用这种方法便于程序的调试以及对流程的理解。

可以看出,我们在进行选择操作之前,必须进行必要的判断和比较操作,得到一个逻辑标志才能进行选择执行后面的语句,所在在条件语句,逻辑标志非常重要。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:54:00

三、多选择结构

如和……对应就……

而和……对应就……

               

其余则……

而后

针对在程序设计过程中遇到的多种可能的情况,也就是说多分支的情况,汉语程序设计语言提供了多分支选择结构。该结构包含一个“如和……对应就”子句,和若干个“而和……对应就……”子句,以及一个可有可无的“其余则……”子句(在汉语编程DOS及单片机版本中,“其余则”子句不能省略)。该结构对于数摞顶层的一个数,程序先将其与“如和”后的条件对比,如果一致,则执行相应的“对应就”后面的子句,然后程序跳至“而后”后面的子句,否则程序将按顺序与“而和”后面的子句一一对比,如果找出一个与条件相符的,也就是相“对应”的,则程序执行相应的“对应就”后面的子句,然后程序转至“而后”后面的子句。如果没有找到匹配项,则程序执行“其余则”后面的子句。(如果程序中没有“其余则”子句,则程序直接执行“而后”后面的语句)。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:54:00

下面是一个判断数字键的程序,该程序可帮助我们清楚地说明多路选择结构控制的程序设计方法。

  判断数字键 

    回车  "  请输入0~9之间的数字键"

    等键

    如和      ASCII  0  对应就  "  您输入的是零键"

        而和  ASCII  1  对应就  "  您输入的是一键"

        而和  ASCII  2  对应就  "  您输入的是二键"       

而和  ASCII  3  对应就  "  您输入的是三键"

        而和  ASCII  4  对应就  "  您输入的是四键"

        而和  ASCII  5  对应就  "  您输入的是五键"

        而和  ASCII  6  对应就  "  您输入的是六键"

        而和  ASCII  7  对应就  "  您输入的是七键"

        而和  ASCII  8  对应就  "  您输入的是八键"

        而和  ASCII  9  对应就  "  您输入的是九键"

      其余则                    "  不在0~9范围内"

    而后 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2008/12/27 21:56:00

在汉语编程系统下装载此程序后,运行“判断数字键”时,计算机机处理等待键盘输入状态:

判断数字键<回车>

        请输入0~9之间的数字键_

这时我们键入“0”键,紧跟着,就会显示出“您键入的是零键”;若我们键入“9”键,就会显示出“您键入的是九键”;若键入是不09之间的数字键,比如键入“A”键,那么就会显示“不在0~9范围内”,也就是说如果与所有的“如和”、“而和”都不对应时,就执行其余则后的内容。如图5-4就是多选择结构程序的流程图。

图片点击可在新窗口打开查看

在这个程序中我们用到了“等键”这个词。望文生义“等键”就是等待键盘的输入,当程序执行到该词时,系统处于等待状态,当有一个有效键盘动作时,就在数摞上留下一个表示此键值的参数,其操作数摞状态为:

等键  (  ---  <字符> )

操作前数摞上没有数,操作后数摞上留下输入字符的ASCII码值。(详见第六章)

ASCII  <字符>可返回所跟字符的ASCII码值,如“ASCII  0”返回字符0ASCII码值为48,“ASCII  9”返回字符9ASCII码值为57。同样的结果,也可以用半角单引号界定一个字符,如对上例程序,ASCII  0 可用'0'代替,同理,ASCII  9可用'9'代替,同样可返回所界定字符的ASCII码值。读者如有兴趣可以将程序作相应的更改,看结果是否一样。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[推荐]汉语编程中级教材第五章第三节《选择结构程序设计》








签名