信息学奥赛一维数组.pptVIP

  • 11
  • 0
  • 约2.06千字
  • 约 13页
  • 2018-02-06 发布于河南
  • 举报
信息学奥赛一维数组

第六章 数组 ——一维数组 * * 一、数组的概念: 数组是一种常用的数据类型,由固定数目的相同类型的元素按照一定的顺序排列而成。 二、数组的作用 方便的存储数据。数组就象一大的容器,可以将相同类型的东西装进去。 方便: 如果我们需要很多相同类型的数据,不用一个一个的去定义他们,也不需要用到非常多的变量,只要定义一个数组就可以解决问题。 高效: 利用数组下标自动递增的性质,我们可以很方便的对数组进行赋值、排序、查找等操作。 三、例子: 输入5个数,并且一相反的顺序输出。 方法一:以前学过的方法解决 Var a,b,c,d,e:integer; Begin read(a); read(b); read(c); read(d); read(e); write(a); write(b); write(a); write(b); write(a); End. 想一想:如果是100个数,1000个数呢? 方法二:数组解决 Var x:array[1..5] of integer; i:integer; Begin for i:=1 to 5 do read(x[i]); for i:=1 to 5 do write(x[i]); End. 想一想:如果是以相反的顺序输出呢? 四、定义: 和枚举和子界类型一样,数组类型并不是标准类型,在使用数组之前,必须对数组类型进行定义。 格式如下: type 类型标识符=array [下标类型] of 基本类型 如:type score: array[1..50] of real; 之后就可以定义一个变量为这个类型的变量: var a:score; 变量和类型是两个不同的概念,程序中使用的是变量而不是数组类型。比如你家有一只小狗叫miky,那miky就犹如变量,而狗就犹如类型。你可以象这样定义:miky:狗; 在具体的定义中,我们可以把变量和定义合起来。 象刚才的我们可以这样写: Var a:array[1..50] of real; 五、数组的元素 刚才定义了一个50个元素的数组,那这50个元素分别可以表示如下:a[1], a[2], a[3],…… a[50]等。 六、数组的赋值。 1、对于一个比较小的数组可以在定义的时候赋值 如:const a:array[1..5] of integer=(2,4,6,8,10); 就相当于:a[1]:=2; a[2]:=4; a[3]:=6; a[4]:=8; a[5]:=10; 2、对于一个比较大的数组一般使用循环语句赋值。 如var a:array[1..100] of integer; i:integer; begin for i:=1 to 100 do read(a[i]); end. 六、数组的使用 1、数组的移动。 例: 将数组中第一个元素移动到最后数组的末尾,其余数据依次向前移动一个位置。 2、数组的查找。 例: 从数组中找出某个数,如果找到就输出yes,否则输出no。 3、数组的删除。 例:从数组中找出某个数,如果找到就将其删除,否则就什么都不做。 4、数组的排序(例6-6) 七、注意点: 1、数组中的元素类型一定是相同的。而且在赋值时不能将一个不同类型的值赋给某个元素。 例:var a:array[1..5] of integer; a[3]:=3.5; 这个就是错误的。 2、数组元素的个数必须是确定的,即下标的个数是确定的。如:var a:array[1..n] of integer; 3、数组元素的数据类型也必须是固定的、唯一的。 4、数组下标有上界和下界,数组的下标在上下界内是连续的。 5、Pascal语言给每个数组元素都分配空间,所以不要不切实际的声明一个太大的数组。如: Var a:array[1..50000] of integer; 6、数组的下标必须从小到大排列。否则是错误的,如:var a:array[10..1] of integer; 7、一般而言,用得最多的是一维、二维数组,最多用三维,四维几乎不用。 8、数组的下标不仅可以是数字,也可以是字符。只要有序就可以了。 例:定义下列数组: 1、表示20个学生的数学成绩。 2、表示30个学生是否是男生 3、统计一篇文章

文档评论(0)

1亿VIP精品文档

相关文档