ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:20.08KB ,
资源ID:7152595      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7152595.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(05数组与字符串.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

05数组与字符串.docx

1、05数组与字符串第五章数组(结构类型一)5.1一维数组语法分析在编程时用到一批类型相同的数据,为了处理上的方便,通常以数组的形式来定义这一批数据。1、数组的定义格式:Var a:array 1.10 of integer;其中:a是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,同时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。 2、数组元素的输入:数组名代表的并不是一个变量,而是一批变量,因而,不能直接整个数组读入,而是要逐个数组元素读入,通常用循环结构来完成这一功能。下

2、面是几个常用输入数组元素的例子:for i:=1 to 10 do read(ai); 从键盘读入数组元素的值;最常用的方法 for i:=1 to 10 do ai:=i;数组元素a1到a10的值分别为1到10;数据赋初值 for i:=1 to 10 do ai:=0;数组元素清0;最常用的数据初始化的方法for i:=1 to 10 do ai:=random(100);随机产生10个100以内的数,赋给各数组元素 3、数组元素的输出:和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。同样要逐个数组元素输出。通常也用循环结构来完成这一功能:for i:=1 to 1

3、0 do write(ai, );数组元素之间用空格分隔writeln; 4、数组的应用:例1:从键盘输入10个数,将这10个数逆序输出,并求这10个数的和,输出这个和。program p1;vara:array 1.10 of integer;i,s:integer;begin for i:=1 to 10 do read(ai); for i:=10 downto 1 do write(ai, ); writeln;s:=0; for i:=1 to 10 do s:=s+ai;writeln(s=,s);end.例2:输入10个整数,把这10个数按从小到大的顺序排序。(一)冒泡法排序算法

4、描述:1、从a1到a10把相邻的两个数两两比较;2、在每次进行比较过程中,若前一个数比后一个数大,则对调两个数。以5个数为例:7 5 3 8 6 7和5比较,75,进行对调;5 7 3 8 6 7和3比较,73,进行对调;5 3 7 8 6 7和8比较,76,进行对调;5 3 7 6 8Program sample;Const n=10;Var a:array1.n of integer; i,j:integer;begin for i:=1 to n do read(ai); readln; for i:=1 to n-1 do for j:=1 to ni do if ajaj1 then

5、 begin t:=aj; aj:=aj1;aj1:=t; end; for I:=1 to 10 do write(ai:5); readln;end;二选择法排序算法描述:1、先假设a1中的数最小,记下此最小数的位置p1;2、依次把ap和ai(i从2变化到10)进行比较,每次比较时,若ai中的数比ap中的数小,则把i的值赋给p,使p总是指向当前所扫视过的数中最小数的位置。3、把ap 和a1中的数对调,最小数就放在a1中了。Program no;Const n=10;Var a:array1.n of integer; i,j,p,t:integer;Begin for i:=1 to n

6、do read(ai); readln; for i:=1 to n-1 do begin p:=i; for j:=i+1 to 10 do if ajapthen p:=j; t:=ai;ai:=ap;ap:=t;两数交换 end; for i:=1 to n do write(ai:5); readln;End. 例3:用筛法求100以内的素数(质数)。分析:素数是除了1和它本身以外没有其它约数的数。用筛法求素数的方法是:用质数筛去合数:从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。

7、把所有非0数输出。program p2;vara:array 1.100 of integer;i,j,k:integer;begin for i:=1 to 100 do ai:=i; a1:=0;i:=2; while i=100 do begin k:=i; while k=100 do begin k:=k+i; ak:=0; end; 上面将所有ai的倍数清0 i:=i+1; while ai=0 do i:=i+1; 查找接下来的第一个非0数 end; for i:=1 to 100 do if ai0 then write(ai, );end. 练习题:1、随机产生20个100以

8、内的数,输出;按从小到大的顺序排序,输出。2、输入个整数,请找出最小数所在的位置,并把它与第一个数对调后输出。例如:输入:32517输出:4125373、将一个数插入到有序的数列中,插入后数列仍然有序。例如:输入:1235 4输出:123454、约瑟夫问题:个人围成一圈,从第一个人开始报数,数到的人出圈,再由下一个人开始报数,数到的人出圈,输出次数依次出圈的人的编号。例如:输入:85输出:528714635、编写程序把任意十进制整数转换成二进制。例如:输入:6输出:1105.2二维数组一维数组在编程中多用于描述线性的关系:如一组数;一组成绩;一组解答等。数组元素只有一个下标,表明该元素在数组中

9、的位置。二维数组在编程中多数用于描述二维的关系:如地图、棋盘、城市街道、迷宫等等。而二维数组元素有两个下标:第一个下标表示该元素在第几行,第二个下标表示在第几列。 1.二维数组的定义:vara:array1.10,1.5 of integer; 其中:a是数组名,由程序员自定;array和of是定义数组的保留字;(这两点和一维数组定义的格式一样)中括号中的两个范围表示二维数组共有多少行、多少列(第一个范围表示行数,第二个范围表示列数);最后一个表示数组元素的类型,规定和一维数组一样。如上例,定义了一个二维数组a,共有10行5列。2.使用二维数组: (1)数组元素的指称:数组名行号,列号。如第三

10、行第四个元素:a3,4。 对某一行进行处理。如累加第4行的数据。则固定行号为4。如:for i:=1 to 5 do s:=s+a4,i;对某一列进行处理。如累加第4列的数据。则固定列号为4。如:for i:=1 to 10 do s:=s+ai,4;(2)二维数组的输入输出要用双重循环来控制:for i:=1 to 10 do控制行数beginfor j:=1 to 5 do read(ai,j)第一行读入5个元素 readln;读入一个换行符end;最常用的方法:从键盘读入数据初始化二维数组for i:=1 to 10 do for j:=1 to 5 do ai,j:=0;最常用的方法:

11、将二维数组清0for i:=1 to 10 dobegin for j:=1 to 5 do write(ai,j:4); writeln;end;最常用的输出方法:按矩阵形式输出二维数组的值 例1:竞赛小组共有20位同学,这学期每位同学共参与了三项比赛,请统计每位同学的平均分。分析:定义一个20行3列的二维数组来存放这些成绩。定义一个20个元素的一维数组来存放平均分。program p1;vara:array 1.20,1.3 of integer; b:array 1.20 of real; i,j:integer;begin for i:=1 to 20 do begin for j:=

12、1 to 3 do read(ai,j); readln; end;从键盘上读入20个同学的三次竞赛成绩 for i:=1 to 20 do bi:=0;先将平均分数组清0 for i:=1 to 20 do begin for j:=1 to 3 do bi:=bi+ai,j;计算总分 bi:=bi/3;计算平均分 end; for i:=1 to 20 do write(bi:5:1);输出平均分writeln;end.二维数组练习题:1、设一维数组中有任意6个数:7 8 9 2 5 1 编一个程序建立具有如下的方阵,最后输出结果:7 8 9 2 5 11 7 8 9 2 55 1 7 8

13、 9 22 5 1 7 8 9 9 2 5 1 7 88 9 2 5 1 72、求一个5 X 5数阵中的马鞍数,输出它的位置,若无,则输出“Not Found”。所谓马鞍数,是指在行上最小而在列上最大的数。如下:5 6 7 8 94 5 6 7 83 4 5 2 12 3 4 9 01 2 5 4 8则1行1列上的数就是马鞍数。3.以下是一个5阶幻方的实例:17 24 1 8 1523 5 7 14 16 4 6 13 20 2210 12 19 21 311 18 25 2 9幻方的特点:它的每一行,每一列和两条对角线上的元素之和都相等。其值是N*(N*N+1)/2, N代表方阵的行数或列数

14、;一个N阶奇数幻方有1到NN自然数组成。编一个程序,打印出小于10阶的任意奇数幻方。5.3 字符串字符串用于存放整批的字符数据。通常编程中使用字符串存放字符化了的数字数据。如高精度运算时存放操作数和运算结果。字符串可以看作是特殊的字符串数组来处理。当然,它也有自已的特点。1.字符串格式的定义:vars:string; s1:string15;字符串定义时,如不指定长度,则按该类型的最大长度(255个字符)分配空间,使用时最大可用长度为255个;如果在中括号中给出一个具体的值(1255之间),则按这个值的大小分配空间。使用时,最大的可用长度即为该值。2.字符串的输入、输出:字符串类型既可按数组方

15、式输入、输出,也可直接输入、输出:readln(s);writeln(s);多个字符串输入时以回车作为数据间的分隔符;每个readln语句只能读入一个字符串。 3.有关字符串的操作:操作 类型 作用 返回值 例子 length(s)函数 求字符串s的长度整型s:=123456789;l:=length(s);l的值为9copy(s,w,k)函数 复制s中从w开始的k位字符串s:=123456789;s1:=copy(s,3,5);s1的值是34567val(s,k,code)过程 将字符串s转为数值,存在k中;code是错误代码var s:string;k,code:integer;begin

16、s:=1234;val(s,k,code);write(k);k=1234str(i,s)过程 将数值i转为字符串si:=1234;str(i,s);write(s);s=1234Delete(s,w,k)过程 在s中删除从第w位开始的k个字符s := Honest Abe Lincoln;Delete(s,8,4);Writeln(s); Honest Lincoln Insert(s1, S, w)过程 将s1插到s中第w位S := Honest Lincoln;Insert(Abe , S, 8); Honest Abe Lincoln Pos(c, S)函数 求字符c在s中的位置整型S

17、 := 123.5;i :=Pos( , S);i的值为1+运算符 将两个字符串连接起来s1:=1234;s2:=5678;s:=s1+s2;12345678 4、字符串应用例1、 随机输入一些国家的英文名字,以end作为输入结束标志,按字母顺序排序后输出。Program ex4_12;Const n=100;Var a:array1.n of string30; i,j,m,b:integer; k:string30;Begin m:=0; writeln(Input country name:); repeat m:=m+1; readln(am); until am=end;For i:

18、=1 to m-2 do for j:=i+1 to m-1 do if aiaj then begin k:=ai;ai:=aj;aj:=k; end; writeln(output:);For i:=1 to m-1 do Writeln(ai);Writeln(*end*);Readln;End.练习题:1、输入一个长度不超过255字符串,将其倒置输出。例:输入:ABCDEF输出:FEDCBA2、求个字符串的最长公共子串,20,字符长度不超过255。例:输入:3What is local bus? Name some local bus. Local bus is high speed I/O bus close to the Processor. 输出:local bus

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1