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

第十讲 (上午) 一维数组应用.ppt

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

2008年马鞍山信息学竞赛夏令营 第十讲 一维数组应用 2008年马鞍山市信息学夏令营 主讲 马鞍山成功学校 谷晓华 更多的竞赛资源请点击 先看一题 题目:输入50个学生的某门课程的成绩,打印出低于平均分的同学号数与成绩; 分析:在解决这个问题时,虽然可以通过读入一个数就累加一个数的办法来求学生的总分,进而求出平均分。但因为只有读入最后一个学生的分数以后才能求得平均分,且要打印出低于平均分的同学,故必须把50个学生的成绩都保留下来, 然后逐个和平均分比较,把高于平均分的成绩打印出来。如果,用简单变量a1,a2,…,a50存放这些数据,可想而知程序要很长且繁。 要想如数学中使用下标变量ai形式表示这50个数,则可以引入下标变量a[i]。这样问题的程序可写为: 这样问题的程序可写为: tot:=0;{tot表示总分}   for i:=1 to 50 do {循环读入每一个学生的成绩,并累加它到总分}    begin     read(a[i]);     tot:=tot+a[i];    end;   ave:=tot/50;{计算平均分}   for i:=1 to 50 do    if a[i]ave then writeln(‘No.’,i,‘ ’,a[i]);{如果第i个同学成绩小于平均分,则将输出}    而要在程序中使用下标变量,则必须先说明这些下标变量的整体―数组,即数组是若干个同名(如上面的下标变量的名字都为a)下标变量的集合。 一维数组定义 〖语法分析〗 ?  在编程时用到一批类型相同的数据,为了处理上的方便,通常以数组的形式来定义这一批数据。 1:一维数组的定义: (1) type 数组类型名=array [下标类型] of 数组元素类型; var 变量名:数组类型名; 其中:a,b是这一批数据的名称,称为数组名;array、of是定义数组的保留字;中括号中的数字是数据编号的下限和上限,同时也说明了数据的个数(上限-下限);最后一个是数据的基类型,如integer,char,real,boolean。 第二种 一维数定义方式 直接在var区中定义数组: var 数组名:array [下标类型] of 数组元素类型; 如上例: var a,b:array [1..100] of integer; 2、一维数组的引用   当定义了一个数组,则数组中的各个元素就共用一个数组名( 即该数组变量名),它们之间是通过下标不同以示区别的。 对数组的操作归根到底就是对数组元素的操作。一维数组元素的引用格式为:    数组名[下标表达式]   说明:①下标表达式值的类型, 必须与数组类型定义中下标类型完全一致,并且不允许超越所定义的下标下界和上界。      ②数组是一个整体,数组名是一个整体的标识,要对数组进行操作,必须对其元素操作。数组元素可以象同类型的普通变量那样作用。如:a[3]:=34;是对数组a中第三个下标变量赋以34的值。read(a[4]);是从键盘读入一个数到数组a第4个元素中去。 数组使用的优势 var a:array [1..50] of integer; 可以使用的变量由a[1]、a[2]、…、a[50] 如果将一个变量比做一个盒子,由数组是一批盒子,盒子的数量取决于数组定义的大小,每个盒子上都用数字1、2、3…标记 在使用大数据量的题目时,需要用到数组,使用数组的优点非常明显,省去定义大量变量的繁琐,而且可以任取数组的某一个下标的值,如取数组中第29个变量的值,则可以写成a[29],其是29就是数组a的下标。 四、一维数组应用示例   例1:输入50个数,要求程序按输入时的逆序把这50个数打印出来。也就是说,请你按输入相反顺序打印这50个数。   分析:我们可定义一个数组a用以存放输入的50个数, 然后将数组a内容逆序输出。   源程序如下:    program ex5_1;   type arr=array[1..50]of integer; {说明一数组类型arr}   var a:arr;i:integer;   begin    writeln(Enter 50 integer:);    for i:=1 to 50 do read(a[i]);{从键盘上输入50个整数}    readln;    for i:=50 downto 1 do {逆序输出这50个数}     write(a[i]:10);   end. 排序算法 例2 输入十个正整数,把这十个数按由小到大的顺序排列 分析:要把十个数按从小到大顺序排列,则排完后,第一个数

文档评论(0)

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

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

1亿VIP精品文档

相关文档