
发表日期: 2021-04-17 10:25:01 浏览次数:83
迁安市网站制作【迁安市网站优化】迁安市建网站、迁安市微信公众号运营、迁安市网页设计、迁安市微信小程序商城
迁安市,河北省直辖县级市,由唐山市代管,位于河北省东北部,燕山南麓,滦河岸边,介于东经118°37′~118°55′,北纬39°51′~40°15′之间,市境纵跨直线距离45公里,横跨直线距离39公里。东隔青龙河与秦皇岛市卢龙县相望,南与滦州市相邻,西接迁西县,北以长城为界与秦皇岛市青龙满族自治县毗邻,全市总面积1227平方公里。 [1] 市人民政府驻地永顺街道 [2] 。
迁安市境内地势西北高,东南低,属暖温带、半湿润季风性气候,境内主要风景区有迁安博物馆、白羊峪、黄台山公园和黄台湖等。 [3]
迁安西距北京市220公里、距天津市190公里、距唐山市80公里,东距秦皇岛市110公里,北距承德市170公里,南距京唐港100公里。临近京唐港、曹妃甸港、天津新港、秦皇岛港。境内北京-哈尔滨高速公路、北京-秦皇岛高速公路、102国道、三抚公路和津山铁路、大秦铁路、通坨铁路横贯东西,冷大公路、卑水铁路、迁曹铁路纵穿南北。津秦高铁在迁安设有客运站,即滦河站。
迁安先后被授予全国文明城市、国家卫生城市、国家园林城市、中国宜居城市、世界健康城市、全国绿化模范城市、全国生态建设突出贡献单位等称号,是首批国家海绵城市试点中唯一的县级市、首批国家智慧城市试点单位。 [4] 2019年10月,入选2019年度全国投资潜力百强县市、2019年度全国新型城镇化质量百强县市。 [5-6] 2020年10月,入选河北省第一批新型智慧城市建设试点名单。 [7] 2020年12月,社科院发布《全国县域经济综合竞争力100强》,迁安排名第23 [8] 。
在第(1)行,findChar会检查当前由pp指示的字符。如果它既不是所需的字符c,也不是C语言中标记字符串末端的字符“\0”,那么在第(2)行我们会移动pp指向的该指针。第(3)行的测试会确定我们是否因为遍历完该串而停止。如果是,就返回FALSE,否则前移该指针并返回TRUE。
#include <stdio.h>
#define TRUE 1
#define FALSE 0
typedef int BOOLEAN;
BOOLEAN findChar(char **pp, char c)
{
(1) while (**pp != c && **pp != '\0')
(2) (*pp)++;
(3) if (**pp == ’\0’)
(4) return FALSE;
else {
(5) (*pp)++;
(6) return TRUE;
}
}
BOOLEAN testWord(char *p)
{
/* 状态 0 */
(7) if (findChar(&p, 'a'))
/* 状态 1 */
(8) if (findChar(&p, 'e'))
/* 状态 2 */
(9) if (findChar(&p, 'i'))
/* 状态 3 */(10) if (findChar(&p, 'o'))
/* 状态 4 */(11) if (findChar(&p, 'u'))
/* 状态 5 */(12) return TRUE;(13) return FALSE;
}
main()
{(14) printf("%d\n", testWord("abstemious"));
}复制代码图 10-2 找到带有子序列aeiou的单词
在图10-2中,接下来是testWord(p)函数,它可以区分由p指向的字符串是否按次序含有所有元音字母。该函数在第(7)行前从状态0开始。在该状态中它在第(7)行调用findChar,其中第二个参数是a,用来查找字母a。如果它找到了a,findChar就会返回TRUE。因此在第(7)行如果findChar返回了TRUE,程序就会转移到状态1,其中在第(8)行会对e进行相似的测试,从第一个a之后开始扫描该字符串。因此它会继续查找元音字母,直到第(12)行,如果它找到了字母u,就会返回TRUE。如果有任何一个元音字母未被找到,控制权就会转移到第(13)行,在该行中testWord会返回FALSE。
第(14)行的主程序会测试特定的字符串“abstemious”。在实践中,我们可能会对文件中的所有单词反复使用testWord,以找出那些按次序含有5个元音字母的单词。
我们可以把图10-2中这种程序的行为用图表示出来,其中图的节点表示该程序的各个状态。更重要的可能在于,可以通过设计图从而设计出程序,并机械化地将图转化成程序,要么自己动手做,要么利用某种为这个目的编写的程序设计工具。
表示程序状态的图都是有向图,它们的弧都是用字符集标记的。如果当我们在状态s 时,刚好只有当看到集合C 中的一个字符时才能行进到状态t,就存在从状态s 到状态t 的标号为字符集C 的弧。这些弧叫作转换(transition)。如果x 是字符集C 中的某个字符,它标记了从状态s 到状态t 的转换,就说“进行了针对x 的到状态t 的转换”。在集合C 为单元素集{x }这种常见的情况下,我们会使用x 作为该弧的标号,而不用{x }。
我们还会给某些节点标记接受状态(accepting state)。当到达这些状态之一时,就找到了模式并要“接受”它。按照惯例,接受状态是用双层圆圈表示的。最后,这些节点之一会被指定为起始状态,也就是开始模式识别过程所在的状态。我们用一条不知道来自何方的进入箭头表示起始状态。这样的图就被称为有限自动机,或就叫自动机。在图10-3中可以看到自动机的一个例子。

图 10-3 识别含子序列aeiou的字符序列的自动机
从概念上讲,自动机的行为其实很简单。可以想象,自动机接收一列已知字符作为输入序列。它从起始状态开始读输入序列的第一个字符。根据第一个字符的不同,它进行的转换可能是转换到同一状态,也可能是转换到另一状态。这种转换可用自动机的图来表示。然后自动机会读第二个字符,并作出合适的转换,等等。
对应图10-2中testWord函数的自动机如图10-3所示。在该图中,我们使用了下面都要遵守的一个约定,用希腊字母Λ(拉姆达)代表所有大写字母和小写字母组成的集合。还要用Λ-a这样的简写形式表示除a之外所有大小写字母组成的集合。
节点0是起始状态。针对除了a之外的任意字母,我们都会保持状态0,不过遇到a就要进入状态1。同样,一旦到达状态1,就会停留在状态1,除非看到e,在看到e的情况下就要进入状态2。接下来,当看到i然后看到o时就分别到达状态3和状态4。除非看到u并进入唯一的接受状态——状态5,否则我们会停留在状态4中。再没有任何从状态5出发的转换了,因为我们不再检测待测单词的其余字符,而是要返回TRUE,声明我们已成功完成测试。
在状态0到状态4中遇到空白(或其他非字母字符)也是没有价值的,我们不会进行任何转换。在这种情况下,处理会停止,而且,因为我们现在未到达接受状态,所以会拒绝该输入。
服务热线
顶部
备案号: 苏ICP备11067224号
CopyRight © 2011 书生商友信息科技 All Right Reserved
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: http://www.768800.com 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
服务热线:400-111-6878