信息学竞赛Pascal语言 数组与字符串(五)(2)
二维数组
一维数组在编程中多用于描述线性的关系:如一组数;一组成绩;一组解答等。数组元素只有一个下标,表明该元素在数组中的位置。二维数组在编程中多数用于描述二维的关系:如地图、棋盘、城市街道、迷宫等等。而二维数组元素有两个下标:第一个下标表示该元素在第几行,第二个下标表示在第几列。
1.二维数组的定义:
var
a:array[1..10,1..5]ofinteger;
其中:a是数组名,由程序员自定;array和of是定义数组的保留字;(这两点和一维数组定义的格式一样)中括号中的两个范围表示二维数组共有多少行、多少列(第一个范围表示行数,第二个范围表示列数);最后一个表示数组元素的类型,规定和一维数组一样。如上例,定义了一个二维数组a,共有10行5列。
2.使用二维数组:
1、数组元素的指称:数组名[行号,列号]。如第三行第四个元素:a[3,4]。
对某一行进行处理。如累加第4行的数据。则固定行号为4。如:fori:=1to5dos:=s+a[4,i];
对某一列进行处理。如累加第4列的数据。则固定列号为4。如:fori:=1to10dos:=s+a[i,4];
2、二维数组的输入输出要用双重循环来控制:
fori:=1to10do{————控制行数}
begin
forj:=1to5doread(a[i,j]){————第一行读入5个元素}
readln;{————读入一个换行符}
end;
{————最常用的方法:从键盘读入数据初始化二维数组}
fori:=1to10do
forj:=1to5doa[i,j]:=0;
{————最常用的方法:将二维数组清0}
fori:=1to10do
begin
forj:=1to5dowrite(a[i,j]:4);
writeln;
end;
{————最常用的输出方法:按矩阵形式输出二维数组的值}
例1:竞赛小组共有20位同学,这学期每位同学共参与了三项比赛,请统计每位同学的平均分。
分析:定义一个20行3列的二维数组来存放这些成绩。定义一个20个元素的一维数组来存放平均分。
programp1;
var
a:array[1..20,1..3]ofinteger;
b:array[1..20]ofreal;
i,j:integer;
begin
fori:=1to20do
begin
forj:=1to3doread(a[i,j]);
readln;
end;
{————从键盘上读入20个同学的三次竞赛成绩}
fori:=1to20dob[i]:=0;
{————先将平均分数组清0}
fori:=1to20do
begin
forj:=1to3dob[i]:=b[i]+a[i,j];{————计算总分}
b[i]:=b[i]/3;{————计算平均分}
end;
fori:=1to20dowrite(b[i]:5:1);
{————输出平均分}
writeln;
end.
下一页阅读:字符串