网站大量收购独家精品文档,联系QQ:2885784924

pascal线性结构.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
pascal线性结构

一、串的概念   串又称为字符串,是由0个或多个字符组成的有限序列。长度为0的串称为空串,它不包含任何字符。   串用和括起来。 二、串的运算  1.串的定义:    一般用一维数组实现串的运算,由此串的定义也用数组的形式来实现:     type      stringtype=packed array[1..80] of char;     var      s:stringtype;   另外,还有一种更简便的定义方法,利用turbo pascal中的string类型:     var      s:string;   但是string类型有一个限制:运用string类型定义的数据长度只能是1——255,也就是说不能超过255个字符。  2.串的标准函数   在turbo pascal中有如下标准函数可实现串的运算:    copy(s,x,y):获取从s的第x个位置开始的y个字符    concat(s1,s2,...,sn):相等于s1+s2+...+sn    delete(s,x,y):将s中从第x个位置开始的y个字符删去    insert(s1,s,x):将s1插到s中的第x个位置    length(s):获取s的长度  3.串的基本运算   (1)赋值   (2)连接   (3)求串长   (4)取子串   (5)求子串序号   (6)插入   (7)删除   (8)置换 三、串的匹配算法   示例: 四、练习题:   1.读入一英文句子,单词之间用空格或逗号隔开,统计其中单词个数,并输出各个字母出现的频率。(句子末尾不一定用.结束)    (word1)   2.一个句子,只含英文字母,单词间用空格或逗号作为分隔符。统计句子中的单词数,如果含有其他的字符,则只要求输出错误信息及错误类型。(word2)     含有大写字母 错误类型 error 1      数字(0-9) 错误类型 error 2     其他非法字符 错误类型 error 3    如 输入: It is 12!     输出: error 1 2 3     输入: i am ,a student     输出: 4   3.编码解码:从键盘输入一个英文句子,设计一个编码、解码程序。(string)   编码过程:先键入一个正整数N(1=N=26)。这个N决定了转换关系。 例如当N=1,输入的句子为ABCXYZ时,则其转换码为ABCXYZ不变。当N=2时,其转换码为BCDYZA,其它的非字母字符不变。为使编码较于破译,将转换码的信息自左而右两两交换,若最后仅剩单个字符则不换。然后,将一开始表示转换关系的N根据ascii表序号化成大写字母放在最前面。   如:abcABCxyzXYZ-/,1. n=3     ① cdeCDEzabZAB-/,1. {根据N的值转换}     ② dcCeEDazZbBA/-1,. {两两交换}     ③ CdcCeEDazZbBA/-1,. {最后编码}   解码过程为编码的逆过程。一、一维数组  1.一维数组的存储   由于数组中所有元素属于同一类型,所以每个元素在存储器中占用的空间大小相同。   假设数组的第一个元素存放的位置为LOC(k[1]),每个元素占用的空间大小为S,则k[i]的存放位置为:       LOC(k[i])=LOC(k[1])+S*(i-1)组  2.一维数组的操作——元素的插入和删除   由于需要保持运算结果仍然是顺序存储,所以在进行元素的插入和删除时可能要移动一系列元素。例子:Josephus(约瑟夫)问题。  3.例题:    (1)猴子选大王——n只猴子选大王,选举办法如下:从头到尾1,2,3报数,凡报3的退出,余下的从尾到头1,2,3报数,凡报3的退出...如此类推,当剩下两只猴子时,取这时报1的为王,若想当猴王,请问当初应占据什么位置? (monky.pas)   (2)狐狸捉兔子——围绕着山顶有10个洞,狐狸要吃兔子,兔子说:“可以,但必须找到我,我就藏身于这十个洞中,你从10号洞出发,先到1号洞找,第二次隔1个洞找,第三次隔2个洞找,以后如此类推,次数不限。”但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?(fox.pas)   (3)约瑟夫问题——设有n个人围坐在一个圆桌周围,现从第s个人开始报数,数到第m的人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,……,如此重复直到所有的人全部出列为止。对于任意给定的n,s和m,求出按出列次序得到的n个人员的顺序表。 二、多维数组   多维数组是在一维数组的基础上发展起来的,可以看成由多个一维数组组成。储存一个数组中的所有元素,可以用线性序列来表示。以二

文档评论(0)

cj80011 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档