数组与字符串(2个课时)

上传人:tian****1990 文档编号:73652599 上传时间:2019-01-25 格式:PPT 页数:17 大小:383.81KB
返回 下载 相关 举报
数组与字符串(2个课时)_第1页
第1页 / 共17页
数组与字符串(2个课时)_第2页
第2页 / 共17页
数组与字符串(2个课时)_第3页
第3页 / 共17页
数组与字符串(2个课时)_第4页
第4页 / 共17页
数组与字符串(2个课时)_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《数组与字符串(2个课时)》由会员分享,可在线阅读,更多相关《数组与字符串(2个课时)(17页珍藏版)》请在金锄头文库上搜索。

1、第六讲 数组与字符串,主讲人:张志刚,定义一个一维数组: var a:array 110 of integer; 说明:一、a是这一批数据的名称,称为数组名; 二、array、of是定义数组的保留字; 三、中括号中的数字是数据编号的下限和上限, 说明了数据的个数(上限-下限); 四、最后一个是数组数据的类型, 如integer,char,real,boolean。,6.1 一维数组,数组元素的输入: 数组名代表的并不是一个变量,而是一批变量,因而,不能直接给整个数组读入数据,而是要逐个数组元素读入, 通常用循环结构来完成这一功能。下面是几个常用输入数组元素的例子: for i:=1 to 10

2、 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以内的数,赋给各数组元素 补充语法: fillchar(a,sizeof(a), 0) 数组元素清0;数据初始化的一种方法,数组元素的输出: 和数组元素的输入相同,数组元素的输出也不能由一个write语句直接完成。同样要逐个数组元素输出。 通常也用循环

3、结构来完成这一功能: for i:=1 to 10 do write(ai, ); 数组元素之间用空格分隔 writeln;,数组的应用: 例1:从键盘输入10个数,将这10个数逆序输出,并求这10个数的和,输出这个和。,var a:array 110 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:用筛法求100以内的素数(质

4、数)。 算法描述:素数是除了1和它本身以外没有其它约数的数。用筛法求素数的方法是:用质数筛去合数:从第一个素数2开始,把它的倍数去掉;这样2以后的第一个非0数就一定也是素数,把它的倍数也删了重复这个删数过程,直到在所找到的素数后再也找不到一个非0数。把所有非0数输出。,var a:array 1100 of integer; i,j,k:integer; begin for i:=1 to 100 do ai:=i;建立数字筛 a1:=0;i:=2;赋值 while i0 then write(ai, ); end.,一维数组在编程中多用于描述线性的关系:如一组数;一组成绩;一组解答等。 数组

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

6、组a,共有10行5列。,二维数组的输入输出要用双重循环来控制: for i:=1 to 10 do控制行数 begin for 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; 最常用的方法:将二维数组清0 for i:=1 to 10 do begin for j:=1 to 5 do write(ai,j:4); writeln; end; 最常用的输出方法:按矩阵形式输出二维数组的值,例题: 某校竞赛小

7、组共有0位同学,年每位同学都参与了三项重要比赛,为了从中选出最优秀的五个人代表合肥市参加安徽省比赛,请先统计每位同学的平均分。 分析:定义一个20行3列的二维数组来存放这些成绩。定义一个20个元素的一维数组来存放平均分。,var a:array 120,13 of integer; b:array 120 of real; i,j:integer; begin for i:=1 to 20 do begin for j:=1 to 3 do read(ai,j); readln; end; 从键盘上读入20个同学的三次竞赛成绩 for i:=1 to 20 do bi:=0; 先将平均分数组清

8、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.,6.3 字符串,字符串用于存放整批的字符数据。 字符串可以看作是特殊的字符串数组来处理。 下面是字符串定义的格式: var s:string; s1:string15; 说明: 字符串定义时,如不指定长度,则按该类型的最大长度(255个字符)分配空间,使用时最大可用长度为255个; 如果在中括号中给出一个具体的值(1255之间),则

9、按这个值的大小分配空间。使用时,最大的可用长度即为该值。,字符串的输入、输出: 字符串类型既可按数组方式输入、输出,也可直接输入、输出:readln(s);writeln(s); 多个字符串输入时以回车作为数据间的分隔符; 每个readln语句只能读入一个字符串。,练习:,1、随机产生20个100以内的数,输出;按从小到大的顺序排序,输出。 2、求一个5 X 5数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如下: 5 6 7 8 9 4 5 6 7 8 3 4 5 2 1 2 3 4 9 0 1 2 5 4 8 则1行1列上的数就是马鞍数。 3、做一个加法器。完成30000以内的加法,两个加数间用“+”连接,可以连加,回车表示式子输入完成;“#”表示结束运算,退出加法器。,家庭作业,完成数组和字符串的练习 复习本周所学的知识,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号