以文本方式查看主题 - 中华农历论坛 (http://bbs.nongli.net/index.asp) -- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2) ---- [推荐]汉语编程中级教材第五章第三节《选择结构程序设计》 (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16457) |
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:47:00 -- [推荐]汉语编程中级教材第五章第三节《选择结构程序设计》
|
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:50:00 -- 程序内容: 编 18岁以上 17 > 。 编 判断是否成年 ( n --- ) 18岁以上 就 显” 已经成年” 然后 。 该程序装载后,就可以对给出的年龄进行测试了: 19 否成年<回车> 已经成年★ 6 判断是否成年<回车>★ 程序在执行时,首先判断所给出的年龄数值与17 进行“>”操作后结果的真假,将判断的真假标志放在数摞上。如果标志为真,也就是说给出的年龄大于或者等于18岁,就执行“就”后面的部分,即,显示“ 已经成年”,同时将数摞上的<标志>清除,然后按顺序执行“然后”后面的语句;如果标志为假,就忽略显示语句,直接执行“然后”后面的语句,同时也将数摞上的<标志>清除。图5-2给出了单路选择结构的流程图。 |
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:51:00 -- 二、就……否则……然后 该结构在条件为真时执行某个动作,为假时执行另一个动作;在“编”定义中的形式为: <标志> 就 (真部分) … 否则 (假部分) … 然后 在运行时,就按数摞上给出的<标志>执行,如果<标志>为“真”(非零),就先执行“真”部分,然后执行“然后”之后的代码;如果<标志>为“假”(零),则跳到“否则”之后去执行“假”的部分,然后执行“然后”之后的代码。 “就……然后”控制结构只在条件为真时执行指定的动作,否则跳过这个动作,而“就……否则……然后”选择结构可在条件为真或为假时执行指定的不同的动作。把上面的例子作一改动: 编 18岁以上 17 > 。 编 判断是否成年 ( n --- ) 18岁以上 就 显” 已经成年“ 否则 显” 未成年“ 然后 。 装载该程序后,可以给出年龄数值进行测试: 20 判断是否成年<回车> 已经成年★ 6 判断是否成年<回车> 未成年★ 程序在执行时,首先判断所给出的年龄数值与17 进行“>”操作后结果的真假,将判断的真假标志放在数摞上。如果标志为真,也就是说给出的年龄大于或者等于18岁,就执行“就”后面的部分,即,显示“ 已经成年”,同时将数摞上的<标志>清除,然后按顺序执行“然后”后面的语句;如果标志为假,就跳到“否则”之后执行“假”的部分,即,显示“未成年”,再接着执行“然后”后面的语句,同时也将数摞上的<标志>清除。图5-3显示了双路选择结构的流程图。 |
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:52:00 -- 在进行汉语程序设计时,双路选择结构的嵌套结构也被广泛使用。判断闰年的程序就采用了典型的嵌套选择结构。 闰年的算法:年份如果能被4整除,则一般为闰年;但是有一个例外,那就是如果年份能被100整除而不能被400整除的话,则不是闰年,即为平年。通过这些条件,可以编制闰年的判断程序: 编 判断闰年 400 求余数 ♂ ♂ 0 > ↑↓ 100 求余数 0 = 与 0 <> 就 显" 平年." ♀ 否则 4 求余数 0 = 就 回车 显" 闰年." 否则 回车 显" 平年." 然后 然后 。 该程序装载后,就可以判断一个年份是闰年还是平年: 4 判断闰年<回车> 闰年. ★ 500 判断闰年<回车> 平年. ★ 在这个程序中就使用了 就……否则…… 就…否则…然后… 然后 |
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:53:00 -- 程序中我们经常会用到与这样一个条件语句相类似的嵌套。为了简化程序,更好的办法是将内部的嵌套结构定义成一个单独的词,为外部结构调用。 编 判断每四年的闰年 4 求余数 0 = 就 回车 显" 闰年." 否则 回车 显" 平年." 然后 。 编 判断闰年 400 求余数 ♂ ♂ 0 > ↑↓ 100 求余数 0 = 与 0 <> 就 显" 平年." ♀ 否则 判断每四年的闰年 然后 。 采用这种方法便于程序的调试以及对流程的理解。 可以看出,我们在进行选择操作之前,必须进行必要的判断和比较操作,得到一个逻辑标志才能进行选择执行后面的语句,所在在条件语句,逻辑标志非常重要。 |
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:54:00 -- 三、多选择结构 如和……对应就…… 而和……对应就…… 其余则…… 而后 针对在程序设计过程中遇到的多种可能的情况,也就是说多分支的情况,汉语程序设计语言提供了多分支选择结构。该结构包含一个“如和……对应就”子句,和若干个“而和……对应就……”子句,以及一个可有可无的“其余则……”子句(在汉语编程DOS及单片机版本中,“其余则”子句不能省略)。该结构对于数摞顶层的一个数,程序先将其与“如和”后的条件对比,如果一致,则执行相应的“对应就”后面的子句,然后程序跳至“而后”后面的子句,否则程序将按顺序与“而和”后面的子句一一对比,如果找出一个与条件相符的,也就是相“对应”的,则程序执行相应的“对应就”后面的子句,然后程序转至“而后”后面的子句。如果没有找到匹配项,则程序执行“其余则”后面的子句。(如果程序中没有“其余则”子句,则程序直接执行“而后”后面的语句)。 |
||
-- 作者:秦汉昌 -- 发布时间: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范围内" 而后 。
|
||
-- 作者:秦汉昌 -- 发布时间:2008/12/27 21:56:00 -- 在汉语编程系统下装载此程序后,运行“判断数字键”时,计算机机处理等待键盘输入状态: 判断数字键<回车> 请输入0~9之间的数字键_ 这时我们键入“0”键,紧跟着,就会显示出“您键入的是零键”;若我们键入“9”键,就会显示出“您键入的是九键”;若键入是不0至9之间的数字键,比如键入“A”键,那么就会显示“不在0~9范围内”,也就是说如果与所有的“如和”、“而和”都不对应时,就执行其余则后的内容。如图5-4就是多选择结构程序的流程图。 在这个程序中我们用到了“等键”这个词。望文生义“等键”就是等待键盘的输入,当程序执行到该词时,系统处于等待状态,当有一个有效键盘动作时,就在数摞上留下一个表示此键值的参数,其操作数摞状态为: 等键 ( --- <字符> ) 操作前数摞上没有数,操作后数摞上留下输入字符的ASCII码值。(详见第六章) ASCII <字符>可返回所跟字符的ASCII码值,如“ASCII 0”返回字符0的ASCII码值为48,“ASCII 9”返回字符9的ASCII码值为57。同样的结果,也可以用半角单引号界定一个字符,如对上例程序,ASCII 0 可用\'0\'代替,同理,ASCII 9可用\'9\'代替,同样可返回所界定字符的ASCII码值。读者如有兴趣可以将程序作相应的更改,看结果是否一样。 |