Pascal的数组

OI爱好者(OIFans.cn)
www.oifans.cn

1.数组的定义   
    数组是程序中最常用的结构数据类型,用来描述由固定数目的同一类型的元素组成的数据结构。数组的每个元素和下标相关联,根据下标指示数组的元素。数组的存储方式为按行存储,在编译阶段,计算机根据数组的类型说明,确定其存储空间的大小。数组可以是任何顺序类型。
    数组的定义形式:
      array[<下标类型1>,……<下标类型n>] of <元素类型>
    其中n称为数组的维数,每维的下标类型必须是一个顺序类型,通常为子界类型或枚举类型,其作用是指定数组下标的编制方式和下标取值范围。

 例如:
 type
 color=(red,yellow,blue);
 sample1=array [1..10]of integer;{有10个元素的一维数组}
 sample2=arrayp[1..5,1..5]of real;{有25个元素的二维数组,依次按[1,1]……,[1,5],[2,1]……,[2,5],……[5,1],……[5,5]}
    当然,一般情况下你可以简单地用var a:array[1..100,1..10] of integer;这样的语句来申明一个数组。

2.数组的操作   
    当数组的元素类型为简单类型时,其下标变量和简单类型变量一样使用。
      例如:a[50]:=50 a[20]:=a[5];
    一个数组,下标的起始值和终止值是在类型定义中给定的,不能在程序执行中再通过其他途径来改变,所以数组元素的个数在程序运行期间是固定不变的。数组变量作为整体仅允许同类型数组之间的赋值运算。
      例如:var x,y:array[1..10]of integer; x::=y

例:读入5个学生的学号和成绩,计算他们的平均分,若比平均分高10分的等第为A,若比平均分高小于01分的等地为B,若低于平均分,则等第为C,输出他们的成绩和等第。  
  program sample7d1(input,output);
  const n=5;
  type
   no=array[1..n] of integer;
   s=array[1..n]of real;
  var
   i:integer;
   k:real;
   num:no;
   score:s;
 begin
  k:=0;
  for i:=1 to n do
   begin
    readln(num[i],score[i]);
    k:=k+score[i];
   end;
  k:=k/n;
  for i:=1 to n do
   begin
    write(num[i],score[i]);
    if (score[i]-k)>=10 then writeln(‘A’)
     else if((score[i]-k)<10)and((score[i]-k)>0) then writeln(‘B’)
     else writeln(‘C’);
   end;
 end.