以文本方式查看主题

-  中华农历论坛  (http://bbs.nongli.net/index.asp)
--  历法知识  (http://bbs.nongli.net/list.asp?boardid=2)
----  [推荐]汉语编程中级教材第五章第二节《比较操作》  (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=16458)

--  作者:秦汉昌
--  发布时间:2008/12/27 22:04:00
--  [推荐]汉语编程中级教材第五章第二节《比较操作》

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

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

第五章

第二节  比较操作

一、数与数的比较

在汉语程序设计语言中,我们用一些比较操作来产生逻辑标志,从而可以给条件转移提供依据。比较操作也是对数摞上顶层的数进行操作,产生逻辑标志后仍然放在数摞上。所以又遇到了密切跟踪数摞状态的问题。如“=”就是将数摞顶上的两个数进行比较,操作之后会产生逻辑<标志>留在数摞顶上,原来参与比较的数就被去除。

          n1  n2  ---  <标志>

如果n1n2相等,留下“真”标志,否则留下“假”标志。

      n1  n2  <单位误差值> --- <标志>

n1n2相减差的绝对值在<单位误差值>范围内,给出逻辑<标志真>否则给出<逻辑假>标志。

        <>      n1  n2  ---  <标志>

如果n1n2不相等,留下“真”标志,否则留下“假”标志。

<       n1  n2  ---  <标志>

如果n1小于n2,留下“真”标志,否则留下“假”标志。

>       n1  n2  ---  <标志>

如果n1大于n2,留下“真”标志,否则留下“假”标志。


--  作者:秦汉昌
--  发布时间:2008/12/27 22:07:00
--  

本节我们以整数为例讨论比较操作问题。根据上面的解释,我们来作一些测试:

1  3  >    <回车>  0 

3  1  >    <回车>  -1

1  3  <    <回车>  -1

3  1  <    <回车>  0 

5  5  =    <回车>  -1

5  5  <>   <回车>  0      

3  5  =    <回车>  0 

3  5  <>   <回车>  -1

在“逻辑运算的基本知识”一节中我们用比较烦锁的办法去定义了一些命题,现在有以上的这些操作就不再用那些烦锁的办法去定义命题了,可直接用比较操作来实现对命题的操作。


--  作者:秦汉昌
--  发布时间:2008/12/27 22:07:00
--  

在整数的比较操作中,有一些对特殊数进行比较的快速操作,0是一个特殊的数,在汉语程序设计语言中特意提供了与0相比较的操作词。这样做可以得到更快的运行速度而且生成的目标代码更短,其中的道理将在汉语程序设计语言的内部结构中介绍,这里只列出与0比较的操作单词。

        0<       n  ---  <标志>

如果n小于0(负数),留下“真”标志,否则留下“假”标志。

0<>      n  ---  <标志>

如果n不等于0,留下“真”标志,否则留下“假”标志。

0      n  ---  <标志>

如果n等于0,留下“真”标志,否则留下“假”标志。

0>       n  ---  <标志>

如果n大于0,留下“真”标志,否则留下“假”标志。

我们可以举一些实例来加以说明:

1  0>     <回车>  -1 

1  0<     <回车>   0 

3  0<>    <回车>  -1 

0  0<>    <回车>   0 

3  0=     <回车>   0 

在上述操作中,操作前数摞上只需要一个被比较的数,操作后数摞上留下的仍然是一个逻辑标志。使用中一定要结合上下文让数摞上的数保持平衡。

比较操作同时支持浮点和整数,但不得混合运算!,给出的逻辑标志总为32位的标志值,0为假,非0为真。


--  作者:秦汉昌
--  发布时间:2008/12/27 22:09:00
--  

二、字串与字串比较

除了对数进行比较操作外,对字符串进行比较操作也是常用的比较操作。串比较操作主要是对给出地址中字符串内容进行比较操作,产生逻辑标志后仍然放在数摞上。“串比较”就是将数摞上给出两个字符串地址和长度四个数进行串比较,操作之后会产生逻辑<标志>留在数摞顶上,原来参与比较的数就被去除。

串比较    <前串地址><前串长度><后串地址><后串长度.> --- <标志>

    当前面字符串与后面字符串完全相等时给出标志为0;当前面字符串长度小于后面字串长度时给出标志为-1;当后面字串小于前面字串或不等时给出标志 1。例:

字串" 汉语编程技术" 字串" 汉语编程技术" 串比较 0

字串" 汉语编程技" 字串" 汉语编程技术" 串比较 -1

字串" 汉语编程技术" 字串" 汉语编程技" 串比较 1

字串" 汉语编程技术" 字串" 汉语编程的技" 串比较 1

串搜寻   (  <前串地址><前串长度><后串地址><后串长度.> --- <前串含后串开始地址><前串长度.><标志> )


--  作者:秦汉昌
--  发布时间:2008/12/27 22:10:00
--  

当前面字符串中包含后面字符串时为-1,并给出前串含后串开始地址以及剩余串长度;当前面字符串中不完全包含后面字符串时给出标志为0,并保持操作开始前串地址以及长度不变。

字串" 汉语编程技术" 字串" 编程技术" 串搜寻 印字串 -1 编程技术★

字串" 编程技术" 字串" 汉语编程技术" 串搜寻 印字串 0 编程技术★

串中包含 ( <前串地址><前串长度><后串地址><后串长度>---<标志> )

内涵与串搜寻基本相同,但只给出逻辑标志,其程序本意就是“串搜寻   双♀”。

 

 

本教程由汉编小罗整理,资料来源于互联网,版权归汉编公司所有